Program MinimOSD using Arduino without FTDI Cable

by Oscar

One great feature that we should add to FPV would be flight data on the screen display (OSD). By programming the MinimOSD, not only you get more accurate data on the screen, you can also select, edit what kind of data you want to have on the screen. The Crius AIOP board is supposed to work well with the MinimOSD, so I gave it a try.

Some of the links on this page are affiliate links. I receive a commission (at no extra cost to you) if you make a purchase after clicking on one of these affiliate links. This helps support the free content for the community on this website. Please read our Affiliate Link Policy for more information.

I realized that you need a FTDI cable to do the programming, but if you happen to have an Arduino Uno like I do, then it’s your lucky day because you can easily turn your Arduino in to a FTDI programmer. I will show you how after the break. You can buy an Arduino from Newark.


Connecting Arduino with MinimOSD

How does it work?

A bit of technical background, skip if you like.

The Arduino UNO has an FTDI USB-TTL chip on it to communicate between a PC and the ATMEGA chip on the board. Because all of the necessary pins on the FTDI chip are connected to various pins on the edge of the board, we can just connect the MinimOSD up to the right pins and away we go! No need to spend extra money on the FTDI cable!

Let’s connect them

The connection is very simple. But first of all, if you don’t have an Arduino Uno but other Arduino boards, you need to make sure it has a FTDI chip otherwise I am afraid you are out of luck.

Connect your arduino to the computer, remember what COM port it has been assigned. Then unplug the Arduino from your PC.

Remove the ATMEGA chip from the socket. If yours is soldered directly to the board then you may still be able to continue, but you will also program the ATMEGA chip at the same time which you probably don’t want to do. This way we are just passing the data through the board to the output pins. Removing the chip means you won’t accidentally bugger up the ATMEGA chip.

Connect your MinimOSD to the Arduino board as follows:


Note that BLK on the MinimOSD is not connected to anything. Also note that TX is connected to TX, RX to RX – you don’t need to reverse them!

Connect the Arduino to your PC again. Your PC should recognize the device as usual and assign it the COM port we noted down earlier.

You should now be able to program the MinimOSD. However the way of programming it depends on the firmware, read on to see how.

Different Firmware for MinimOSD

Here comes the confusing part. There are some many different firmware suggested by people, I had no idea which one to use. After a lot of research, it turned out that we should flash the MinimOSD with different firmware, to work with different flight controller firmware. These firmwares are both open source, so it’s free to get them.

For MegaPirateNG, you should be using ArduCam-OSD, or MinimOSD-Extra. This firmware provides a very handy GUI tool, which allows you to flash firmware, and program the MinimOSD. All you need to do is to select the COM Port, browse to the firmware file, and click “upload firmware”.

For Multiwii, you should be using Rush-OSD. With this firmware you need to use the Arduino IDE to open the firmware files as a sketch, and upload them like you do with a normal Arduino.

It works great with this wiring diagram when using MegaPirateNG. But it just WON’T work with Multiwii for some reason. No matter which Serial port I plug the MinimOSD to, the ST LED didn’t light up, I get no image from the OSD. Although it’s working fine when testing with the Rush-OSD Gui and I can see the ST LED blinking. I think the Crius AIO Board is not talking to the MinimOSD, because the MinimOSD only accept certain data format (maybe telemetry data), and I couldn’t see any settings in the Multiwii config.h file either. After a couple of hours of trying and researching, I decided to leave it there. I don’t need it right now anyway.


I think that’s it, if I made any mistakes in explaining please let me know because I have only looked into this in the last few hours.

Thoughts about these open source OSD projects

I am sure the developers must have put much efforts and time into these projects, they do this not for money but for the convenience of others, and we are all very grateful.

However It’s not very straightforward to work these things out, because they are not well documented, and what is documented is not user friendly, at all. The “instructions are all over the place, you need to read through some 100-page long forum threads. Most of the time you need to guess, and do lots of trial and errors. After hours of trying only find out it’s not working. Very frustrating.

That is the problem with open source stuff, and sometimes it’s wiser to pay a little bit more and save the troubles.

Leave a Comment

By using this form, you agree with the storage and handling of your data by this website. Note that all comments are held for moderation before appearing.


John 28th March 2018 - 8:55 pm

I have a rev 3 Arduino Uno (Rev 3 does not use the FTDI chip) and I could not get it to work until I:
1) attached the DTR pin of the MinimOSD Micro to the Rest pin of the Arduino UNO’s ICSP
2) changed the board in the Arduino program to Arduino Pro

It works like a champ and flashed no problem. If I shorted the Arduino Reset pin to ground I did not have to remove the Arduino or run that extra sketch.

JRucksProjects 29th January 2018 - 9:50 pm

I spent about five hours trying to do this on my Mac and could not do it. My OSD was stuck on PAL, even though the PAL jumper pads werent soldered. Soldering and desoldering multiple times didn’t work. Clearing the gap with an Xacto knife didn’t work.

I tried everything I could think of. I booted into windows, downloaded the ArduCAM OSD Config, connected it as mentioned above, and it read the OSD on the first try. My OSD came from Amazon and the PCB had 2013-10-26 on the back, for what it’s worth.

Under the Mac OS I couldnt connect, upload, read or write to the board with the Arduino IDE no matter what I tried.

Under windows, I used an Arduino Uno with the Atmel chip removed, GRN to RESET, TX to TX, RX to RX, 5v+ to 5v+, ground to ground. Reads and writes fine.

Sharing because this was the very last thing I was willing to try, and it worked.

JRucksProjects 29th January 2018 - 9:52 pm

I should add that the effect this has has been discussed and not solved on other forums. Connecting a NTSC camera to the OSD set on PAL results in the top and (primarily) bottom of the OSD to be cut off. I checked this by connecting a GoPro and changing the AV out to PAL (the OSD was no longer cut off).

Alex Y. 3rd July 2017 - 4:42 am

Thank you sir, I appreciate your instruction. Saved me from some severe head scratching.

Diego Marcio Stadnick 26th February 2017 - 8:47 pm

Tks for help be precious for me. Congratulations
Diego M.

Danilo 18th February 2017 - 11:28 pm

what is this GRN pin on the micro osd?

chris Stolle 14th August 2016 - 2:44 am

I got past the error screens on arduino by plugging back in the atmega chip and removing the rx pin. Then it flashed!

Smokey 5th January 2016 - 5:29 am

Thanks Oscar!
Worked perfectly with the MinimOSD extra config tool and firmware.

Nazareno 27th December 2015 - 5:21 am

Podria funcionar con un Seeduino?

Luciano Abadio 7th November 2015 - 12:31 pm

Hi Oscar

I’m from Brazil, and I lost hours with an FTDI adapter Serial to USB. It was terrible and I didn’t get work, but now I found this tutorial and now I’m working fine with arduino UNO and MiniOsd. Thank you!

Bruno Santos 25th July 2015 - 3:18 pm

Thank you ! I don’t have a FTDI adapter (although I have a USB To RS232/TTL PL2303HX cable – it didn’t work) but a lot of arduinos ! :)

Best regards

Muchen 19th April 2015 - 5:51 pm

I cannot get this to work with my Arduino Uno. An error occurs when I tried to upload the firmware from Arduino IDE to the Arduino:

avrdude: stk500_getsync(): not in sync: resp=0x00

Internet search results says that this error occurs when there is something connected to TX and RX pins on the Arduino. Indeed, once I disconnected the two wires from TX and RX pins from Arduino, the IDE would upload successfully. But without TX and RX pins connected, its basically useless.

Did I miss anything?

But overall, great tutorial. Thank you!

Oscar 20th April 2015 - 12:58 am

did you remove the ATMEGa chip?

Damian 4th May 2015 - 9:18 pm

Hey Muchen,
If your still looking for a solution to this problem. I would try reversing your tx and rx cables. I was getting that same error till I swapped those two pins.
Good Luck

Terry Huang 13th January 2016 - 2:11 pm

Hi Oscar,
finally i found the solution to avoid arduino error
avrdude: stk500_getsync(): not in sync: resp=0x00
when you click the upload from Arduino IDE, after you saw the tx led start to blink, you
have to click down the reset button on arduino board, and the it down till the the whole program uploaded.

Open MW_OSD_GUI, after click READ, the same you have to click reset button till the READ finished.
WRITE the same

Oscar 20th January 2016 - 9:58 am

okay thank you Terry i will give this a try next time :)

J 9th April 2015 - 1:47 am

Hi Oscar,

You wrote about using an Arduino Uno here and said if one is unavailable, to ensure that whatever Arduino is used has an FTDI USB to TTL chip.

All Arduino Uno revisions use ATmega 16u2 or 8u2 chips and not FTDI.

Are you using an older Arduino in this guide (one that uses an FTDI chip, e.g. Arduino Duemilanove) or will this procedure indeed work with an Uno?


Oscar 10th April 2015 - 4:28 pm

i think so, why don’t you try it :)

J 11th April 2015 - 7:20 pm

I ordered an Arduino Uno with a socket-mounted ATmega chip. We’ll see how it goes.

asdf 8th April 2015 - 10:42 pm

You mention how you are out of luck if you have an Arduino board that doesn’t have an FTDI chip, but describe a method using an Uno. As far as I know, the Uno models don’t use FTDI chips and instead use ATmega 16u2 or 8u2 chip for USB to serial.

Does that mean that you don’t need an Arduino with an FTDI chip, or are you using a different Arduino model?


Ryan 18th March 2015 - 5:13 pm

Will this work with an arduino nano? If I cant remove the atmega chip and it gets flashed, will blheli reflash it fine? I mostly use the nano to flash my blue series esc’s over signal wire. I just want to make sure I can still do this after I flash minimosd.



Oscar 20th March 2015 - 3:57 pm Reply
ana 17th February 2015 - 7:51 am

hi.I would like information of a sensor which is sent to the serial port of the laptop by micro AVR, simultaneously display subtitles on the video camera ? What method should I use?
Thanks for your guidance

Dallas 18th November 2014 - 9:42 pm

Thank you so much for this thread! I was pointed here from another FB group. I was looking for an FTDI adapter and like most didnot want to wait for one online. I just happend to have an arduino and this is awesome. Again thanks

Dave 16th November 2014 - 12:15 am

Wow Oscar, thanks for saving my sanity. After two nights of unsuccessfully getting my FTDI cables drivers to work I found your post and within 5 minutes had my minim OSD updated. You are a star!

Mathieu 11th June 2014 - 12:27 am

Thanks A TON Oscar,
Wanted to update and configure my MinimOSD but didn’t have an FTDI cable.
Fortunately I have an arduino board and I found your blog.

Regarding the lack of documentation for open source project, I chose to use the MinimOSD-extra firmware (I use a Pixhawk flight controller).
It’s very user-friendly (there’s a config tool for setting up the MinimOSD parameters) and well documented here (wiki)

Thanks again for sharing Oscar!