I'm back at a project that I intended to start months ago and never got rolling on.
I have an application with a Pro Mini (ATMega 328P), that talks to smartphones via BLE (both iPhone and Android). The application on the Pro Mini talks over the BLE modem using the Tx and Rx pins. There is no initialization code needed to talk over the BLE modem.
I want to update the bootloader on the Pro Mini so that I can upload new application code to it from a smartphone. I also want to retain compatibility with the existing bootloader so that I can continue to upload my code using Atmel Studio.
I am a very experienced C/C++ programmer, but don't know much about bootloaders. I'm looking at Optiboot (recommended in an old thread I started on this topic). It looks like a good choice, although I have a hard time seeing the forest for the trees, with all the conditional complication directives the source contains.
1) Do you recommend Optiboot? Will that be compatible with the existing bootloader so that I can use Atmel Studio to upload hex files?
2) Can you tell me how to compile it and upload it to the Pro Mini? The optiboot project I found here:
contains an Atmel Studio project called "xplained328p"... Can I use that to build the bootloader? How do I upload it? (I didn't see any documentation on that, please point me to it if there is any!)
3) Is there any source anywhere for what sits at the other end of Optiboot? Would that be avrdude? If there's "tighter" code that only talks whatever Optiboot talks - that would be preferable. I need to port something to both iPhone and Android, so the less unneeded code the better.