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):
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 |
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