Adding extra functions to MinimOSD

I have started to add functions to MinimOsd code.

At first i did it for myself only. Added many functions i thought i need. Then opened this thread.

after a while, Pedro and later Miguel came, and things started to happen fast. :D

They have optimised the code and added even more things to it.

They have worked hard on CT, and it became a great tool!

Thank you Bough! :)

By now MinimOSD-Extra got a pretty advanced OSD.

Here it is in action:


- Changeable unit measurement (US, metric)

- Airspeed

- Home alt

- Battery Percent

- Battery used mah

- Current Draw

- Time From Startup (cleared at takeoff to show exact flight time)

- OSD Menu

- Variometer

- Wind horizontal speed and direction, and also the average wind speed of the last few minutes. 

- OSD on/off

- Switchable secound screen

- WP distance

- WP heading

- Crosstrack error

- Warning messages for Lost GPS fix, Stall, Overspeed, battery volt, battery Percent, RSSI

- Efficiency, glide distance & thermic notifier. 3 in one panel

- OSD Brightness

- HAM Call Sign

- After flight summary

- Trip distance

- Temperature

- Smoothened horizon

- Real heading


- Vertical speed

This functions can be turned on and off, and placed on different screens now, by the Config. tool.

Also RSSI, switching mode and channel and unit measurement, Stall speed warning, Overspeed warning, Battery warning volt, Battery percent warning, RSSI warning,  can be set in new Config Tool.

We built in a new way of setting video standards. Now OSD does not guessing anymore :). You can set it fixed from CT. It is in "Video Mode" menu.

Here is how it looks: (This video is a bit outdated, sorry. I will make a new one soon.)

The MinimOSD-Extra project is here: Link

This project is the developing version of the official Arducam OSD located here: Link

The latest stable version is: 2.2

The latest version can be downloaded from here: MinimOSD-Extra R800

Username: MinimOSD_Extra

Password: Top_Secret

CT is included. (The FW for Plane, Copter, Character upload and the character file is in the "FW & Char" directory inside CT directory)

We are sharing it to see videos you make using it! :)


You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –


  • Hi guys,

    Just thought I'd update with my issue here, in case anyone ever has a similar problem(s):

    My camera failed completely a couple of days after I posted the problems I had with getting the MinimnOSD overlay to appear and stay there... I wonder now if the failing camera created this problem all along, as with a new camera the osd works fine.



  • I have made some changes.

    Added summary that comes up after landing. (THX Virgis for the idea)

    Alos made one panel of wp distance and WP direction to save a bit of space, and added xtrack error to it, so it is 4 in one now. (WP number, WP distance, WP direction, and xtrack)

    Also added max windspeed to WS panel.

    It is only in source now.


  • First video of the Immersion RC EzUHF RSSI & Link Quality on a MinimOSD.

    The RSSI value is from 0-100 with 0 best and 100 worst and Link Quality is in % 100% best and 0% worst. Just like the EzOSD.

    Now I'm using channel 5 and 6 from RX and APM in PPM modus. But today ImmersionRC anounst a new firmware for 12Ch PPM modus. So then I can us channel 9-10 for RSSI and LQ output so I won't lose any channels. I will make a full tutorial + firmware download when all is ready.


  • Pedro, where does one learn (tutorial) to add code like the rssi to the APM. I am not familiar with Arduino programming.


  • Dear Gábor!

    I can't find message where you ask about my modification (to reset Home distance every arming)

    so here it is

    added if 

    if (motor_armed == 0 && osd_got_home == 1) // If we disarmed, let's reset home on the next arm
      osd_got_home = 0; // to set new home when we will be armed again
    and was modified this string

      if(osd_got_home == 0 && osd_fix_type > 1 && motor_armed == 1){ // New home will be set only whith arming

  • How about adding the option of flipping the screen?

    For saving money I bought a car rear view camera. This camera performs a stupid mirroring of the image so that if you look at the display in a car it looks like you're looking to a mirror. Luckyly the screen I bought also features an optional flipping of the screen so I just flipped twice and everything worked fine but when I put the OSD on text are mirrored :(

    The MAX7456 doesn't have a mirror function so this would need the creation of mirrored characters and so on... Is this feasible?

  • Ok, I have the EzUHF RSSI & Linkquality up and running. Everything works exactley like I wanted it. Not bad for a non-coder he? Soon I will test it and make a video.

    Now I use the chan_raw values. If I want to release the code, the chan_raw will be slightly different for the other users.
    Better would be to use the calibrated "chan_scaled" values. But I can't get them to output on the OSD.

    What I did:

    In MAVLink.ino I put:

    chan1_scaled = mavlink_msg_rc_channels_scaled_get_chan1_scaled(&msg);
    chan2_scaled = mavlink_msg_rc_channels_scaled_get_chan2_scaled(&msg);
    chan3_scaled = mavlink_msg_rc_channels_scaled_get_chan3_scaled(&msg);
    chan4_scaled = mavlink_msg_rc_channels_scaled_get_chan4_scaled(&msg);
    chan5_scaled = mavlink_msg_rc_channels_scaled_get_chan5_scaled(&msg);
    chan6_scaled = mavlink_msg_rc_channels_scaled_get_chan6_scaled(&msg);
    chan7_scaled = mavlink_msg_rc_channels_scaled_get_chan7_scaled(&msg);
    chan8_scaled = mavlink_msg_rc_channels_scaled_get_chan8_scaled(&msg);

    in OSD_Vars.h

    static uint16_t ch_scaled = 0;
    static uint16_t chan1_scaled = 0;
    static uint16_t chan2_scaled = 0;
    static uint16_t chan3_scaled = 0;
    static uint16_t chan4_scaled = 0;
    static uint16_t chan5_scaled = 0;
    static uint16_t chan6_scaled = 0;
    static uint16_t chan7_scaled = 0;
    static uint16_t chan8_scaled = 0;

    And in OSD_Panels.ino

    "chan5_scaled" where I wanted it to output

    But I can't get any output.
    Is there something I'm missing here ?

  • Hi

    How many firmware versions exist?

    Is there MiniOSD and MiniOSD Extra (or something like that)?


    Where do I find this firmware?


    Thanks for helping.

  • Good day!

    I have made simply modification, and now Home distance became zero meters after each arming. Very useful.. may be it will be good to include it's feaure to the original firmware?



  • Ok, I am really at a loss to explain this... after uploading your R442 I received the full OSD extra experience on a couple of reboots but today, nothing! Just a screen showing the camera display, but no osd info. I do see the booting image (2.1 R442) but then a burst of static and back to the camera display picture. Twice I did receive the osd data overlaid, so it works, but only sporadically.

    Any help very much appreciated! :)


This reply was deleted.


DIY Robocars via Twitter
RT @knightsautoteam: Hi @diyrobocars, we are Orlando's first Autonomous racing club and would love your support. We are hosting our first K…
Jan 20
DIY Robocars via Twitter
RT @Heavy02011: #VirtualRaceLeague: @DIYRobocars Race #14 - #ParkingLotNerds join us January 15th for #AutonomousRacing #RoboRace ⁦@DAVGtec…
Jan 16
DIY Robocars via Twitter
RT @chr1sa: And after that came our races, 50 in all. This battle between these two Russians was the best we've ever seen -- incredible fig…
Jan 16
DIY Robocars via Twitter
RT @chr1sa: Before our @DIYRobocars virtual race this weekend, we had a presentation from the team that won the Indy Autonomous Challenge i…
Jan 16
DIY Drones via Twitter
Dec 12, 2021
DIY Robocars via Twitter
Dec 12, 2021
DIY Robocars via Twitter
RT @chr1sa: Just a week to go before our next @DIYRobocars race at @circuitlaunch, complete with famous Brazilian BBQ. It's free, fun for k…
Dec 4, 2021
DIY Robocars via Twitter
How to use the new @donkey_car graphical UI to edit driving data for better training
Nov 28, 2021
DIY Robocars via Twitter
RT @SmallpixelCar: Wrote a program to find the light positions at @circuitlaunch. Here is the hypothesis of the light locations updating ba…
Nov 26, 2021
DIY Robocars via Twitter
RT @SmallpixelCar: Broke my @HokuyoUsa Lidar today. Luckily the non-cone localization, based on @a1k0n LightSLAM idea, works. It will help…
Nov 25, 2021
DIY Robocars via Twitter
@gclue_akira CC @NVIDIAEmbedded
Nov 23, 2021
DIY Robocars via Twitter
RT @luxonis: OAK-D PoE Autonomous Vehicle (Courtesy of zonyl in our Discord:
Nov 23, 2021
DIY Robocars via Twitter
RT @f1tenth: It is getting dark and rainy on the F1TENTH racetrack in the @LGSVLSimulator. Testing out the new flood lights for the racetra…
Nov 23, 2021
DIY Robocars via Twitter
RT @JoeSpeeds: Live Now! Alex of @IndyAChallenge winning @TU_Muenchen team talking about their racing strategy and open source @OpenRobotic…
Nov 20, 2021
DIY Robocars via Twitter
RT @DAVGtech: Live NOW! Alexander Wischnewski of Indy Autonomous Challenge winning TUM team talking racing @diyrobocars @Heavy02011 @Ottawa…
Nov 20, 2021
DIY Robocars via Twitter
Incredible training performance with Donkeycar
Nov 9, 2021