Configuring any Cleanflight FC from your iPhone

by hoiberg42 | July 4, 2016 | (1 Ratings) Posted in Tips

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.

 

Overview

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 😉 ). Also, Eaze will be updated with many more features in the future.

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:


In short: if the module is blue, has white lines surrounding the components and without numbers on the frontside, you’ll most likely get a genuine one.

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.3VTX 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.

  1. Type ‘AT‘ (no spaces and all caps) and press enter
  2. The module should respond with ‘OK
  3. If it does not, check the line ending, the baudrate, the port, and the connections
  4. Type ‘AT+BAUD4‘ (if genuine) or ‘AT+BAUD8‘ (if fake)
  5. 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)

For a full list of available commands, take a look at the HM10 datasheet (genuine) or the CC41 datasheet (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.3VTX 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.

 

Step 4 – Download an app and start using it!

More information on the Eaze app (including links to the relevant forum threads and the GitHub repo) is available here.

To download Eaze, click here.

To download MobileFlight, click here.

Both apps are quite intuitive in their use and require no further explanation.

 

Conclusion

This article might have been a little late, as the development of my app took wayyy to long, but you know what they say about that. I expect that most hobby stores will start to sell some sort of BT 4.0 module, and maybe we'll even see flightcontrollers with a bluetooth module on the board itself? Who knows. I was also planning to design a module based on the HM11 myself, in a smaller and pre-configured package.

This project is cheap and easy to duplicate, and it'll change the way you use your aircraft. So 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!

COMMENTS

guytranspo on July 20, 2016
Will an HM 16 bluetooth module work?
Thanks
Log In to reply
hoiberg42 on August 2, 2016
I have not tried the HM16/17, but it should work!.
Log In to reply
guytranspo on August 31, 2016
Hello again.
I bought a Bluetooth module from Helipal. I have it set up and it pairs with my MacBook, but it won't pair to my iPhone. Do you have any idea why it won't pair?
Thanks
Log In to reply
hoiberg42 on September 13, 2016
Is it a HM10/11/16?
Other bluetooth modules won't work.
Log In to reply
fileorgin on July 24, 2017
EasyGUI app can be downloaded from Tutuapp. Tutuapp is a third party Android and Android app store allowing you to install paid apps for free of cost.
Log In to reply

You need to log-in to comment on articles.