Page 1 of 2

DragonOSD+ configuration

Posted: Wed 24 Mar 24 2010 3:16 pm
by Daniel Wee
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:-


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


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


if you are using a Futaba radio. Other options are JR, SANWA and MPX. You can also assign the individual channels with the command:-


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


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


and you're done. If for some reason you botch up the settings and want to revert to the original default state, just type:-


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.


Serial Terminal Command set

Posted: Tue 13 Apr 13 2010 9:56 pm
by Daniel Wee
Commands accepted at the serial terminal (W.E.F. version 5.8 onwards):-



This accepts the following arguments:-













This accepts all the arguments for SET, and the following:-





Using the on-board position logging function

Posted: Fri 28 May 28 2010 9:55 am
by Daniel Wee
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:-


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.


Setting the on-board failsafe

Posted: Fri 28 May 28 2010 9:59 am
by Daniel Wee
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.


Re: DragonOSD+ configuration

Posted: Sun 06 Jun 06 2010 12:40 am
by Daniel Wee
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.


Re: DragonOSD+ configuration

Posted: Mon 27 Sep 27 2010 1:41 am
by yvesOttawa
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??, ??, ??, ??


Re: DragonOSD+ configuration

Posted: Mon 27 Sep 27 2010 10:03 am
by Daniel Wee
The return strings have the format:-

Varname, Varvalue, Vardescription, Vartype, Varmin, Varmax

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.


Re: DragonOSD+ configuration

Posted: Mon 27 Sep 27 2010 10:53 am
by yvesOttawa
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.

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.


Re: DragonOSD+ configuration

Posted: Mon 27 Sep 27 2010 12:50 pm
by Daniel Wee

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.


Re: DragonOSD+ configuration

Posted: Sun 21 Nov 21 2010 3:17 am
by yvesOttawa

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