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:

Added:

- 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

- RSSI

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

Enjoy

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Replies

    • Hi,

      There is no space now.

      I would use a nano, or a mini for this.

      You can use minimosd code to read it from APM, leaving out all the displaying part, so you have space, for the code, you need to transmit the data you would like on its tx port in any ways.

      It is no problem to connect another arduino board to APMs TX port paralell with MinimOSD.

      (Not ture for APM RX!)

      Or! I think it is better to make Openlrs to read it directly from apm!

      You can have a 2 way telemetry i think.

      What you mentioned is one way only.

      Gábor

  • I'd like to be able to see the numeric GPS HDOP value.  The blinking satellite-dish symbol is good, but an HDOP value of 2.10 looks the same as say >5.00.  I can patch the code to show the value by changing a line in OSD_Panels.ino 'panGPSats()' from:

        osd.printf("%c%2i", gps_str, osd_satellites_visible);
      to
        osd.printf("%c%2i|%.2f", gps_str, osd_satellites_visible, (float(eph)/100));
    But it would be better if this were a configurable option or a new OSD item.  Any chance this could happen?

    --ET

    • Hi,

      We did show it before.

      But decided to not to, as it is a lot of important vision area, and also HDOP is not that important (to know the exact value), really.

      So we only warn you if it is too high, by making gps icon blink.

      So what we have now, is a very compact multifuntion gps panel.

      It does show fix types, like no fix, 2d fix, 3d fix, gps sat number, and high hdop. So it is a 3 in 1 panel.

      What value is wrong for HDOP?

      We drew a line at HDOP  2

      Over that, it is bad. So you know. Only thing you don't know is, how bad it is. But i think that is not that important. Also it differes betvean GPS brands, and types. One moudul would read 1 and other 2 in the same situation, etc...

      Also different modules have different precison.

      On some modules you should be carefool even having a hdop 2! For others it is "ok" still.

      So our GPS panels HDOP function now indicates if location data is not as precise as is supposed to be.

      This is the theory behind.

      But if you really want to know, you can make APM to log it.

      • 100KM

        That's actually perfect (for me)! Only when HDOP is a problem, I would like to know. I always wondered why GPS is still flashing after 7 satellites ;)

        I think MinimOSD Extra should be named minimOSD Perfect :)

      • Well, what you're saying about HDOP values varying between brands, etc, is a good argument for showing the numeric value on the OSD. :]

        I've been having issues with my GPS where it sometimes gets wonky during a flight.  Seeing the numeric HDOP while flying lets me know how much I can trust the GPS.  I'm running patched code that shows the HDOP value on the line below the GPS symbol and satellite count; seems like this would be a good option (if it's not too hard to implement).

        --ET

        • Well, this is how our panel looked like when we first added HDOP:

          /* **************************************************************** */
          // Panel : panGPSats
          // Needs : X, Y locations
          // Output : 1 symbol and number of locked satellites
          // Size : 1 x 5 (rows x chars)
          // Staus : done
          void panGPSats(int first_col, int first_line){
          osd.setPanel(first_col, first_line);
          osd.openPanel();
          byte gps_str = 0x1f;
          if(osd_fix_type >= 2)
          gps_str = 0x0f;
          osd.printf("%c%2i|%2i", gps_str, osd_satellites_visible, (eph / 100));
          osd.closePanel();

          }

          It is here: Link

          r664

          Right now, it looks like this:

          /* **************************************************************** */
          // Panel : panGPSats
          // Needs : X, Y locations
          // Output : 1 symbol and number of locked satellites
          // Size : 1 x 5 (rows x chars)
          // Staus : done

          void panGPSats(int first_col, int first_line){
          osd.setPanel(first_col, first_line);
          osd.openPanel();

          byte gps_str = 0x2a;
          if (osd_fix_type == 2) gps_str = 0x1f;
          else if (osd_fix_type == 3) gps_str = 0x0f;

          if ((eph >= 200) && blinker)
          gps_str = 0x20;

          osd.printf("%c%2i", gps_str, osd_satellites_visible);
          osd.closePanel();
          }

          If you want to display exact HDOP value, change this line: (Only this line)

          osd.printf("%c%2i", gps_str, osd_satellites_visible);

          To this:

          osd.printf("%c%2i|%2i", gps_str, osd_satellites_visible, (eph / 100));

          (In OSD_Panels.ino, on panGPSats.)

          So it will show HDOP value you have atm, under your original gps sats panel, and its icon will still blink if HDOP is higher than 2. :)

          Gábor

          • I believe you want the HDOP to display with a floating-point "#.##" format, like this:

                osd.printf("%c%2i|%.2f", gps_str, osd_satellites_visible, (float(eph)/100));

            That line works for me.

            --ET

    • 100KM

      That would be fantastic, especially for multi rotors.

  • Thanks for the work on miminosd guys.. flew 2.5+km out to sea in the island of Basco, Batanes in the Philippines, notice the RSSI at 1085% =)  I realized it was reading the flight modes!   Decided to fly anyway =)

    3701664890?profile=original

  • Test of cruiz mode. Great flying mode!

This reply was deleted.

Activity