Yes! It’s possible! You’ll no longer have to take your laptop to the flying field or remove your flightcontroller to get to the USB port. In this article I’ll tell you everything you need to know and how to get started as quickly as possible. As I have developed the iOS app myself, I have some in-depth knowledge on the subject.
Solutions for Android have existed quite some time: apps like EasyGUI are widely used. These rely on the use of HC-06 Bluetooth modules and function really well. However, Apple decided not to support Bluetooth UART protocol, so iOS users have had to wait for a different solution. Now with the advent of JNHuaMao’s HM10 Bluetooth 4.0 modules – the time has come!
Note: a french translation of this article is available on pimousse.be.
Though the apps work fundamentally the same way as the official Cleanflight Configurator, not all features will be available and the GUI’s will be quite different. Also, the apps probably won’t be updated as frequently as the desktop configurator.
As of the writing of this article, there are two apps you can choose from: ‘Eaze’ (mine) and ‘Mobile Flight’. Both are free. Mobile Flight has more features, but Eaze has a much nicer GUI (well, that’s my biased opinion 😉 ).
Other limitations of the apps include being unable to perform firmware updates, plus the HM10 modules can be unreliable if a lot of data is sent at high baudrates.
Step 1 – Get a Bluetooth Module
HM10 modules are widely available in different versions, ranging in price from just $2.5 to $6. You should know, however, that most of them will be counterfeits, and there are small differences in how these are configured. This is how to recognize legit modules:
You als have to choose between getting a standalone module, or one on a 5V ‘adapter’ board, like this one:
The observant reader will have noticed that this module is a fake one. And in fact, most modules on a PCB like this are counterfeits, I believe. But they have two advantages: they do not need any soldering (which is otherwise quite hard with those small pins) and they are 5 volt tolerant. Yes, a standalone HM10 requires 3.3 volts!
For the brave souls that opt for the soldering challenge, here is the pinout:
The LED will blink when turned on, and stay on once connected. If the button connected to KEY is pressed for more than 1 second, will disconnect the module if connected, or otherwise reset and restart the module.
You can also use a HM11 module. Apart from being smaller (as it has less of the CC2540’s pins exposed – but we don’t need those anyway) and having a different pinout, it is exactly the same as the HM10.
***** STOP THE PRESSES ***** A new version of the HM10 is out: the HM16. It features Bluetooth 4.1, a faster processor (which might improve the reliability at high bauds) and build-in 5V tolerance! I have not yet tried it, but according to the specs it should be compatible with the HM10. A new version of the HM11 is out as well: the HM17.
Step 2 – Configure the Bluetooth Module
The HM10’s default baudrate is 9600, but Cleanflight’s default is 115200. So you have to change either one of them. I recommend changing that of the FC, as it’s easier, and it results in a more reliable connection. When transferring lots of data at 115200bps, like when using the CLI ‘dump’ command, the HM10 has trouble keeping up and some characters will get lost in the process.
Changing Cleanflight’s MSP baudrate
MSP = MultiWii Serial Protocol = the communication protocol used. Connect the flightcontroller to your computer and open up the Configurator. Head over to the ‘Ports’ tab and change the MSP baudrate of the first serial port to 9600. Next, choose ‘Save and reboot’. From now on, if you want to use the desktop configurator, you’ll have to change the baudrate when connecting to the relevant com port to 9600, or else the FC will not respond. This does not apply to updating the firmware (as that uses a different protocol).
Changing the HM10’s baudrate
The HM10 is configured with AT commands. Connect the HM10 to your computer with a USB to serial adaptor – connecting GND to GND, +3.3V to +3.3V, TX to RX and RX to TX – and open your favourite serial app. If you don’t have one, just use the Arduino IDE. Select the correct serial port and open it with a baudrate of 9600. If the port does not show up in the menu, double check that the correct drivers are installed for your USB-to-serial module.
Genuine HM10’s require ‘No line ending’, while fakes require ‘Both NL & CR’. Try both of these settings.
- Type ‘AT‘ (no spaces and all caps) and press enter
- The module should respond with ‘OK‘
- If it does not, check the line ending, the baudrate, the port, and the connections
- Type ‘AT+BAUD4‘ (if genuine) or ‘AT+BAUD8‘ (if fake)
- The module should respond with something like ‘AT+Set:4‘
Now, restart the module and set the serial port baudrate to 115200. You can also change some other settings:
- To change the name to ‘Eaze’, type ‘AT+NAMEEaze‘
- To change the pin to ‘1234’, type ‘AT+PIN1234‘
- To enable pin request on iOS, type ‘AT+TYPE2‘ (genuine only)
- To increase the range, type ‘AT+POWE3‘ (genuine) or ‘AT+POWER3‘ (fake)
Step 3 – Connect it to the flight controller
This is easy – the exact wiring depends on the FC board you use – but you only have to connect GND to GND, +3.3V to +3.3V, TX to RX and RX to TX. Pay close attention to the supply voltage! You have to use the pins of the first serial port (those shared with the USB port) which we configured earlier. In the case of the Naze, the TX and RX pins are those between the barometer and the USB bus. This might require soldering.
To download Eaze, click here.
To download MobileFlight, click here.
Both apps are quite intuitive in their use and require no further explanation.
Why are you still reading this? Go ahead, grab yourself a bluetooth module and leave your laptop at home the next time you’re going out flying!
Update 31-08-16: Eaze is now on the App Store.
Update 02-08-16: Added info on the HM16, plus a link to the french translation.