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 –


  • To use the rotation screen feature you need to use the Trainer Switch.


    • AlbeEagle, I'm lacking context here. Are you talking about switch OSD rotation or flight mode based rotation?

      And I don't understand what you mean by "you have to use a trainer swtich". On my Taranis, I can assign any switch I want to any channel I want.

      • I think he is making reference to the Trainer Switch as it is a non latched switch and will return automatically when you let it go.  You really do not have to use this switch and as you say on the Taranis you can assign any channel to any switch or pot,  I think he is talking about simplicity of use here.  Unfortunatly for me I don't have any spare channel capacity on the receiver and I have to use the Mode Switch method :-(

        • Got it, he was telling me how to use the original code that burns an entire channel just for OSD rotation.

          Indeed that's great if you have spare channels, I don't (I use 14 for that matter, and channels below 8 are premium, so I only have one spare with 7 channel motor glider with crow flaps). I can now use channel 8 for OSD rotation, turning my cameras on/off, and activating geofencing with ardupilot, all on the same channel with the same switch (obviously you couldn't do that with the old code).

  • I just spent time adding a switch double flip OSD rotation function.

    This allows you to reuse any switch (flaps, gear, lights, whatever) and flip it to any position and back within 1 second. If you do, this will rotate the OSD screen. This is available in Version 807 with precompiled binary for plane. Anyone with copter can easily port my code and test it (I don't want to maintain a branch I'm not testing).

    In turn, this makes the mode switch rotation code redundant (and it never worked right for me anyway), so I was able to delete it in version 808, where I made other cleanups.

    My repo is here:

    The tree I added code in:

    Firmware with new rotation code:

    Firmware with code cleanups and mode switch rotation removed (please test this if you can, and go back to R807 if it doesn't work for you):

    (I was able to free up 188 bytes)

    I sent this for merging in the main repo, but for now you can report problems to me:

    MinimOSD-Extra. Contribute to marcmerlin/MinimOSD-Extra development by creating an account on GitHub.
    • My version already does this or am I missing something here??

      • What does your version do?

        rotation switching with a switch will rotate the OSD forever (once a second) if your switch is on anything but down

        this means you can't use your switch for anything else.

        My version switches the OSD only if you move the switch to any other position and back within 1 second. This allows the switch to be used for anything else and you can even use mode switch (APM 6 position switch) for this.

        The APM mode switch rotation code does exist, but

        1) it doesn't work for any switch, just the mode switch

        2) it just didn't work well when I tried it. Sometimes it would rotate when I didn't want, and other times, I really wanted it to rotate and I couldn't get it to.

        • My version does this with the mode switch same as you state by moving it back and forth in one second will change the OSD display to 1, 2 or off.  It is settable in the configurator as to how you have it function.


          • Yes, I know about the mode switch feature. It did not work reliably for me, that's all I can say.

            Sometimes it would rotate, and sometimes it would get stuck

            My code allows to do this reliably with either the mode switch, or a 2-3 position toggle switch (it combines and improves the 2 separate code paths that tried to do this into a single smaller one, saving program space for more functionality)

  • Hi,

    I was wondering if you had a version of this that speaks UAVTalk for Open/Libre pilot?

    I found and used the libraries from and fixed it to build on Arduino 1.6.5 and it seems OK but it would be nice to merge the code in so I can take advantage of your improvements :)

    Is your code available somewhere? If so I can try merging it in myself.

This reply was deleted.