Friday, December 4, 2015

How to save an UART port on your MSP protocol compatible Flight Controller for SmartPort telemetry (Part 1)

I like to receive SmartPort telemetry data to my Taranis so it gives me voice feedback when something is wrong. Flight Controllers have limited hardware UARTs so I though it should be convenient to move SmartPort telemetry out of the Flight Controller and connect it thru MinimOSD as it already receives lots of telemetry via MSP protocol.

You can save an UART port when using SmartPort telemetry data if you are also using a MSP protocol compatible OSD board with Cleanflight. The method I used is to connect an Arduino Nano clone board (Atmega328) in parallel to the OSD board so we can read the MSP protocol values and send them to the receiver's SmartPort.

Just purchase a Arduino Nano (a clone for really low cost), or Atmega328 based board and connect it in parallel to the MinimOSD (or MSP protocol compatible OSD).

I'm personally using MinimOSD as OSD overlay and Naze32 as Flight Controller, so this post is described for that hardware, but probably can be adapted to yours with no or little modifications.

So what I did to accomplish this. First I purchased an Arduino Nano clone board for about 2$ (check eBay):

arduino nano

I wanted to program MinimOSD thru the Nano board, so I soldered some wires and a resistor. This way I can use the Nano as an ISP programmer. This is optional, but I find it quite convenient for when I want to upgrade MWOSD software because the ICSP header is hard to reach in my multi rotor.

To use the nano as an ISP programmer I soldered the ICSP pins from the Nano board to the MinimOSD so I can use the Nano board to program MinimOSD via ISP. Wires soldered as follows:

Nano pin 13 to ICSP 3 (SCK)
Nano pin 12 to ICSP 1 (MISO)
Nano pin 11 to ICSP 4 (MOSI)
Nano pin 10 to ICSP 5 (RESET)





Solder a 1KOhm resistor between GND and pin 10 of Nano board, so MinimOSD will be kept on reset at power up. This avoids interference from MinimOSD when programming via ISP.




That's the mod we need to use Nano as ISP programmer.

I also moved the reset button to another location as I intended to glue the Nano down and the reset will be inaccessible. That's completely optional also, but if you want to do it, just solder the switch button between GND and RESET pin.




Now, to use the MSP to SmartPort I soldered the Nano board to MinimOSD like below. Resistor values I've used are 100 Ohm and worked fine for me. In some testings I did, seemed that going below 68 Ohm, or higher than 120 Ohm did not work.


Reminder: Next time use standard resistors. That SMD are so damn small that are a pain to solder.

Just make sure to align the board so every signal of the Nano matches MinimOSD signal. GND with GND, VCC with VCC. Put resistors between TX and RX pins like in the photo. Note that Nano board is upside down to match pins:

Reset not moved yet in this photo

Finally solder a 4.70Kohm resistor between Nano pin 2 and header or wire that will be connected to the receiver SmartPort pin. Isolate using some heat shrink tube:




If you wish, you can use another pin but you'll need to change the code for the Nano board.

Double check your soldering work, make sure there is no short or incorrect connection.

To avoid vibration of the Nano board I used hot glue between the two boards:




Now you need to program the Nano, but that will be on another post, this one it's already too large!

No comments:

Post a Comment