Wirelessly program AVR with Bluetooth device and can be used for data communicationtoo?
If you're an embedded programmer, you'd pretty definitely be aware of the concept of bootloaders.

Typically, you'd have a minimal firmware (the bootloader) that


runs at boot of your ATMega,
sets up the bluetooth device,
uses it (in any way imaginable) to check whether a firmware update exists,· if there's one, receives that and· writes it to the flash of the ATMega
jumps to the position of the firmware in flash memory.


Pretty much, classical bootloader with update function.