One of the most sickening ‘uh-oh’ sounds is that telltale snap that says you’ve just broken a fragile and vitally important connector and that’s exactly what happened to me. I was setting up an APM 2.6 in Mission Planner — the model was connected to the PC via a 3m USB cable and sitting in a chair across the room — and somehow I managed to step on the cable and instantly heard that awful sound. The force wasn’t enough to move the model but it was just enough to break loose the connector’s tiny solder joints ='(
All too often an accident like that can mean tossing an otherwise functional device but luckily the good folks at 3D Robotics designed the APM with a couple of [reasonably accessible] back doors. One is the telemetry port and the other is an available UART serial port (identified as UART0).
Connecting your computer via the Telemetry port doesn’t require opening the case but you will need some specialized hardware in the form of either telemetry radios or an FTDI adapter (allegedly, you can also connect to this port with Bluetooth but I’ve tried several adapters on different APMs and never got them to connect using the latest versions of ArduCopter and Mission Planner and 3DR tech support was useless so good luck with that.)
Wireless telemetry is an elegant solution and it’s great if you want to setup a ground station but at $100 for genuine V2 3DR radios they’re a bit spendy if you just need to connect to a computer. An FTDI adapter on the other hand, is relatively cheap but it will require a custom cable with a Hirose DF13 5-pin female connector that mates with the telemetry port. Regardless of whether you use radios or an FTDI adapter the port is limited to a baud rate of 57K.
FTDI / BT adapter to APM Telemetry Port Cable
Connecting via telemetry radios will require changes to the APM configuration which in turn requires connecting through Mission Planner. If your USB connector is broken and you want to use telemetry radios then you’ll first need to connect using an FTDI adapter or one of the methods outlined below.
Connecting your computer to the APM via UART0 is fairly straightforward but it does require some light soldering, a minor case mod and either a USB to UART Bridge, FTDI breakout adapter, or a Bluetooth adapter.
Silicon Labs CP2102 USB to UART Bridge
Adafruit FTDI Friend
SparkFun FTDI Basic Breakout – 3.3V
JY-MCU Arduino Bluetooth Wireless Serial Port Module
UART bridges and FTDI boards usually have solder pads on the back and a trace that you cut to select between 5V and 3.3V logic. To connect at a full 115K data transfer rates requires your board be set to 3.3V, otherwise you will be limited to 57K. Here you can see where I cut the 5V trace and created a solder bridge to enable 3.3V.
The down side of going 3.3V is that you cannot power the APM by a battery/BEC and connect the FTDI at the same time (battery power raises the voltage of the APM and subsequently the logic levels as well.)
The more convenient route is to use an FTDI board set to 5V. While this limits the baud rate to 57600 it does allow you to power the APM from a battery. If you go this route you must disconnect the 5V lead from the FTDI board and connect the battery first, followed by the FTDI adapter.
The JY-MCU Bluetooth modules normally come preset at 9600 BAUD so you’ll need to do some reconfiguring in the Arduino IDE serial monitor. I setup my module using the following AT commands:
AT+BAUD7 (sets BAUD to 57600 – the upper limit for BT)
AT+NAMEArdupilot (sets name to Ardupilot)
AT+PIN1234 (sets the PIN to 1234)
If you’ve never setup a JY-MCU before then I highly recommend this great tutorial from Painless360: https://youtu.be/jSxcEZHsV0A
Adding A New Connector
The simplest way to connect to UART0 (and the most convenient IMHO) is by soldering an extra long 4-pin header directly to the port — choosing between a straight header (top access) or right-angle header (side access) comes down to personal preference and I opted for right-angle simply because it makes for an easier case mod.
Extra long breakaway header – right-angle
Adafruit product ID: 1540
Extra long breakaway header – straight
Adafruit product ID: 400
Choosing to have the pins exit out the side requires they be mounted flush with the PCB rather than using the plastic header strip as a standoff. This will place the pins along the seam where the case halves join together and greatly simplify the case mod.
Break off a 4-pin section of the header and insert it into the UART0 solder pads as shown, then apply a small amount of solder to a single pin and adjust the header so that it sits straight and is parallel with the PCB.
After all 4 pins are soldered remove the plastic header strip.
Viewed from the top and starting with the square solder pad, the pins are identified from left to right as: RX0, TX0, +5V, and GND (see photo at the top of the page for an underside view of the silkscreen.)
The next step is to do a trial reassembly of the two halves of the APM case and PCB (without screws) and mark the points where the pins will exit. Where you make the holes for the pins depends upon whether you have a genuine 3DR case or a clone. With genuine 3DR cases the screws enter from the top and the PCB sits exactly flush with the edges of the lower half of the case. Clone cases tend to have their screws enter from the bottom and the PCB usually sits about 1.75mm lower.
If the case is from 3DR (above) then only the upper half of the case needs to be modified as the pins sit flush with the edge of the lower half of the case when the board is inserted. If the case is from a manufacturer other than 3DR, then these sames mods will need to be made to both the upper and lower halves of the case (below).
Once the 4 points have been marked you’ll want to remove just enough material at each point to clear the pins when assembled. I used a small round file to make the above openings.
The pinouts of the adapters do not line-up with those of our new 4-pin connector so you’ll either have to make a custom cable or use jumper wires (I recycled a pair of unused ribbon cables.)Connecting to Mission Planner using the new hardware is no different from the original USB connection. Once plugged-in you select the appropriate COM port and BAUD rate from the drop-down list and then click CONNECT.
While connecting with this method does work reliably with Mission Planner, as far as I know it’s impossible to update the firmware of the APM using UART0 or the telemetry port. That said, if you’ve already updated to v3.2 then you have the most recent firmware and this shouldn’t be too big an issue as 3DR has officially retired the APM and no further updates will become available anyway. Finally, connecting to UART0 via Bluetooth is not compatible with any Android or iOS apps and in this application is literally just a substitute for a USB cable.
As an aside, unless you’re already connecting via telemetry radios then this mod may not be a bad idea as a preventative measure to save wear-and-tear on a working USB connector as the only time you actually need to use UART1 (ie the USB port) is when you’re uploading new firmware. Changing settings on the APM and programming missions all can be done via UART0 or the telemetry port.
Did you find this post helpful or informative? If so please consider donating to CradyLab™