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 came, and things started to happen fast. :D

He optimised the code and added even more things to it.

He worked hard on CT, and it became a great tool!

Thank you Pedro! :)

Also Burt & Eddie came.

They also worked on it and added many smart things to our firmware.

Thank you!

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

- Current Draw

- Time From Startup (Will be cleared at takeoff to show exact flight time in the next release)

- OSD Menu

- Variometer

- Wind horizontal speed and direction, and also vertical wind speed (Vertical wind speed will be in next release)

- OSD on/off

- Switchable secound screen

- WP distance

- WP heading

- Warning messages for Lost GPS fix, Stall, Overspeed, battery volt, battery Percent, RSSI

- Efficiency, glide distance & thermic notifier. 3 in one panel (Will be in next release)

- OSD Brightness (Will be in next release)

- HAM Call Sign (Will be in next release)

- After flight summary  (Will be in next release)

- Trip distance (Will be in next release)

- Temperature (Will be in next release)

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.)

About the menu:

I made a menu inside OSD. You can enter this menu only after boot, the same way as screen switching works.

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.1

We are sharing it to see videos you make using it! :)

Enjoy

Views: 51251

Reply to This

Replies to This Discussion

Hi Grips,

Takes a little time, but on the way.

I will not have much time in the next few days, but i think Pedro is right on top of it. :)

Gábor

Hey guys, have a few great flights under my belt with the stock firmware.

Any chance you could update the top (original) post with a link with the latest config and hex?

It would help!  Thank you!

Hello John,

The last hex is here. It has been fligth tested by Andke with good results.

Pedro

Gábor

I have added Rssi to the projet from the code in the pre release folder.

I also found a way to slow down the input in the setup menu to about one unit pre to second.

My problem is I can't find out how to commit the changes to the area.

So next best think is show some of the code here.

in the write panels area this is the code to date.

switch(delay_setup){
case(0):
delay_setup++;
break;
case(1):
delay_setup++;
break;
case(2):
delay_setup++;
break;
case(3):
delay_setup = 0;
if(ISd(Setup_BIT)) panSetup(panSetup_XY[0], panSetup_XY[1]);
break;
}

CHANGE TO THIS  

        delay_setup++;

        if ( delay_setup > 6 ){

          delay_setup = 0;

          if(ISd(Setup_BIT)) panSetup(panSetup_XY[0], panSetup_XY[1]);

        }

IN THE SETUP PANEL THIS IS THE CODE 

case 1:
{
osd.printf_P(PSTR(" Overspeed "));
osd.printf("%3.0i%c", overspeed, spe);
uint8_t overspeed_old = overspeed;
overspeed = overspeed + (chan1_raw - chan1_raw_middle) / 100;
if(overspeed != overspeed_old) EEPROM.write(202, overspeed);
break;
}

CHANGE TO THIS BELOW.

        case 1:

        {

            stick_time = millis() / 1000; 

            osd.printf_P(PSTR("    Overspeed    "));

            osd.printf("%3.0i%c", overspeed, spe);

            uint8_t overspeed_old = overspeed;

            if ((chan1_raw - 100) > chan1_raw_middle ){

              overspeed = overspeed - 1;}

            if ((chan1_raw + 100) < chan1_raw_middle ){

              overspeed = overspeed + 1;}

            if(overspeed != overspeed_old) EEPROM.write(202, overspeed);

            break;

        }

I was able to make over speed, stall, & my RSSI menus work good, but ran out of space for the voltage.

Will be posting a video in a few minutes, before I call it a night.

Please if you can, How to I commit the changes?

Later

Burt Green

Hi Burt,

Are you trying to slow down the speed at which the numbers change? Rather than use up all that memory with the switch(delay_setup) function, just use a delay(<milliseconds>) call at the end before the osd.closePanel()

eg;

delay(100);

osd.closePanel();

Hello Eddie,

A delay call inside the mavlink timer is not good, because it slow down the update of the screen. Andke has already reported a crash because I use a delay (on one of my first attempts to slow down the process). 

Burt,

the code you saw with the switch was in the pre-release. When I commit the code I will be changing the code to exactly what you proposed.

Pedro

A delay call just won't work, the serial input stops working.

However I just did a form of the case, just gave it a few more times out of the loop, started with 10 and was too long. I'm still wating for the video to process so you csn see the results.

http://www.youtube.com/watch?v=fxIkKmJIhj8&feature=youtu.be

It seems like the code could be made to be a subroutine, so all 4 cases could use it and save memory, but wanted to test it first.

The Rssi is working good, so when it is released in the apm firmware everyone can enjoy it.

If a few brave souls want it I can supply the HEX file for both the apm2 and apm1.

Later

Burt

 

Burt,

The switch was only a test method. The implementation with the "if" is already in the stable release and is working good.

Pedro

Sorry guys, I never realised that framerate was the cause of the original 'not incrementing by one' problem. I can see why delay() is no good, I'm glad I learned that in the forum. :)
Burt, you have a stick_time variable in your code. Could we use that to check how long since the last increment, instead of the delay_setup method. Maybe the delay could vary depending on the stick position, so the numbers increment faster towards the ends.

With all the information people wish (I see requests for WP and RSSI), we must admit that the MAX7456 is not good enough in the long run - the more you display, the more cluttered the screen gets - and - we are completely missing analog indicators, and the increased readability they provide.

For really cool graphics, and audio warnings - take a look at this project;

http://forums.openpilot.org/topic/6736-openpilot-osd-prototyping/

Fortunately it's open source too - it would be sweet to make that read mavlink...

Andke,

the openpilot osd is super great!

In the mean time, to resolve cluttered data, selectable panels will be added. So, the user can switch between different panel layouts for the different fligth phases. At least it will be possible to select 3 different panels. 

Pedro

Guys,

I combined Burt's and my changes to the setup panel last night and also rewrote the warnings panel this afternoon. I've put the changes in the pre-release files. Can someone check them out and have a play to make sure they are user friendly.

Thanks :)

RSS

Social Networking

Contests

Season Two of the Trust Time Trial (T3) Contest has now begun. The fourth round is an accuracy round for multicopters, which requires contestants to fly a cube. The deadline is April 14th.

A list of all T3 contests is here

Groups

Advertisement

© 2013   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service