Connecting your phone, tablet or laptop to APM/Pixhawk using Bluetooth

[UPDATE: We now sell a Bluetooth set that has all this pre-setup for you. If you get that, no need to read further!]. We're going to be adding Bluetooth connectivity to more 3DR products in the coming months, but there's no need to wait. Right now you can add Bluetooth connectivity yourself with cheap third-party bluetooth modules. Connecting the APM and Pixhawk via Bluetooth is a great way to do basic setup and mission planning with your laptop (Mac, PC or Linux) or Android phone or tablet, without the need to carry and connect a 3DR radio and OTG cable.  You’re limited to Bluetooth range (about 50m), but for wireless setup before launch, this works fine.  Mission Planner (Windows), APM Planner (Mac, Windows, Linux), DroidPlanner and AndroPilot (both Android) all support Bluetooth connectivity.


This tutorial will show you how to connect two kinds of commonly available Bluetooth modules (shown above) to APM or Pixhawk.

The process consists of three steps: 

  1. Configuring the modules so they’re running at 57600 baud
  2. Physically connecting the modules to APM/Pixhawk
  3. Connect via BT to your Android device or laptop and a GCS app (pair the module with your device)


Option 1: Setup with RN-42 and RN-41 Bluetooth modules


Connect the module with an XtreamBee adapter board and this cable




You can use any serial terminal program (the terminal in the Arduino IDE is shown), but there are a few things you need to do:

  1. You must enter command mode within 60 seconds of powering up the board
  2. The board can’t be already wirelessly paired with a device (such as your phone or tablet)
  3. The default baud rate is usually 115200. We need to change that to 57600 baud. But for the first connection, to get the command prompt for this change, we’re going to start at 115200.
  4. To get to command mode, you need to select “No line ending” in your terminal program, then enter “$$$” [enter]. After that, the terminal program needs to be in “Newline”  mode, as shown below. Crazy, but that’s the way Roving Networks set it up. Now you know!

First, ensure that your terminal baud rate is at 115200 and “No line endings” is selected. Then plug in your module and within 30 seconds type “$$$” [enter]. You should get the return message “CMD”.

Once you have that, switch your terminal program to “Newline” for the rest of the commands.


Now you can enter commands. To switch to a 57600k baud rate the command would be "SU,57" (A full list of commands is here, although you won’t need them for this change). Once you reboot the board, that baud change will take effect.


Congrats, you’re done! Now you’re ready to use it with APM/Pixhawk. See the bottom of the post for instructions on how to use the GCS apps with Bluetooth.




Option 2: Setup with cheap ($10) HC-05 Arduino Bluetooth Module


Full instructions are here, but the basics are below:


 You can make your own cable by swapping some wires in the standard 3DR telem-to-Xbee adapter cable. For clarity’s sake, I’ve used some color-coded wires above to show what goes where.


Here’s a neater cable that I’ve made with some regular breakaway header pins:



This same custom cable will allow you to plug it into a regular FTDI cable (shown below) so you can change the configuration of the Bluetooth board to switch the default baud rate from 9600 baud to 57600 baud.


Once you’ve plugged the board into your FTDI cable and plugged that into your computer, it will show up in your computer as a serial port. The LED on the board should be blinking red, not blue. You should NOT wirelessly pair the Bluetooth model with any device at this point; if it the LED is blue that means that it’s paired with something, so if that’s the case make sure that you unpair it first.  At that point you can use any serial terminal to communicate with the Bluetooth module. For the sake of this demo, we’ll use the serial terminal built into Arduino.


First, select the port assigned to your FTDI cable (it probably won’t be 26, as shown below, and on a Mac it may show us as “tty-usbserial”):


Ensure that the serial terminal baud rate is set for 9600 baud and “No line ending”, as shown.

Type AT [return]. The board should return “OK”.  That means that all is well and you’re talking to the board. If you don’t get a return, check your wiring and make sure that the Bluetooth board is showing a blinking red LED (powered on) and is not blue (paired with something).  


Now we can change the baud rate to 57600. The command for that is “AT+BAUD7 [return]”, as shown. If this is a success, it will report back “OK57600”, as shown below. If so, you’re done! Unplug the board and you’re ready to use it with APM/Pixhawk.



Now that you have your module working, you just need to pair with your device. On Android, this is the Bluetooth settings. Set your device to "discoverable" and you'll see the module show up. Then pair it. If it asks for a code, type "1234". 

Once it's paired you can connect with either Android app: DroidPlanner 2 and Andropilot. On Andropilot, there's a button marked "Bluetooth" on the main screen. On DroidPlanner, go to the settings menu (top left) and under "Telemetry Connection Type" select Bluetooth and the module you've paired with it. 

Both of these modules work great with either app!



Views: 49229

Comment by Magnus von Rosen on May 1, 2014 at 10:54pm

Is there a similarly simple option for making a Bluetooth/Telemetry bridge? I want my 500+ meters range using my 433Mhz Telemetry Modules, but I don't want to connect it via USB to my phone, I'd like to use Bluetooth for that.

Iv'e seen such projects but nothing that was possibly to buy off the shelf, and that didn't require a degree in programming.



3D Robotics
Comment by Chris Anderson on May 1, 2014 at 10:59pm

Yes, Event38 has a really nice 3DR Radio-to-Bluetooth bridge here

Comment by Magnus von Rosen on May 1, 2014 at 11:41pm

Thanks guys! 

I didn't know there was a finished shelf product, looks great! Except the money though, I'm not saying it's expensive, but it's alot of money. Add shipping and customs, and its $200+. I wish there was a similiar solution as in the article, "get one of there and one of these and connect'em like this"  but I guess it's not that simple. 

I'll save the link for when my budget allows it! :)


Comment by Brian Donovan on May 2, 2014 at 12:24am

golf clap

Comment by Simon Wunderlin on May 2, 2014 at 12:53am

Thanks for the write up chris. I prefer to use the RN-42. It's a bit more expensive but it's a class 1 BT device. Theoretically you should get up to 100m range with 2 class 1 modems. Most tablet and phone devices are using class 2 devices. With 2 class 2 devices the range is about 10m. A mix of class 2 in my tablet and class 1 in the BT Bridge gave me about 30-40m range. 

Comment by Simon Wunderlin on May 2, 2014 at 1:36am

@Magnus von Rosen I have bought 2 of these from Event38. Prior to that I was building them myself. The components alone cost me roughly $100 (without shipping from several suppliers). I think this is a rather cheap offer and you get a neat case, custom pcb and a built in lipo with charger.

Comment by Glenn Gregory on May 2, 2014 at 2:07am

Good description! I've got some modules here ready to do this but as yet I don't have any android devices.
Does anyone know of any GCS running on iPhone or iPad? I know Bill had an app MavPilot but think he was having issues getting it through the guards at apple.

Alternatively I should just fork out for an android device.

Comment by Mike Knott on May 2, 2014 at 5:20am

Magnus, if you follow Chris's instructions to configure the bluetooth module, just wire it into your data radio (VCC, GND, RX-TX and TX-RX) and splice a 5v BEC to power up both modules. I built one awhile ago that works flawlessly for about $50. Send me a PM and I'll try to draw out the wiring diagram.

Comment by Thomas J Coyle III on May 2, 2014 at 5:52am


I purchased one of the Event38 Bluetooth telemetry bridges and it works great with my Samsung Galaxy Tab 2 10.1. Now I can move around with the tablet since I no longer have to have the telemetry radio attached to the tablet by the USB cable.

Installation was quick and easy. The bridge linked to the telemetry radio on my rover the minute it powered up. Linking to the tablet just required turning on the Bluetooth function and connecting with the bridge.

I put the Event 38 on the roof of my car and get a 95 -99% signal strength.


TCIII ArduRover2 Developer

Comment by c j g on May 2, 2014 at 7:06am

WOW. Nice to see, Bluetooth is back on the table ;)

We are using/tinkering with onboard APM - Bluetooth - Android Mobile connection for Telemetry and Video over 3G


You need to be a member of DIY Drones to add comments!

Join DIY Drones

© 2020   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service