The DragonOSD+ has many features and options that allows the user to customize the behaviour of the OSD. You probably won't need to fiddle too much with the options if you are just using the OSD in the most basic form, but if you want to get the most out of the OSD and to use the more advanced features, it is imperative for you to understand how to properly configure the OSD and understand something about how the device works.
The very first thing you need to know is how you can begin to configure the DragonOSD+. You have two methods of doing this - either via the on-screen menu or via the serial port. Let us start with the on-screen menu.
On-Screen Menu
As you may know by now, the DragonOSD+ expects a PPM-stream as the input from the receiver. In other words, unless you have a PPM-stream output from your receiver (not a regular servo PWM output) you will not be able to access the on-screen menu and will be limited to confguring the OSD via the serial terminal. This is different from the older DragonOSD which uses normal servo channels (PWM signal). The advantage of the PPM-stream scheme is that you only need one signal cable from the receiver to the DragonOSD+ to replace the three or four required in the older scheme. If you have a receiver that outputs a PPM-stream (such as the DragonLink or Thomas's LRS) then it is just a matter of plugging in the cable from the PPM output on the receiver to the PPM input port on the DragonOSD+. If you have an analog receiver, you will need to read the post about how to modify the receiver to extract the PPM-stream:-
viewtopic.php?f=7&t=37
The PPM-stream carries the control information for multiple channels (usually up to 8, but can be as low as 5 or as high as 12). What you need to understand at this point is that different radios have different conventions for their channel assignments. For example, with J.R. radios - channel-1 is usually the throttle channel, whereas Futaba radios use channel-3 for the same. These conventions usually affect only the first four channels.
The DragonOSD+, when first powered up, does not know what kind of radio - and therefore what kind of channel assignment - is in use. As such it needs to have some way of identifying the radio. If the radio type has not been specified by any other means, the usual startup radio-mode is the "undefined" mode. In this mode, it will attempt to guess the radio type based on the PPM-stream it is receiving. Obviously then, if the receiver is not active at this point, or there is no PPM-stream available, the OSD will be unable to guess the radio type that is being used. In this scenario then, it will fall back to the default assignments which correspond to a J.R. radio (because this is what I use.) Note that many receivers will not output anything unless it is receiving a signal from the radio.
Assuming now that the receiver is active, and there is a PPM-stream going into the DragonOSD+ when it is powered up, it will attempt to analyze the received PPM-frame. It is looking to see which channel might be the throttle channel and for this to work, your throttle channel needs to be at the zero-throttle position or close to it. If it finds such a channel among the first four channels, it will assume that it is the throttle channel and assign the other channels according to the assumed radio type. This isn't perfect, of course, and there can be situations whereby the auto-detection of radio type fails. If it should fail, you will probably not be able to easily configure the radio via the on-screen menu until you manually assign the radio type via the serial terminal.
To summarize what we have discussed so far:-
1. When first powered up, radio type is undefined
2. When radio type is undefined, the OSD will attempt to guess the radio type from the PPM-stream
3. Therefore the PPM-stream needs to be present when the DragonOSD+ is powered up
4. The throttle stick needs to be at the zero position while the other usual sticks at the centered position
Assuming all these conditions are fulfilled, the radio type should be correctly detected. Right now, four conventions are recognized - J.R., Futaba, Multiplex and Sanwa. The detected radio type is not automatically saved until you perform a save to EEPROM from the main menu. Beyond this, you can also manually assign the channels you want to use for each of the control functions (we will get to this later.)
To configure the OSD via the on-screen menu, you will need three channels to be correctly assigned. These are:-
1. aileron channel
2. elevator channel
3. mode-control channel
The aileron and the elevator channels should be automatically detected in the above procedure. The default assignment for the mode-control channel is channel-5. This is the channel that is used to switch the OSD into any one of the four possible modes:-
1. normal flight mode
2. menu mode
3. auto-pilot mode
4. no OSD display mode
Note: It is quite possible that the value of the channel as you start up (before you start configuring the radio) is such that the OSD might go into any one of these modes - including mode 4 where nothing is displayed. You just need to get it configured.
As a rough guide - the servo PWM settings are as follows:-
MENU - above 1.9ms (>90%)
NORMAL - between 1.6ms to 1.9ms (60% to 90%)
AUTOPILOT - between 1.2ms to 1.6ms (20% to 60%)
NODISPLAY - less than 1.2ms (<20%)
Now, to begin configuring the OSD via the on-screen menu, you will need to make the channel-5 output such that it is at a level that triggers the menu mode. An easy way to do this will be to assign a slider or knob device to channel-5. This way you can just move the slider or knob until the menu shows up. Bear in mind that if you have adjusted your end points for the channel, you may need to move them back to the original positions so that your slider or knob can traverse the entire servo range. My preferred setup is to assign a 3-way switch device to the mode-control channel. I usually set it up so that the three positions of the switch corresponds to the autopilot, normal and menu mode respectively (I don't use the no-display mode.) This allows the most convenient access to the modes for my usage.
If you have done the above correctly, you should now be able to activate the menu and once inside, you will be able to use the aileron and elevator sticks to navigate the menu and adjust the settings. However, it is possible that you find the orientation of one or both of the sticks reversed in relation to how it moves the selection on the menu. In this case, you will need to go into the "Custom Settings" screen. Select that on the main menu with the elevator stick and move the aileron stick to the right (or left if reversed) and you will be inside that menu.
You will see two selections called "AIL direction" and "ELE direction" near the bottom of the list. You can go to these selections and reverse the orientation if you so wish. Bear in mind that it can get a bit tricky if you are reversing the aileron direction because the change takes effect instantaneously. Once you have done this, you should be able to normally navigate around the various menu pages and change the settings.
I should mention that the stick controls are proportional in the menu. This means that if you push the aileron stick further right or further left, the rate of change will increase accordingly. This will help if you need to make a big change in the settings. If you have dual-rates active on the sticks, this will limit the range of the sticks electronically and you may not be able to get the full proportional range to achieve the fastest rate of change. So if you find that your settings are changing too slowly even when the sticks are at the limit, you should check if you have DR active and if the end-points for that stick has been reduced. Many other settings can affect the limit of the stick - such as differential ailerons, which would give you more throw in one direction than the other.
In the "Custom Settings" menu, you will find that you can re-assign all the channels in use as well, including the control channel (CTRL channel). Bear in mind that the change here is instantaneous so if you make a change from 5 to 6, for example. It will immediately use channel-6 as the control channel and if channel-6 isn't already configured to activate the menu option, you may be kicked out of the menu into whatever mode channel-6 current corresponds to. Also, if you happen to overshoot the channel and accidentally go to 7, you will be stuck as well.
Fortunately, all these settings are not saved even though they come into effect for the current OSD session (which ends when you power down the board). So you can play with all the settings and when you are satisfied with it, go back to the main menu and select "Save to EEPROM" and move your stick right until you see the word "SAVED" appear on the line. These settings, including the radio mode and various assignments are now saved as default and will be used in all subsequent sessions. I should also mention that once the radio mode has been saved, it will no longer attempt to auto-detect this in the future so that even if the PPM-stream is not present or the receiver is not active when the DragonOSD+ is powered up, it will still used the saved settings.
Channel-5 is the default control channel because with some Futaba receivers, the internal PPM-stream only contains five channels. If, however, you want to use a different channel and are unable, for one reason or another, to use channel-5 - you should configure the mode-control channel via the serial terminal. Likewise, if the radio type detection fails or if you have an unconventional channel assignment, you can also do that via the serial terminal.
Initial Configuration via Serial Terminal
To configure the DragonOSD+ via the serial terminal, you will need to connect the serial port to a PC/laptop with a suitable terminal software (such as HyperTerm or TeraTerm). The connection is made through a UART/serial-to-TTL device such as described in the following link (5th post from the top):-
viewtopic.php?f=7&t=63&p=699#p699
You should also have the serial terminal software open and the correct COM port selected. The serial port should be set up for 38400 baud, 8-bits, No parity, and 1-stop bit (8N1 in short.) When you have this connected correctly, you should see a copyright and version message printed on the screen when the DragonOSD+ is powered up. You should also see a ">" cursor at which you can type various commands. At this point in the initial configuration, there are several commands of particular significance. You can assign the radio type manually by typing:-
SET RADIOMODE FUTABA
if you are using a Futaba radio. Other options are JR, SANWA and MPX. You can also assign the individual channels with the command:-
SET CTRLCHAN 7
if you want the mode-control channel to be channel-7. Other assignable channels are AILCHAN, AIL2CHAN, ELECHAN, THROTTLECHAN. These assignments determine how the OSD will interpret the incoming channels. The actual channel usage is determined on the radio itself.
Another setting that can only be done in via the serial terminal is setting of the callsign. The callsign can be no longer than 10-characters and will be displayed for one-minute at the top of every ten-minute interval if you have enabled the callsign display option. You assign the callsign as follows:-
SET CALLSIGN DRAGONOSD
and your callsign will become "DRAGONOSD". Anything longer than 10-characters will be ignored.
As with the on-screen menu, these settings are put into effect immediately but are not automatically saved. To do that, when you are satisfied with your changes, type:-
SAVE
and you're done. If for some reason you botch up the settings and want to revert to the original default state, just type:-
DEFAULTS
and cycle the power to the OSD. The OSD will come up in a default settings state. You can also accomplish the same effect using the "Boot from defaults" selection in the main menu. To activate this, you will need to go through the arming sequence of moving the aileron stick all the way to the right, then all the way to the left, and then all the way to the right again. After that, you will need to restart the board for the defaults to come into effect.
Daniel
DragonOSD+ configuration
-
- Site Admin
- Posts: 2449
- Joined: Wed 25 Feb 25 2009 8:00 pm
Serial Terminal Command set
Commands accepted at the serial terminal (W.E.F. version 5.8 onwards):-
DUMP
XDUMP
STATUS
SHOWLOGS
RESET
CLS
SAVE
READEEPROM
DEFAULTS
HELP
SET
QUERY
SET
This accepts the following arguments:-
RADIOMODE
CTRLCHAN
AILCHAN
AIL2CHAN
ELECHAN
RUDDCHAN
THROTTLECHAN
FLAPCHAN
PANCHAN
TILTCHAN
GAINCHAN
ELEVONMIX
ALTLADDER
SPDLADDER
DISPV1
DISPCALLSIGN
GLIDESCOPE
VSI
BAROTEMP
DISPTIME
DISPGDIST
VARIO
METRIC
ELEDIR
RUDDIR
COMPASSSTYLE
HORIZONSTYLE
LONLATSTYLE
OSDMODE
GPMODE
LOGPERIOD
VALIDHDOP
MINVALID
DISTCUTOFF
ALTRATIO
GLIDESLOPE
SAFEZONEX
SAFEZONEY
VMULT1
VMULT2
VMULT3
IMULT
MAHMULT
WHMULT
CURROFFSET
RSSIHIGH
RSSILOW
CALLSIGN
APROTGAIN
APROCGAIN
ROTLIMIT
ROCLIMIT
ROTSTEPGAIN
ROCSTEPGAIN
MAXHDGCHG
MAXALTCHG
SLOWLIMIT
HITDIST
STABGAIN
MAHWARNING
V1WARNING
V2WARNING
STALLSPEED
QUERY
This accepts all the arguments for SET, and the following:-
HOME
POSITION
TRUETEMP
VIDEOMODE
TIME
ETIME
STIME
HOMEDIST
ABSDIST
CURRENTWP
ROT
ROC
ROLL
PITCH
ALT
GALT
PALT
GROUNDSPEED
AIRSPEED
HAVEIMU
HAVEBARO
HAVEGPS
HAVECAS
SATS
PPM
V1
V2
V3
CURRENT
MAH
WH
Daniel
DUMP
XDUMP
STATUS
SHOWLOGS
RESET
CLS
SAVE
READEEPROM
DEFAULTS
HELP
SET
QUERY
SET
This accepts the following arguments:-
RADIOMODE
CTRLCHAN
AILCHAN
AIL2CHAN
ELECHAN
RUDDCHAN
THROTTLECHAN
FLAPCHAN
PANCHAN
TILTCHAN
GAINCHAN
ELEVONMIX
ALTLADDER
SPDLADDER
DISPV1
DISPCALLSIGN
GLIDESCOPE
VSI
BAROTEMP
DISPTIME
DISPGDIST
VARIO
METRIC
ELEDIR
RUDDIR
COMPASSSTYLE
HORIZONSTYLE
LONLATSTYLE
OSDMODE
GPMODE
LOGPERIOD
VALIDHDOP
MINVALID
DISTCUTOFF
ALTRATIO
GLIDESLOPE
SAFEZONEX
SAFEZONEY
VMULT1
VMULT2
VMULT3
IMULT
MAHMULT
WHMULT
CURROFFSET
RSSIHIGH
RSSILOW
CALLSIGN
APROTGAIN
APROCGAIN
ROTLIMIT
ROCLIMIT
ROTSTEPGAIN
ROCSTEPGAIN
MAXHDGCHG
MAXALTCHG
SLOWLIMIT
HITDIST
STABGAIN
MAHWARNING
V1WARNING
V2WARNING
STALLSPEED
QUERY
This accepts all the arguments for SET, and the following:-
HOME
POSITION
TRUETEMP
VIDEOMODE
TIME
ETIME
STIME
HOMEDIST
ABSDIST
CURRENTWP
ROT
ROC
ROLL
PITCH
ALT
GALT
PALT
GROUNDSPEED
AIRSPEED
HAVEIMU
HAVEBARO
HAVEGPS
HAVECAS
SATS
PPM
V1
V2
V3
CURRENT
MAH
WH
Daniel
-
- Site Admin
- Posts: 2449
- Joined: Wed 25 Feb 25 2009 8:00 pm
Using the on-board position logging function
Using the on-board position logging function
The DOSD+ has a position logging function. You will need to assign a value to the Logging period option which is in seconds. A value of 5, for example, means that a position will be saved every 5-seconds, if the speed is above about 0.5km/h. There is a total of nearly 6000 logging points so at 5-seconds, a clean log will give you over 8-hours worth of logging. Logging will stop once the plane's ground speed gets below 0.5 km/h and resume as you go over it.
When you cycle the power, the last log will be closed and a new one started. In this way, you can have multiple logs in memory until the memory is all used up, at which point logging will stop. You can either reset the current log (since power was applied) or delete all logs for a clean slate. Before you do that, though, you can list all the logs and download the ones of interest to you in the form of a KML file which GoogleEarth can open.
Issuing the command SHOWLOGS from the serial terminal should list all the available logs, if any. You can then use DUMP to dump the log in question using:-
DUMP 4
where 4 is the log number listed using SHOWLOGS.
The output should be cut and pasted into a separate text file with a KML extension.
Daniel
The DOSD+ has a position logging function. You will need to assign a value to the Logging period option which is in seconds. A value of 5, for example, means that a position will be saved every 5-seconds, if the speed is above about 0.5km/h. There is a total of nearly 6000 logging points so at 5-seconds, a clean log will give you over 8-hours worth of logging. Logging will stop once the plane's ground speed gets below 0.5 km/h and resume as you go over it.
When you cycle the power, the last log will be closed and a new one started. In this way, you can have multiple logs in memory until the memory is all used up, at which point logging will stop. You can either reset the current log (since power was applied) or delete all logs for a clean slate. Before you do that, though, you can list all the logs and download the ones of interest to you in the form of a KML file which GoogleEarth can open.
Issuing the command SHOWLOGS from the serial terminal should list all the available logs, if any. You can then use DUMP to dump the log in question using:-
DUMP 4
where 4 is the log number listed using SHOWLOGS.
The output should be cut and pasted into a separate text file with a KML extension.
Daniel
-
- Site Admin
- Posts: 2449
- Joined: Wed 25 Feb 25 2009 8:00 pm
Setting the on-board failsafe
Setting the on-board failsafe
The procedure for setting the failsafe is as follows:-
1. Trim your plane so that it is flying straight and level with your hands off, ideally in a low wind condition.
2. With the aileron and elevator in neutral, activate the menu.
3. Go down to the last option on the root menu and move the stick firmly to the right. You will hear a confirmation beep if you have audio connected. Otherwise it's silent.
Failsafe is now set. If the PPM stream should become corrupt or disappear for any reason, after being present at boot-up, these failsafe settings will be adopted. If no failsafes have been saved, it will adopt a neutral position (middle) for all the channels except for the throttle channel which defaults to about 3% (so you won't accidentally cut off a finger).
When failsafe is active, the autopilot will be activated if GPS is attached and home is already set. If home is not set, it will just fly normally - the amount of stabilization will depend on whether the gain channel is set and the position of that channel when failsafe is set. So if you have the gain channel set to channel 8, for example, and the knob set to 50% when setting the failsafe, those will be the values used to control the stabilizer when failsafe becomes active.
Note that if you are using an advanced receiver which has its own failsafe built into the PPM stream (such as the DL), the DOSD+ will never know that the receiver has gone into failsafe and will not indicate as such. In that case, you will need to set the failsafe on the radio itself, which takes precedence over the OSD's failsafe. It is still a good idea to set the failsafe though, just in case.
For those of you who do not use the PPM input functions, the OSD will not go into autopilot in the absence of a PPM signal unless you introduce a valid PPM signal at some point during or after booting up. If those are not present, the OSD will assume that the PPM input is not being used and will not activate the failsafe function.
Daniel
The procedure for setting the failsafe is as follows:-
1. Trim your plane so that it is flying straight and level with your hands off, ideally in a low wind condition.
2. With the aileron and elevator in neutral, activate the menu.
3. Go down to the last option on the root menu and move the stick firmly to the right. You will hear a confirmation beep if you have audio connected. Otherwise it's silent.
Failsafe is now set. If the PPM stream should become corrupt or disappear for any reason, after being present at boot-up, these failsafe settings will be adopted. If no failsafes have been saved, it will adopt a neutral position (middle) for all the channels except for the throttle channel which defaults to about 3% (so you won't accidentally cut off a finger).
When failsafe is active, the autopilot will be activated if GPS is attached and home is already set. If home is not set, it will just fly normally - the amount of stabilization will depend on whether the gain channel is set and the position of that channel when failsafe is set. So if you have the gain channel set to channel 8, for example, and the knob set to 50% when setting the failsafe, those will be the values used to control the stabilizer when failsafe becomes active.
Note that if you are using an advanced receiver which has its own failsafe built into the PPM stream (such as the DL), the DOSD+ will never know that the receiver has gone into failsafe and will not indicate as such. In that case, you will need to set the failsafe on the radio itself, which takes precedence over the OSD's failsafe. It is still a good idea to set the failsafe though, just in case.
For those of you who do not use the PPM input functions, the OSD will not go into autopilot in the absence of a PPM signal unless you introduce a valid PPM signal at some point during or after booting up. If those are not present, the OSD will assume that the PPM input is not being used and will not activate the failsafe function.
Daniel
-
- Site Admin
- Posts: 2449
- Joined: Wed 25 Feb 25 2009 8:00 pm
Re: DragonOSD+ configuration
Alternative command set
The following commands are supported:-
$S <varname> - set variable
$Q <varname> - query variable
$E - enumerate settable variables
$C - enumerate non-settable variables
$W - save all settings to EEPROM
$V - return version number
$D - reset all values to defaults (permanent and immediate change)
$X - reset OSD
$M - reset flight logs (will erase everything immediately)
$Z - clears the OSD screen (and redraws where possible)
$JW <wpnum> - save waypoint data to waypoint number wpnum
There are two types of variables - those that can be set and queried, and those that be queried but cannot be changed.
Daniel
The following commands are supported:-
$S <varname> - set variable
$Q <varname> - query variable
$E - enumerate settable variables
$C - enumerate non-settable variables
$W - save all settings to EEPROM
$V - return version number
$D - reset all values to defaults (permanent and immediate change)
$X - reset OSD
$M - reset flight logs (will erase everything immediately)
$Z - clears the OSD screen (and redraws where possible)
$JW <wpnum> - save waypoint data to waypoint number wpnum
There are two types of variables - those that can be set and queried, and those that be queried but cannot be changed.
Daniel
-
- Posts: 4
- Joined: Sun 26 Sep 26 2010 1:10 am
Re: DragonOSD+ configuration
Could you explain parameters passed when enumerating either non settable or settable variables?
$E contains the following for ALTSTYLE
$ALTSTYLE,0,Altitude ladder style,3,0,2
or for DISPGSP
$DISPGSP,OFF,Display glidescope,5
I assume first is varname, actual value, desc??, ??, ??, ??
thanks
$E contains the following for ALTSTYLE
$ALTSTYLE,0,Altitude ladder style,3,0,2
or for DISPGSP
$DISPGSP,OFF,Display glidescope,5
I assume first is varname, actual value, desc??, ??, ??, ??
thanks
-
- Site Admin
- Posts: 2449
- Joined: Wed 25 Feb 25 2009 8:00 pm
Re: DragonOSD+ configuration
The return strings have the format:-
Varname, Varvalue, Vardescription, Vartype, Varmin, Varmax
where:-
Varname - name of variable
Varvalue - actual value
Vardescription - description of the variable
Vartype - there's a list of types here
Varmin - minimum allowed value
Varmax - maximum allowed value
For the non-settable variables:-
Varname, Varvalue, Vardescription, Vartype
The variable type is as follows:-
#define INTEGERV 3
#define FLOATV 4
#define ONOFFV 5
#define REVNORV 6
#define OINTEGERV 7
#define GPSV 10
#define SERVOV 13
#define STRINGV 14
#define RADIOV 15
#define POSITIONV 16
#define TIMEV 17
#define WAYPV 18
#define VIDEOV 19
#define UINTEGERV 20
I'll have to explain these in some detail.
Daniel
Varname, Varvalue, Vardescription, Vartype, Varmin, Varmax
where:-
Varname - name of variable
Varvalue - actual value
Vardescription - description of the variable
Vartype - there's a list of types here
Varmin - minimum allowed value
Varmax - maximum allowed value
For the non-settable variables:-
Varname, Varvalue, Vardescription, Vartype
The variable type is as follows:-
#define INTEGERV 3
#define FLOATV 4
#define ONOFFV 5
#define REVNORV 6
#define OINTEGERV 7
#define GPSV 10
#define SERVOV 13
#define STRINGV 14
#define RADIOV 15
#define POSITIONV 16
#define TIMEV 17
#define WAYPV 18
#define VIDEOV 19
#define UINTEGERV 20
I'll have to explain these in some detail.
Daniel
-
- Posts: 4
- Joined: Sun 26 Sep 26 2010 1:10 am
Re: DragonOSD+ configuration
I would need to get the list of enums like for type 10, 13, 15, 18, 19 so that I can validate user input or provide list of choices. thanks.Daniel Wee wrote: The variable type is as follows:-
#define INTEGERV 3
#define FLOATV 4
#define ONOFFV 5
#define REVNORV 6
#define OINTEGERV 7
#define GPSV 10
#define SERVOV 13
#define STRINGV 14
#define RADIOV 15
#define POSITIONV 16
#define TIMEV 17
#define WAYPV 18
#define VIDEOV 19
#define UINTEGERV 20
I'll have to explain these in some detail.
Daniel
Yves
-
- Site Admin
- Posts: 2449
- Joined: Wed 25 Feb 25 2009 8:00 pm
Re: DragonOSD+ configuration
Yves,
Yes, as mentioned, I would have to describe the various types. I may have done that somewhere already but need to dig it up.
As for your question on V3, that's mostly internal - it's actually the general purpose input (used for RSSI/temp/etc.) You don't have to worry about that.
Daniel
Yes, as mentioned, I would have to describe the various types. I may have done that somewhere already but need to dig it up.
As for your question on V3, that's mostly internal - it's actually the general purpose input (used for RSSI/temp/etc.) You don't have to worry about that.
Daniel
-
- Posts: 4
- Joined: Sun 26 Sep 26 2010 1:10 am
Re: DragonOSD+ configuration
Daniel,
I would like to provide dBm for RSSI input (voltage 3). Could you provide conversion details on how you do this within the OSD? also, what is the third display option (~400 C)?
thx
Yves
I would like to provide dBm for RSSI input (voltage 3). Could you provide conversion details on how you do this within the OSD? also, what is the third display option (~400 C)?
thx
Yves