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 –


      • I am not exactly understand, If I will do this changes in code then I should compile and flash the new .hex, but how I will be able to put the new RSSI icon on the screen via CT Tool, how the new .hex affect to the CT Tool?
        I tryed to compile like in the "Beginner’s Guide - Howto Modify the MimimOSD-Extra Code" but got the errors.
        Maybe developers will add this feature in next versions, just the ability to set the Telemetry RSSI at the screen.

        • Hi Anton,

          You may change in OSD_Panels.ino, panRSSI method:

          Change this,

              osd.printf("%c%3i%c", 0x09, rssi, 0x25);
          To this,
              osd.printf("%c%3i%c|%c%3i%c", 0x09, rssi, 0x25, 0x09, telem_rssi, 0x25);

          You will see in osd RSSI and Telem RSSI in the "line under".

          In CT Tool you'll just see RSSI. You just know that it will print Telem RSSI one line under that one.

          To compile the code you should use Ardupilot Arduino 1.0.3 and the librariresOK

          IMHO including this mod in the release would mean an even more populated osd so I'm not planning it.

          The other option would be to create a new panel but that means valuable space that we don't have :S


          • Ok, I handle the compiling, while compiling the Arduino 1.0.5 r2 shows errors but the .hex is working.
            I made the changes you wrote before and the second transmitter icon appears on the screen but the RSSI % show 0 and never changes at the same time when Mission Planner shows the 100% of the telemetry RSSI. Maybe something wrong?
            The changes are (some part of the code):

            ---File OSD_Vars.h
            //rssi varables
            static uint8_t rssipersent = 0;
            static uint8_t rssical = 0;
            static uint8_t osd_rssi = 0; //raw value from mavlink
            static int16_t rssi = -99; // scaled value 0-100%
            static uint8_t rssiraw_on = 0;
            static uint8_t rssi_warn_level = 0;
            static uint8_t telem_rssi; // new
            static uint8_t telem_rem_rssi; // new

            ---File MAVLink.ino
            osd_home_alt = osd_alt - (mavlink_msg_global_position_int_get_relative_alt(&msg)*0.001);
            case MAVLINK_MSG_ID_RADIO: // new
            { // new
            telem_rssi = mavlink_msg_radio_get_rssi(&msg); // new
            telem_rem_rssi = mavlink_msg_radio_get_rssi(&msg); // new
            } // new
            break; // new
            //Do nothing
            //next one

            // if (rssi < -99) rssi = -99;
            // osd.printf("%c%3i%c", 0x09, rssi, 0x25); // before
            osd.printf("%c%3i%c|%c%3i%c", 0x09, rssi, 0x25, 0x09, telem_rssi, 0x25); // new
            // osd.printf("%c%3i%c", 0x09, osd_clear, 0x25);

            • Hi Anton,

              I wrote one wrong line:

              telem_rem_rssi = mavlink_msg_radio_get_rssi(&msg);

              should be,

              telem_rem_rssi = mavlink_msg_radio_get_remrssi(&msg);

              As it is now it should show remote rssi.

              I'll try to make my own tests regarding this next week.

              Also, I had some problems using Arduino 1.0.5 so I reverted to the APM specific 1.0.3 I linked before.


              • Hi Miguel,

                Any ideas about this issue?

                • Hi Anton,

                  I'll try to test this asap.


              • Does not work again. I use RFD900 modems, if this make a difference.

  • Hi,

    Here is a new pre-release (r785) for copter version.


    Bug fix in timer. Timer now starts when copter armed. When disarmed it pauses.

    Home altitude is now showing VFR HUD altitude. This way we don't need to wait for GPS fix to get "relative altitude". I think it's the same way as Mission Planner is showing it on HUD.


    Since I'm with little time available to test this pre-release, it would be much appreciated any and all feedback from you guys.

    • Works great, thanks a lot !

      • Pierre,

        Great  to know it's working fine.


        Tim and Pierre,

        If you could please make some videos. It's great to see the end result of our efforts and those videos are valuable tools to debug any other issues / have new improvement ideas ;)



This reply was deleted.