Bluetooth low energy (BLE)
I have been working on the NRF51822 recently, and got everything working quite well on it with a firmware that I wrote using the Nordic SDK and Softdevices. The NRF firmware does the packet encoding/decoding and some buffering internally, and I have adjusted the BLE settings for maximum performance as power consumption is not an issue. I was ably to achieve the full throughput of UART with 115200 baudrate. VESC Tool has a BLE tab in the connection page now where it can scan for BLE devices and connect to the NRF51822 with the VESC-compatible firmware. Configuration, RT data, firmware updates (a bit slow, around 3 minutes to upload) and everything else works over BLE as it does over USB, which is really convenient as most laptops have bluetooth built in. The next version of VESC Tool will have the BLE support and I will put the NRF firmware on github with some instructions on how to build and upload it using an stlink in a documentation page, so if you want to give it a try soon you can order some nrf51822 modules. The ones I have been using are these, which are less than 4$ including shipping:
you also need an stlink and a Linux computer as Qt does not have BLE support for windows.
This weekend I downloaded the Android SDK + NDK and was able to get it running with Qt for android; and I made a few simple test applications. Just for fun I tried building VESC Tool as it is for android, and with just a few tweaks it actually worked including BLE!! With a keyboard and mouse connected to my phone I was able to upload firmware to a vesc, stream rt data and configure it for a motor using BLE from Android. With some patience it also works with the touch screen only, even though the interface is not made for a mobile device at all.
As the code in VESC Tool is modular and the UI is separate, all of the low level code and built in documentation can be shared between the mobile and desktop interfaces. Now I'm working on learning qml to make a nice mobile interface with qt quick controls 2, which seems to be easier than i first thought. Hopefully a basic, but fully working version will be ready for testing before the end of the year. The development will be done on github in the official VESC Tool code base, so you can test it along the way. All of the low level stuff already works, so the work is really only the UI design. A high priority for the mobile app is good real time data display and the ability to switch between different profiles, which is very useful on the go. I also have many ides for ebikes, as I have a phone holder on my ebike which I have been using almost every day recently.
I'm also meeting with Roman who made the metr.at app soon to see if there is anything we can collaborate on. It would be great if the development and efforts put into the project can be a bit coordinated in the community instead of having everyone work in their own corner on different incompatible forks and versions.