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


Views: 292964

Reply to This

Replies to This Discussion

Hi Miguel..I from Brasil..I found This Link...


Please see the attached pdf in first topic post...it's a document to explain the method for use lm1881 and insert data in video..


Hi Luis,

Thanks for the link.

I've already started some tests with LM1881 a couple of days ago :)

For now I'm just fooling around with an Arduino Duemilanove and the LM1881 learning the tricky parts of analog video.

Nonetheless I've already been able to write "pixels", even in the VBI for telemetry :)

One thing that is hard regarding sync is to achieve a none "shaky" osd.

To solve this my latest approach is to write panels in an area in memory. Then when a "new line" interrupt happens it just "prints" that memory line in the osd.

This way the pixels length don't depend on computation alghorithms.

However that memory area will be at least something like 8kbytes to have a resolution of 300x200. That's why I'm planning to use an Atmega2560 as you suggested before ;) (although ATMEGA2560 SRAM(8kb) + EEPROM(4kb) is something like 12kbytes :S )


PS: Se calhar é melhor continuarmos este assunto em português, não? (translation: Should we continue this topic in portuguese?) eheheh.

I think most of the guys here would have an headache reading our posts :D

Sem nenhum problema...nao sou programador..más sim tenico em eletronica..posso fazer os testes que for precisso pra voce..


Thanks Miguel!

I'm still getting the same error, so I suspect there is something wrong with the includes and the paths they are referencing on my system.  I'll stay on it..

any news about a new minimosd hardware (V2) or 32 bit so the developers can continue with programing new functions without messing around with the low resources?

What warning voltage value do you usually specify use for 3S battery? It looks like my batteries lower the voltage on throttle or on full throttle, causing low voltage warnings start even after fresh start.


I start to understand the code, and now I like to add Flight Mode support for TauLabs.

In TauLabs there is MavLink support, but without Flight Mode.

I see you have flight mode 0 (STAB) to 13.

if (osd_mode == 0) mode_str = "stab"; //Stabilize
else if (osd_mode == 1) mode_str = "acro"; //Acrobatic
else if (osd_mode == 2) mode_str = "alth"; //Alt Hold
else if (osd_mode == 3) mode_str = "auto"; //Auto
else if (osd_mode == 4) mode_str = "guid"; //Guided
else if (osd_mode == 5) mode_str = "loit"; //Loiter
else if (osd_mode == 6) mode_str = "retl"; //Return to Launch
else if (osd_mode == 7) mode_str = "circ"; //Circle
else if (osd_mode == 8) mode_str = "posi"; //Position
else if (osd_mode == 9) mode_str = "land"; //Land
else if (osd_mode == 10) mode_str = "oflo"; //OF_Loiter
else if (osd_mode == 11) mode_str = "drif"; //OF_Loiter
else if (osd_mode == 13) mode_str = "sprt"; //OF_Loiter

In TauLabs there are some that fit, but a lot we have to add in this Project:
AltitudeHold = 2
PositionHold = 8 ? I think PH is the most used name for that
ReturnToHome = 6 ? I think RTH is the most used name for that

Whats the correct way for me to do / to get the needed numbers that I can 



Hi Josh,

Try this:

1 - Backup your Arduino IDE libraries folder (just in case something goes wrong).

2 - Copy the libraries I posted to the Arduino IDE libraries folder (it will overwrite some files).

3 - Check if there are some/any libraries in your sketches base folder (usually "My Documents/Arduino/libraries). If there are libraries, remove them.

Hope this helps,


Merde. Inclompied

Whats the correct way for me to do / to get the needed numbers that I can.... 

.... that I can finish my change in Taulabs.

Hi Pavel,

It depends greatly on batteries performance.

An old / poor quality / low C rate, battery will lower voltage whenever there is current peak.

IMHO a good practice (my own :) ) is to use first a lipo alarm to learn how battery behaves.

I would start to set the alarm to 3.6V per cell. If you have a power module, after flight check how many mAh have been drawn from the battery. If you have more than, say 10% remaining battery capacity then lower the alarm setting by 0.1V so next fly it will trigger whenever a cell achieves 3.5V. Continue if needed (I believe not).

If you achieve a good point at say 3.5V per cell, then just set the osd alarm to the total voltage alarm of 3 x 3.5 = 10.5V (for a 3S lipo).

You always should keep in mind that a fast change in throttle may trigger the alarm.


Hi Miguel,

I looked to the settings and it looks like I have there 10,1V alarm with 10% remain warn. level. Even when batteries are fully charged and during take off, I get voltage alarm triggered. That is interesting. Even the alarm is triggered and there is low voltage. Not sure if it is precise voltage measurement though. I use some cheapest PCB I found on eBay. It probably could measure fine if there is not load. I calibrated it with Voltmeter and Ampermeter. But the measurement is different if in load I think. So even the warning is triggered, then I can fly around 15 minutes or to fly about 10 Km up to 13 Km distance. Looks like I will need to do something with voltage measurement under load or to replace power and voltage measurement PCB with something more precise. Regards, Pavel

Hi Carsten,

I don't like to reply to messages with bad words... either way let me try to help you:

"In TauLabs there is MavLink support, but without Flight Mode."

So if Taulabs doesn't send Flight Mode in mavlink, how could minimOSD know which flight mode is the current one? Are you saying that it is not implemented yet in Taulabs and you will have to code it first? 

Flight mode is grabbed from Mavlink heartbeat message (is the costum_mode field https://pixhawk.ethz.ch/mavlink/).

A good starting point to see which data is sent through this variable is to print it directly in the osd:

You could comment all that if else block and replace it by:

mode_str = osd_mode;

This should print the number received in mavlink message.

Then you could set the if else block with the values you want.


Reply to Discussion


© 2020   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service