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 –


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


  • Hi again,

    Just a couple of quick questions - I get the warnings Battery Low and RSSI Low... have set up my battery in MP (2200 size and 1-3 cell) but OSD shows only 10.8V consistently and 0% RSSI.

    I've searched through this thread, but can't find a solution - do I need more sensors than just what APM2.5 provides to get this data displaying correctly?

    Again, thanks for any assistance! :)


  • Just to add some more info for the topics I've started above, the problems seem to have started when I uploaded a hex I compiled myself using Arduino... then, blank screens when OSD is plugged into both the OSD Config tool and APM using the hex files available here (Versions 1.9, 2.0 and 2.1), until I then uploaded the same self-compiled hex (2.1) using OSD Config tool - now, I see booting and "Waiting for Mav..." using the config tool, but still get total static on blank screen with APM.

    Is it possible that the Arduino tool uploaded more than just the hex file, maybe overwriting or not including some files that APM2.5 expects to see?

  • Hi Gábor,

    I was looking to do the coding myself for the EzUHF RX RSSI & Link Quality output, because I thought it wouldn't be that hard to display ch 6 and 7 in % like I said here

    But it took me 4 days to find out how to download the sourcecode from the google page. :-)

    Now I am looking in the code, but I can't find out how this al works. It is just to complicated.

    Is it possible that you can to the coding for the EzUHF - RSSI version ? Or maybe to help my out here?


This reply was deleted.


Gremsy liked Gremsy's profile
Mar 12
DIY Robocars via Twitter
RT @chr1sa: Donkeycar 4.4 released with tons of new features, including path learning (useful with GPS outdoors), better Web and Lidar supp…
Nov 27, 2022
DIY Robocars via Twitter
RT @NXP: We are already biting our nails in anticipation of the #NXPCupEMEA challenge! 😉 Did you know there are great cash prizes to be won…
Nov 24, 2022
DIY Robocars via Twitter
RT @gclue_akira: レースまであと3日。今回のコースは激ムズかも。あと一歩 #jetracer
Nov 24, 2022
DIY Robocars via Twitter
UC Berkeley's DIY robocar program
Nov 24, 2022
DIY Robocars via Twitter
RT @chr1sa: The next @DIYRobocars autonomous car race at @circuitlaunch will be on Sat, Dec 10. Thrills, spills and a Brazilian BBQ. Fun…
Nov 24, 2022
DIY Robocars via Twitter
RT @arthiak_tc: Donkey car platform ... Still training uses behavioral cloning #TCXpo #diyrobocar @OttawaAVGroup
Nov 20, 2022
DIY Robocars via Twitter
RT @emurmur77: Points for style. @donkeycar racing in @diyrobocars at @UCSDJacobs thanks @chr1sa for taking the video.…
Nov 20, 2022
DIY Robocars via Twitter
RT @SmallpixelCar: Going to @diyrobocars race at @UCSDJacobs
Nov 8, 2022
DIY Robocars via Twitter
RT @SmallpixelCar: Race @diyrobocars at @UCSDJacobs thanks @chr1sa for taking the video.
Nov 8, 2022
DIY Robocars via Twitter
RT @PiWarsRobotics: Presenting: the Hacky Racers Robotic Racing Series in collaboration with #PiWars. Find out more and register your inter…
Oct 23, 2022
DIY Robocars via Twitter
RT @Hacky_Racers: There will be three classes at this event: A4, A2, and Hacky Racer! A4 and A2 are based around UK paper sizing and existi…
Oct 23, 2022
DIY Robocars via Twitter
Oct 23, 2022
DIY Robocars via Twitter
Oct 19, 2022
DIY Robocars via Twitter
Oct 18, 2022
DIY Robocars via Twitter
RT @NeaveEng: Calling all UK based folks interested in @diyrobocars, @f1tenth, @donkey_car, and similar robot racing competitions! @hacky_r…
Oct 13, 2022