Rushduino OSD - Multiwii based open software osd

This forum is dedicated to software development related to MultiWii.
It is not the right place to submit a setup problem.
Software download
kataventos
Posts: 702
Joined: Sun Aug 28, 2011 8:14 pm
Contact:

Re: Rushduino OSD - Multiwii based open software osd

Post by kataventos »

This is correct now, I just was not able to see CAMSTAB mencioned on screen.

Code: Select all

// For Mode Active
#define STABLEMODE     1
#define BAROMODE       4
#define MAGMODE        8
//#define BOXCAMSTAB     2
//#define BOXCAMTRIG    32
#define ARMEDMODE     32
#define GPSHOMEMODE   64
#define GPSHOLDMODE   128

modelci
Posts: 35
Joined: Tue Oct 09, 2012 11:20 am

Re: Rushduino OSD - Multiwii based open software osd

Post by modelci »

In Config.h:

// For Mode Active
#define STABLEMODE 2 //0b00000010 (Try 1 instead of 2)
#define BAROMODE 4 //0b00000100
#define MAGMODE 8 //0b00001000
#define BOXCAMSTAB 16 //0b00010000
#define BOXCAMTRIG 32 //0b00100000
#define ARMEDMODE 64 //0b01000000 (If you do not camtrig try 32)
#define GPSHOMEMODE 128 //0b10000000
#define GPSHOLDMODE 256 //0b00000001 00000000

Instead of not on the list move behind.

I wrote the algorithm for determining them. But, does not fit on Rushduino. Perhaps fits Minimosd.

We must be prepared several different character sets that can be used the same software.

// Display option
#define WITHDECORATION
#define SHOWHEADING
#define SHOWGPSSPEED
#define SHOWTHROTTLE
#define SHOWBATLEVELEVOLUTION

If the decoration is turned off may be accelerated horizon.

I do not see anything wrong with the altitude representation. Now(r1240), it always starts from zero. I do not know, what can I do?

kataventos
Posts: 702
Joined: Sun Aug 28, 2011 8:14 pm
Contact:

Re: Rushduino OSD - Multiwii based open software osd

Post by kataventos »

This is what I call a smooth horizon line, on V7 I had almost no info but it was smooth!

http://www.youtube.com/watch?v=8b3XXbMeRtQ

kataventos
Posts: 702
Joined: Sun Aug 28, 2011 8:14 pm
Contact:

Re: Rushduino OSD - Multiwii based open software osd

Post by kataventos »

modelci wrote:
If the decoration is turned off may be accelerated horizon.

I do not see anything wrong with the altitude representation. Now(r1240), it always starts from zero. I do not know, what can I do?


I will turn off the decoration and see... EDIT: is the same with it off

About the altitude, on r1240 it starts from zero when the altitude is positive or =to 0 not armed, but if in a brief momment you have -0.002 (on GUI) it go´s crazy and presents 23592m or something close to that! After I arm motors it goes to zero and work ok. The meters per second always do as I explained before... I´m thinking on turnning it off if you cannot fix it :ugeek:
Last edited by kataventos on Thu Nov 15, 2012 3:17 pm, edited 1 time in total.

modelci
Posts: 35
Joined: Tue Oct 09, 2012 11:20 am

Re: Rushduino OSD - Multiwii based open software osd

Post by modelci »

I'll try the fix today.


modelci
Posts: 35
Joined: Tue Oct 09, 2012 11:20 am

Re: Rushduino OSD - Multiwii based open software osd

Post by modelci »

kataventos wrote:This is what I call a smooth horizon line, on V7 I had almost no info but it was smooth!

http://www.youtube.com/watch?v=8b3XXbMeRtQ


But, this screen is very empty.

kataventos
Posts: 702
Joined: Sun Aug 28, 2011 8:14 pm
Contact:

Re: Rushduino OSD - Multiwii based open software osd

Post by kataventos »

modelci wrote:
kataventos wrote:This is what I call a smooth horizon line, on V7 I had almost no info but it was smooth!

http://www.youtube.com/watch?v=8b3XXbMeRtQ


But, this screen is very empty.


Yes :mrgreen:

kataventos
Posts: 702
Joined: Sun Aug 28, 2011 8:14 pm
Contact:

Re: Rushduino OSD - Multiwii based open software osd

Post by kataventos »

The Alfa1 is almost there.

1-the climbsensivity is not correct but finaly working right
2-now the Altitude is not working at all, when I move the quad 3m height, I can see it trying to present another number but it stays jumping on 0

3-this is the correct mode active:

Code: Select all

// For Mode Active
#define STABLEMODE     1    // OK
#define BAROMODE       4    // OK
#define MAGMODE        8    // OK
#define BOXCAMSTAB     16     //Don´t no because I do not have info on OSD
#define BOXCAMTRIG     256    //Don´t no because I don´tuse
#define ARMEDMODE      32   // OK
#define GPSHOMEMODE    64   // OK
#define GPSHOLDMODE    128  // OK

User avatar
shikra
Posts: 783
Joined: Wed Mar 30, 2011 7:58 pm

Re: Rushduino OSD - Multiwii based open software osd

Post by shikra »

@modelci

I see you have added minim hardware support. Do you know if its working for anyone.
I was just about to start writing a simple OSD for myself. Might as well use yours/JG code!!

I tried to upload, but get blank screen - does this config require cam input? or to be connected to multiwwi to display anything. I was hoping to see a startup screen. Tried adding internal sync enable, but not seeing anything still. I know I should look deeper in the code, but you can probably answer quicker!
it displays ardupilot OK..


Thanks for the development!

kataventos
Posts: 702
Joined: Sun Aug 28, 2011 8:14 pm
Contact:

Re: Rushduino OSD - Multiwii based open software osd

Post by kataventos »

Altitude: It seems that it is not holding altitude, it is jumping between 0 and correct reading, but now it gives 5m and -3m armed and disarmed... and the reading is very close to real. I´m testing it inside my house, bad wheather :mrgreen:

modelci
Posts: 35
Joined: Tue Oct 09, 2012 11:20 am

Re: Rushduino OSD - Multiwii based open software osd

Post by modelci »

kataventos wrote:Altitude: It seems that it is not holding altitude, it is jumping between 0 and correct reading.


I think corrected this error and vario.

http://osd-max7456-multiwii.googlecode.com/files/osd_max7456_multiwii_V1_2_alfa2.zip
Last edited by modelci on Thu Nov 15, 2012 6:51 pm, edited 1 time in total.

modelci
Posts: 35
Joined: Tue Oct 09, 2012 11:20 am

Re: Rushduino OSD - Multiwii based open software osd

Post by modelci »

shikra wrote:@modelci

I see you have added minim hardware support. Do you know if its working for anyone.
I was just about to start writing a simple OSD for myself. Might as well use yours/JG code!!

I tried to upload, but get blank screen - does this config require cam input? or to be connected to multiwwi to display anything. I was hoping to see a startup screen. Tried adding internal sync enable, but not seeing anything still. I know I should look deeper in the code, but you can probably answer quicker!
it displays ardupilot OK..


Thanks for the development!


No, still does not for minimosd. Maybe work with some limitations. I could not test yet.
Code is open and creative common. Of course, as you can use, change, re-publish it. (Only non commercial.)
Camera input not required. It does not have to multiwii connection for first screen. It do not need to sync. Might need to install the character set.
This code does not work with ardupilot.

I hope that helps.

trailblazer
Posts: 12
Joined: Wed Nov 14, 2012 11:31 pm

Re: Rushduino OSD - Multiwii based open software osd

Post by trailblazer »

I figured out the problem with the "not so smooth" horizon display:

The problem is the low update rate of the attitude values due to the large amount of serial requests! I have added requests for that values in the case/switch code for every second request.
A quick test of that is very promising, I get a much higher framerate for the horizon bar. I hope that this tweak does not affect the other calculations or displays.

Like that:

Code: Select all

nextMSPrequest++;
      switch (nextMSPrequest) {
      case 1:
        MSPcmdsend=MSP_IDENT;
        break;
     
      case 2:
        MSPcmdsend=MSP_ATTITUDE;
        break;

      case 3:
        MSPcmdsend=MSP_STATUS;
        break;

      case 4:
        MSPcmdsend=MSP_ATTITUDE;
        break;
       
      case 5:
        MSPcmdsend=MSP_RAW_IMU;
        break;

      case 6:
        MSPcmdsend=MSP_ATTITUDE;
        break;
       
      case 7:
        MSPcmdsend=MSP_RAW_GPS;
        break;

      case 8:
        MSPcmdsend=MSP_ATTITUDE;
        break;
       
      case 9:
        MSPcmdsend=MSP_COMP_GPS;
        break;

      case 10:
        MSPcmdsend=MSP_ATTITUDE;
        break;

      case 11:
        MSPcmdsend=MSP_ALTITUDE;
        break;
       
      case 12:
        MSPcmdsend=MSP_ATTITUDE;
        break;
       
      case 13:
        MSPcmdsend=MSP_RC_TUNING;
        break;

      case 14:
        MSPcmdsend=MSP_ATTITUDE;
        break;
       
      case 15:
        MSPcmdsend=MSP_PID;
        break;
       
      case 16:
        MSPcmdsend=MSP_ATTITUDE;
        break;
   
   
       
      case 201:
        MSPcmdsend=MSP_STATUS;
        break;

      case 202:
        MSPcmdsend=MSP_RAW_IMU;
        break;

      case 203:
        MSPcmdsend=MSP_ATTITUDE;
        break;

      default:
        MSPcmdsend=MSP_RC;
        if(askPID==0)
        {
          nextMSPrequest = 0;
        }
        else
        {
          nextMSPrequest = 200;
        }
        break;
      }   

      blankserialRequest(MSPcmdsend);

kataventos
Posts: 702
Joined: Sun Aug 28, 2011 8:14 pm
Contact:

Re: Rushduino OSD - Multiwii based open software osd

Post by kataventos »

@Modelci

The Alfa 2 it´s worse, I can see that you only /100 but this calculation is messing with other things... this first form is more accurate on climbing rate but in cm

Code: Select all

if (cmdMSP==MSP_ALTITUDE)  
  {
    MwAltitude =read32();
    MwVario = read16();

but altitude is pulsing between 0 and correct reading (in a fraction of a second it shows correct reading and returns to 0 two times per second)

this last one

Code: Select all

if (cmdMSP==MSP_ALTITUDE)  
  {
    MwAltitude =read32()/100;
    MwVario = read16()/100;

is almost like before your first Alfa change, it shows crazy numbers on altitude and no descending read for climbing rate!?

I saw also that you changed

Code: Select all

// For Altitude
//int holdRelativeAltitude=0;
char altitudeOk=0;
//int altitudeMax;
//int absoluteAltitudeAtStart = 0;
int altitude = 0;
//int32_t oldMwAltitude=0;
float climbRate = 0;


but like I said, I´m no coder, I try to understand the impact of this changes and to read them.

I think it´s better to wait for your no bug dev in your time, I thank you for all your work once more.

Cheers

kataventos
Posts: 702
Joined: Sun Aug 28, 2011 8:14 pm
Contact:

Re: Rushduino OSD - Multiwii based open software osd

Post by kataventos »

trailblazer wrote:I figured out the problem with the "not so smooth" horizon display:

The problem is the low update rate of the attitude values due to the large amount of serial requests! I have added requests for that values in the case/switch code for every second request.
A quick test of that is very promising, I get a much higher framerate for the horizon bar. I hope that this tweak does not affect the other calculations or displays.

Like that:

Code: Select all

nextMSPrequest++;
      switch (nextMSPrequest) {
      case 1:
        MSPcmdsend=MSP_IDENT;
        break;
     
      case 2:
        MSPcmdsend=MSP_ATTITUDE;
        break;

      case 3:
        MSPcmdsend=MSP_STATUS;
        break;

      case 4:
        MSPcmdsend=MSP_ATTITUDE;
        break;
       
      case 5:
        MSPcmdsend=MSP_RAW_IMU;
        break;

      case 6:
        MSPcmdsend=MSP_ATTITUDE;
        break;
       
      case 7:
        MSPcmdsend=MSP_RAW_GPS;
        break;

      case 8:
        MSPcmdsend=MSP_ATTITUDE;
        break;
       
      case 9:
        MSPcmdsend=MSP_COMP_GPS;
        break;

      case 10:
        MSPcmdsend=MSP_ATTITUDE;
        break;

      case 11:
        MSPcmdsend=MSP_ALTITUDE;
        break;
       
      case 12:
        MSPcmdsend=MSP_ATTITUDE;
        break;
       
      case 13:
        MSPcmdsend=MSP_RC_TUNING;
        break;

      case 14:
        MSPcmdsend=MSP_ATTITUDE;
        break;
       
      case 15:
        MSPcmdsend=MSP_PID;
        break;
       
      case 16:
        MSPcmdsend=MSP_ATTITUDE;
        break;
   
   
       
      case 201:
        MSPcmdsend=MSP_STATUS;
        break;

      case 202:
        MSPcmdsend=MSP_RAW_IMU;
        break;

      case 203:
        MSPcmdsend=MSP_ATTITUDE;
        break;

      default:
        MSPcmdsend=MSP_RC;
        if(askPID==0)
        {
          nextMSPrequest = 0;
        }
        else
        {
          nextMSPrequest = 200;
        }
        break;
      }   

      blankserialRequest(MSPcmdsend);


@TrailBlazer

Awesome :mrgreen:Thank you, you´ve just done it! Less one thing for the boss to worry about ;)

EDIT:Boss, please make this change on next release :D

modelci
Posts: 35
Joined: Tue Oct 09, 2012 11:20 am

Re: Rushduino OSD - Multiwii based open software osd

Post by modelci »

This is part of the program to do the job: Just showing everything from mw.

Code: Select all

void displayAltitude(void)
{
  //MwAltitude=MwAltitude/estAltValue;
  //AbsoluteAltitudeAtStart = 0;
  if(!altitudeOk&&(allSec>5)&&armed){
    //absoluteAltitudeAtStart = MwAltitude ;
    altitudeOk=1;
    altitudeMAX=0;
  }
  if(!armed) {
    altitudeOk=0;
    //absoluteAltitudeAtStart=0;
  }
  if(unitSystem) altitude = MwAltitude * 3.28;
  if(!unitSystem) altitude = MwAltitude;
  screenBuffer[0]=MwAltitudeAdd[unitSystem];
  screenBuffer[1]=0;
  MAX7456_WriteString(screenBuffer,MwAltitudePosition[videoSignalType][screenType]);

  if(altitudeOk && (altitude > altitudeMAX)) altitudeMAX = altitude;

  itoa(altitude,screenBuffer,10);
  MAX7456_WriteString(screenBuffer,MwAltitudePosition[videoSignalType][screenType]+1);
}

void displayClimbRate(void)
{
  climbRate=MwVario;
  int xx=0;
  int pos;
  screenBuffer[0]=MwClimbRateAdd[unitSystem];
  screenBuffer[1]=0;
  MAX7456_WriteString(screenBuffer,MwClimbRatePosition[videoSignalType][screenType]);

  if(!unitSystem) xx= climbRate * 3.28;
  if(unitSystem)  xx= climbRate ;
  itoa(xx,screenBuffer,10);
  MAX7456_WriteString(screenBuffer,MwClimbRatePosition[videoSignalType][screenType]+1);

  if (climbRate > 10)   screenBuffer[0]=0xB3;
  else
    if (climbRate > 5)    screenBuffer[0]=0xB2;
    else
      if (climbRate > 2)    screenBuffer[0]=0xB1;
    else       
      if (climbRate > 1)  screenBuffer[0]=0xB0;
    else screenBuffer[0]=0xBC;

  if (climbRate < -10)  screenBuffer[0]=0xB4;
  else       
    if (climbRate < -5)   screenBuffer[0]=0xB5;
  else       
    if (climbRate < -2)   screenBuffer[0]=0xB6;
  else
    if (climbRate < -1) screenBuffer[0]=0xB7;
  screenBuffer[1]=0;
  if (climbRate>= -1) pos = MwClimbRatePosition[videoSignalType][screenType]-2;
  else pos = MwClimbRatePosition[videoSignalType][screenType]-2+LINE;
  MAX7456_WriteString(screenBuffer,pos);
}


Thank you for your efforts.

kataventos
Posts: 702
Joined: Sun Aug 28, 2011 8:14 pm
Contact:

Re: Rushduino OSD - Multiwii based open software osd

Post by kataventos »

@ Trailblazer

It does not seem to affect anything, the mag and home arrow are like they were, and the horizon line is a lot faster/smooth. No bug found at this time in any page/function display/check boxes/PID adjustment/ETC.

@Boss

Is this just part of the code for altitude and climbing rate, or can I try to compile it and test?

modelci
Posts: 35
Joined: Tue Oct 09, 2012 11:20 am

Re: Rushduino OSD - Multiwii based open software osd

Post by modelci »

kataventos wrote:Is this just part of the code for altitude and climbing rate, or can I try to compile it and test?


No, I put for correction If anyone knows. It came to my knowledge the limit. :roll:

trailblazer
Posts: 12
Joined: Wed Nov 14, 2012 11:31 pm

Re: Rushduino OSD - Multiwii based open software osd

Post by trailblazer »

I managed to push the vertical resolution to 18Bits/Line. The virtual horizon is now very precise and as smooth as possible. With two scaling factors the display can be trimmed to the camerasignal (roll should be ok for all configs, pitchvalue may depend on the camerlens), meaning a really good matching "horizonline" :)
The limit for the frame rate is now the screenrefresh (10hz atm) , not the computing - as it seems in the first place.
For the high Y-axis resolution a modified charset is necessary. I can share the files if anyone is interested. Of course, you can add it in the developer version if you like.

kataventos
Posts: 702
Joined: Sun Aug 28, 2011 8:14 pm
Contact:

Re: Rushduino OSD - Multiwii based open software osd

Post by kataventos »

modelci wrote:It came to my knowledge the limit. :roll:


After all the work you have done here, I just don´t believe you, but maybe you to need some rest.
I´ve seen more development in one week that in last six months :mrgreen:

carlonb
Posts: 210
Joined: Sun Apr 03, 2011 6:29 pm

Re: Rushduino OSD - Multiwii based open software osd

Post by carlonb »

trailblazer wrote:.....
.......
For the high Y-axis resolution a modified charset is necessary. I can share the files if anyone is interested. Of course, you can add it in the developer version if you like.

Hi blazer, I'm waiting for minimosd clone for some tests, I hope in a few days will arrive.
I'm very interested in How-to-do for char set mods.
Can you please address me in what i need for char set mod tools? (and some examples) :mrgreen:
Thanks in advance.
Carlo

kataventos
Posts: 702
Joined: Sun Aug 28, 2011 8:14 pm
Contact:

Re: Rushduino OSD - Multiwii based open software osd

Post by kataventos »

trailblazer wrote:I managed to push the vertical resolution to 18Bits/Line. The virtual horizon is now very precise and as smooth as possible. With two scaling factors the display can be trimmed to the camerasignal (roll should be ok for all configs, pitchvalue may depend on the camerlens), meaning a really good matching "horizonline" :)
The limit for the frame rate is now the screenrefresh (10hz atm) , not the computing - as it seems in the first place.
For the high Y-axis resolution a modified charset is necessary. I can share the files if anyone is interested. Of course, you can add it in the developer version if you like.


Thank you for the contribution, it never came to my mind about putting it on config.h for matching the type of lens... For me is good as it is, but you did saw this on a new prespective, good job!

trailblazer
Posts: 12
Joined: Wed Nov 14, 2012 11:31 pm

Re: Rushduino OSD - Multiwii based open software osd

Post by trailblazer »

Thx :oops:

Again, a short Clip of the latest version:

http://www.youtube.com/watch?v=wMdPRiae ... e=youtu.be


vpb
Posts: 231
Joined: Mon Jul 23, 2012 4:09 pm

Re: Rushduino OSD - Multiwii based open software osd

Post by vpb »

can sb show me the "like" button? :D, omg I cant wait to build that, hope that I'll find max7456 & atmega328p at the near local shop.

modelci
Posts: 35
Joined: Tue Oct 09, 2012 11:20 am

Re: Rushduino OSD - Multiwii based open software osd

Post by modelci »

carlonb wrote:
trailblazer wrote:.....
Can you please address me in what i need for char set mod tools? (and some examples) :mrgreen:
Carlo


http://code.google.com/p/minimosd-extra/source/browse/#svn%2Ftrunk%2FTools

kataventos
Posts: 702
Joined: Sun Aug 28, 2011 8:14 pm
Contact:

Re: Rushduino OSD - Multiwii based open software osd

Post by kataventos »

@ Modelci
Can you please take a look a this Altitude code? This is working just great with the FrSky TXRX, delivering accurate altitude, maybe it give´s you some idea... ;)

Code: Select all

// Altitude
   void send_Altitude(void)
   {
      uint16_t Datas_altitude_bp;
      uint16_t Datas_altitude_ap;
      static uint16_t Start_altitude;

      if (!f.ARMED)
      {
         Start_altitude = EstAlt / 100;
      }

      Datas_altitude_bp = (EstAlt / 100) - Start_altitude;
      Datas_altitude_ap = (EstAlt % 100);

      sendDataHead(ID_Altitude_bp);
      write_FrSky16(Datas_altitude_bp);
      sendDataHead(ID_Altitude_ap);
      write_FrSky16(Datas_altitude_ap);
   }


The _ap and _bp it´s before point and after point!? :ugeek:

modelci
Posts: 35
Joined: Tue Oct 09, 2012 11:20 am

Re: Rushduino OSD - Multiwii based open software osd

Post by modelci »

They are not different. Only, try this:

In GlobalVariables.h

int32_t MwAltitude=0; ----> uint32_t MwAltitude=0;
int16_t MwVario=0; ----> uint16_t MwVario=0;

int altitude = 0; ----> uint32_t altitude = 0;

We don't show after the decimal point. Maybe later.

modelci
Posts: 35
Joined: Tue Oct 09, 2012 11:20 am

Re: Rushduino OSD - Multiwii based open software osd

Post by modelci »

We're told to data from the barometer. Highly variable. It becomes negative sometimes.
mw_r1240_2.jpg

I bring the code into the old and publish it. Necessary for me to negative values.
Last edited by modelci on Fri Nov 16, 2012 2:32 pm, edited 1 time in total.

kataventos
Posts: 702
Joined: Sun Aug 28, 2011 8:14 pm
Contact:

Re: Rushduino OSD - Multiwii based open software osd

Post by kataventos »

modelci wrote:They are not different. Only, try this:

In GlobalVariables.h

int32_t MwAltitude=0; ----> uint32_t MwAltitude=0;
int16_t MwVario=0; ----> uint16_t MwVario=0;

int altitude = 0; ----> uint32_t altitude = 0;

We don't show after the decimal point. Maybe later.


It does not compile!

modelci
Posts: 35
Joined: Tue Oct 09, 2012 11:20 am

Re: Rushduino OSD - Multiwii based open software osd

Post by modelci »

alfa4 published.

if you do not want a negative value to altimeter change these in GlobalVariables.h:
int32_t MwAltitude=0;
int16_t relativeAltitude=0;
int16_t absoluteAltitudeAtStart = 0;

uint32_t MwAltitude=0;
uint16_t relativeAltitude=0;
uint16_t absoluteAltitudeAtStart = 0;

kataventos
Posts: 702
Joined: Sun Aug 28, 2011 8:14 pm
Contact:

Re: Rushduino OSD - Multiwii based open software osd

Post by kataventos »

modelci wrote:We're told to data from the barometer. Highly variable. It becomes negative sometimes.
mw_r1240_2.jpg

I bring the code into the old and publish it. Necessary for me to negative values.


:D I can see that you already have your boad wired! No more working in the dark!

I did not understanded you!? Are you saying that at this time you having the same problem with negative altitude? The last changes you made (Alfa1) are almost there, climbing rate is showing positive and negative (only positive before) and altitude is correct to on both but always jumping to zero, if you pay close attention you can see the correct positive and negative number for a fraction of a second. So, maybe is just holding it, and prevent to go to zero all the time

modelci
Posts: 35
Joined: Tue Oct 09, 2012 11:20 am

Re: Rushduino OSD - Multiwii based open software osd

Post by modelci »

I have mw fc cards. I do not have my osd card. Are you not be able to provide a screenshot.

kataventos
Posts: 702
Joined: Sun Aug 28, 2011 8:14 pm
Contact:

Re: Rushduino OSD - Multiwii based open software osd

Post by kataventos »

modelci wrote:I have mw fc cards. I do not have my osd card. Are you not be able to provide a screenshot.

Yes Boss :) , it is dificult at this time but I will make a short video with multiple screens, explainning what is happening. Give me an hour or two to put the gear toghether.

1- Alfa4 does not have the corrected mode active (I posted it before) and Trailblazer new faster horizon line, believe me it is working just great with no negative impact.
2- Alfa4 is almost like before alfas, the closest you could get to "working nice" was on alfa1.

PS: I do want negative altitude, the problem is that when the altitude is negative and it just need to be(-0.01) the OSD displays this number 23590... this we do not want!

kataventos
Posts: 702
Joined: Sun Aug 28, 2011 8:14 pm
Contact:

Re: Rushduino OSD - Multiwii based open software osd

Post by kataventos »

OK Boss, here is the video about Alfa1 and with TBHorizon code, any questions just ask:

http://youtu.be/4h9eThnhXdI

kataventos
Posts: 702
Joined: Sun Aug 28, 2011 8:14 pm
Contact:

Re: Rushduino OSD - Multiwii based open software osd

Post by kataventos »

This one is with Alfa4:

http://youtu.be/Ncso-ppkOVA

alexia
Posts: 85
Joined: Sun Jun 17, 2012 10:23 pm
Contact:

Re: Rushduino OSD - Multiwii based open software osd

Post by alexia »

does it a complet osd or it s a beta software?
where we can buy it

kataventos
Posts: 702
Joined: Sun Aug 28, 2011 8:14 pm
Contact:

Re: Rushduino OSD - Multiwii based open software osd

Post by kataventos »

alexia wrote:does it a complet osd or it s a beta software?
where we can buy it


I think it is better to vertical read 49 pages, it will answer your questions with precision :mrgreen:

modelci
Posts: 35
Joined: Tue Oct 09, 2012 11:20 am

Re: Rushduino OSD - Multiwii based open software osd

Post by modelci »

Ah, finally I can see. My bad english! I take care of it. I do not know, to be fix on not to be fix. :oops:

kataventos
Posts: 702
Joined: Sun Aug 28, 2011 8:14 pm
Contact:

Re: Rushduino OSD - Multiwii based open software osd

Post by kataventos »

modelci wrote:Ah, finally I can see. My bad english! I take care of it. I do not know, to be fix on not to be fix. :oops:


Thank you for looking at it, it is almost done, everything else is working great...
For me alfa1 is more close to what we want, you can see it climbing up and descending with some values that can be arranged, the only problem is that it is not holding altitude and jump to zero.

Don´t forget to use TrailBlazer lines for the Horizon line and GPS info, they are much more faster and smooth, and mode active I posted before, they are correct.
Last edited by kataventos on Fri Nov 16, 2012 8:16 pm, edited 1 time in total.

Benzel
Posts: 13
Joined: Thu Jun 28, 2012 7:07 pm

Re: Rushduino OSD - Multiwii based open software osd

Post by Benzel »

This is great news, thanks for developing the rushduino/minimosd software!! It's been quiet way to long!!!
I love this little osd, it's light/cheap and uses the existing hardware :D!

kataventos
Posts: 702
Joined: Sun Aug 28, 2011 8:14 pm
Contact:

Re: Rushduino OSD - Multiwii based open software osd

Post by kataventos »

Ok Boss, after some studding, trial and error I found the solution :mrgreen:
I started by comment the estAltvalue 100 on config.h after seeing that if I on screen.ino do not /100 and only use (MwAltitude=MwAltitude); the value shown on cm was holding positive and negative.

After some hours, here is the solution for accurate reading:
On Screen.ino

Code: Select all

void displayAltitude(void)
{
  MwAltitude=MwAltitude;
  //absoluteAltitudeAtStart = 0;
  if(!altitudeOk&&(allSec>5)&&armed){
    //absoluteAltitudeAtStart = MwAltitude ;
    altitudeOk=MwAltitude;
    altitudeMAX=MwAltitude;
  }
  if(!armed) {
    altitudeOk=0;
    //absoluteAltitudeAtStart=0;
  }
  if(unitSystem) altitude = MwAltitude /100;
  if(!unitSystem) altitude = MwAltitude /100;
  screenBuffer[0]=MwAltitudeAdd[unitSystem];
  screenBuffer[1]=0;
  MAX7456_WriteString(screenBuffer,MwAltitudePosition[videoSignalType][screenType]);

  if (altitudeOk) altitudeMAX = 0;

  itoa(altitude,screenBuffer,10);
  MAX7456_WriteString(screenBuffer,MwAltitudePosition[videoSignalType][screenType]+1);
}


On GlobalVariables.h

Code: Select all

// For Altitude
int holdRelativeAltitude=0;
char altitudeOk=0;
//int altitudeMax;
int absoluteAltitudeAtStart = 0;
int altitude =1;
int32_t oldMwAltitude=0;
float climbRate = 0;


On Config.h

Code: Select all

// EstAlt (  in multiwii code ) unit value is equal( how much EstAlt have to be to equal 1 meter )
//#define estAltValue  100

Done

Now I will try to do the same on Climbing Rate for accurate reading.
Last edited by kataventos on Sat Nov 17, 2012 6:02 am, edited 1 time in total.

kataventos
Posts: 702
Joined: Sun Aug 28, 2011 8:14 pm
Contact:

Re: Rushduino OSD - Multiwii based open software osd

Post by kataventos »

Climbing Rate done, it is accurate now ;)

On Screen.ino

Code: Select all

void displayClimbRate(void)
{
  climbRate=MwVario;
  int xx=0;
  int pos;
  screenBuffer[0]=MwClimbRateAdd[unitSystem];
  screenBuffer[1]=0;
  MAX7456_WriteString(screenBuffer,MwClimbRatePosition[videoSignalType][screenType]);

  if(!unitSystem) xx= climbRate / 60;   //* 3.28
  if(unitSystem)  xx= climbRate / 60;
  itoa(xx,screenBuffer,10);
  MAX7456_WriteString(screenBuffer,MwClimbRatePosition[videoSignalType][screenType]+1);

  if (climbRate > 10)   screenBuffer[0]=0xB3;
  else
    if (climbRate > 5)    screenBuffer[0]=0xB2;
    else
      if (climbRate > 2)    screenBuffer[0]=0xB1;
    else       
      if (climbRate > 1)  screenBuffer[0]=0xB0;
    else screenBuffer[0]=0xBC;

  if (climbRate < -10)  screenBuffer[0]=0xB4;
  else       
    if (climbRate < -5)   screenBuffer[0]=0xB5;
  else       
    if (climbRate < -2)   screenBuffer[0]=0xB6;
  else
    if (climbRate < -1) screenBuffer[0]=0xB7;
  screenBuffer[1]=0;
  if (climbRate>= -1) pos = MwClimbRatePosition[videoSignalType][screenType]-2;
  else pos = MwClimbRatePosition[videoSignalType][screenType]-2+LINE;
  MAX7456_WriteString(screenBuffer,pos);
}


Can someone more test this and report?

Thanks

kataventos
Posts: 702
Joined: Sun Aug 28, 2011 8:14 pm
Contact:

Re: Rushduino OSD - Multiwii based open software osd

Post by kataventos »

The proof test for the above code changes :mrgreen:

http://youtu.be/fNoLS4Qfih8

kataventos
Posts: 702
Joined: Sun Aug 28, 2011 8:14 pm
Contact:

Re: Rushduino OSD - Multiwii based open software osd

Post by kataventos »

Now... for the consumed Amps info from Multiwii FC!? any Ideas?

EDIT: I need this working but no idea where to start :geek:

vpb
Posts: 231
Joined: Mon Jul 23, 2012 4:09 pm

Re: Rushduino OSD - Multiwii based open software osd

Post by vpb »

take a look at POWERMETER, but I think we must use POWERMETER_HARD for the precision reading.

trailblazer
Posts: 12
Joined: Wed Nov 14, 2012 11:31 pm

Re: Rushduino OSD - Multiwii based open software osd

Post by trailblazer »

I´m using an Allegro ACS755 currentsensor for measuring the current draw.
Because of the sensor offset, I added just 2 lines of code. The offset is about 0.6V and the sensor has a slope of 60mV/A.
It is directly connected to the "Cur" Pin on the Rushduino board (only a LPF is added 330Ohm/10µF). I haven´t checked the consumption over time, but the values in the OSD have been tested against a multimeter for correct readings.

Code: Select all

 const int amperageOffset=123; //ACS755 Offset
..
..
 rawamperage = analogRead(amperagePin)-amperageOffset;
  if(rawamperage<0) rawamperage=0;
  amperage = (float(rawamperage))/1.23;

carlonb
Posts: 210
Joined: Sun Apr 03, 2011 6:29 pm

Re: Rushduino OSD - Multiwii based open software osd

Post by carlonb »

Hi all,
I want experimenting with "MAX7456Charwizard" but after download it and unzipped, if I double click on "swing-layout-1.0.3.jar" or "AbsoluteLayout.jar" I receive this error message "Failed to load Main-class manifest attribute from C:\.....\...\AbsoluteLayout.jar".
May be I need to download something about Java .... ? NOTE: My O.S. is Windows XP SP2.
Please help me.
Thanks, Carlo

kataventos
Posts: 702
Joined: Sun Aug 28, 2011 8:14 pm
Contact:

Re: Rushduino OSD - Multiwii based open software osd

Post by kataventos »

carlonb wrote:Hi all,
I want experimenting with "MAX7456Charwizard" but after download it and unzipped, if I double click on "swing-layout-1.0.3.jar" or "AbsoluteLayout.jar" I receive this error message "Failed to load Main-class manifest attribute from C:\.....\...\AbsoluteLayout.jar".
May be I need to download something about Java .... ? NOTE: My O.S. is Windows XP SP2.
Please help me.
Thanks, Carlo


Hi Carlo,

to try this you need to download "alfa1" make the changes to "mode acive" I posted before and the last changes I posted and compile for MinimOSD, our boss did not compile this last work yet :geek:
About your problem... I don´t use minimosd so, in dark with that, I think you have to install new characters chart, like on Rushduino!? But it seems that you´ve done this already or not? Try install fresh Java...
Last edited by kataventos on Sat Nov 17, 2012 5:51 pm, edited 1 time in total.

Post Reply