It is nice that you are working on a BLE extension board. Personally, I would like to see an android app before or at the same time as an apple app since I don't like apple, their very closed products and their way of trying to force everyone to use only their products once you have one. Google is not my favourite company either, but at least the base of android is open and hacking friendly. The reason I have spent so much of my spare time the past years on making an open ESC is that I really believe in sharing information and that I want to be able to examine and hack technology without the need to invent my own wheel. This is why announcing that there is an apple app available and not an android app goes against my principles. I really don't want to discourage anyone and I think it is awesome that you develop new and cool features, I just don't like apple and their very closed products.
So, what I would like to do is to make sure that an android app gets developed soon and help out with that. As soon as I have some time, I will try to make a very basic VESC app, but with the interface implemented to control and access everything that BLDC Tool can do. I will share the code and if anyone is interested, it would be awesome if they could work on developing the user interface.
For communication between android and VESC, either a USB host cable can be used or a bluetooth module like this one:
http://www.ebay.com/itm/Wireless-Serial ... 339177720b
The BT module can be connected to the uart port of VESC as it is, and no modification is required for the VESC firmware. That bt module is also very inexpensive. BLE and wifi options would also be nice to add later.
As for firmware updates this is not advised in the way the VESC is structured. We would need to stream the firmware data live over bluetooth serial (we have no buffer storage) and having no options to do ECC or similar operations which is just hazardous. I get why it would be nice, but it poses a to big of a hurdle at the moment. As for the other stuff, we plan on introducing the option to do all of the modifications from the VESC tool into the bluetooth interface, everything that does not involve direct firmware modification can be done with the CAN-Bus.
I think a bootloader would be an awesome feature, and I think it can be implemented quite easily. The STM32F4 can write to its own flash memory and has 1MB flash while the firmware only requires 110kB, so the whole firmware could be uploaded to flash together with a checksum. Then, the firmware can jump to a bootloader that reads that new firmware, checks the checksum and replaces the old firmware with it if the checksum is correct. After that, it can start the new firmware. I will try to implement a bootloader like that this weekend, but I'm not sure if I will be able to finish.