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 –


        • yes hasnt heard of any newer, your welcome

  • Hi,

    is there a chance to output FrSky telemetry from OSD? Is there enough horsepower to do some sw serial communication left?

    There is a project using arduino to convert from mavlink to frsky ( It uses same core hw (atmega) to do the conversion. The minim osd already requests and decodes mavlink data. What is needed is to add code for data assembly of FrSky sata packets and serial output...

  • Please give me the link to the latest developing version of copter minimosd extra (HEX file for r795)

  • Developer

    Hello everyone,

    For those who wants to read a second battery Voltage and show it on OSD...

    I have a Remzibi OSD with MinimOSD software ported to real C+, so next explanation is not exactly the same for an Arduino based device like MinimOSD, but it must works. Just you have to do is implement in your code a "case" to read MSG_ID_BATTERY2 from Mavlink datastream.

    On first, update your Mavlink libraries from code repository on GitHUB.

    Then add this to MAVLINK.ino:
            osd_vbat_B = (mavlink_msg_battery2_get_voltage(msg)/1000.0f);
            osd_curr_B = (mavlink_msg_battery2_get_current_battery(msg)/100.0f);

    Next you have to do is define in OSD_Vars.h the new variables and panel coordinate holders:

       static float      osd_vbat_B = 0;               // voltage in milivolt
       static int16_t      osd_curr_B = 0;           // Battery B current

       byte panBatt_B_XY[2]; // = { 23,3 };
       byte panCur_B_XY[2]; // = { 23,4 };

    And finally, add a new OSD panel in OSD_Panels.ino:

       if(ISa(panel,BatB_BIT)) panBatt_B(panBatt_B_XY[0], panBatt_B_XY[1][panel]); //7x1
    /* **************************************************************** */
    // Panel  : panBattery B (Voltage 2)
    // Needs  : X, Y locations
    // Output : Voltage value as in XX.X and symbol of over all battery status
    // Size   : 1 x 8  (rows x chars)
    // Staus  : done
    void panBatt_B(int first_col, int first_line){
        osd.setPanel(first_col, first_line);
        osd.printf("%5.2f%c", (double)osd_vbat_B, 0x0d);

    Remember to assign unused coordinates to the new panel...
    This is not plug and play code... you need to modify it for your conveniences.

    Of course you have to activate and config BATTERY2 readings in Ardupilot with APM Planner or Mission Planner GCS Software.

    Regards from Spain,

    • Dario,


      Thats great.

      Are you missing some code?  I don't see where 'mavlink_msg_battery2_get_voltage'  is defined anywhere?


      Also, is 'CT tools' utility closed source?  I'd like to modify this to include 'BatteryB' so I can place the text graphically on screen, and not have to hard code MinimOSD Extra if possible.

      • @Dirk 

           If you get this mod to the MinimOSD Config Tool could you give me a copy of it or a link to such?

        I am very interested in adding this feature as I use a separate video battery on my plane.

        You can reach me here:


        Dave m

        Dave Merc Productions
        MeRC ◕RC Flying, RC Reviews, and RC Builds ◕RC Videography ◕Drone Aerial Photography
        • I will definitely get this done, and soon.

          My aim was to have finished by now, but I just lost my main FPV ship 5 kms away - only time the DVR wasnt working of course.  So I've spent past 2 weeks building up another.

          This rainy weekend I'll start on the code.

          I hope to have it done within a week of starting.  Who knows how realistic that will be.

          • Thanks so much for the reply.

            It's great that you are willing to put the time in to make these additions to the code and I am

            sure there will be many who will benefit from it, including me.

            Dave m

      • Developer

         Hello everyone,


        Take a look at this...

        Battery2 Mavlink message definition

        There you can see how battery2 readings are implemented through Mavlink datastreams. Remember update your libraries to the last version in order to make it works.

        CT tools is Open Source. You can find the files here:

        MinimOSD Extra repository 

        Hope I help you.

        Regards from Spain,


This reply was deleted.