Project #009 - DakarOSD/Lynx RC Plane OSD

  • Print

DISCLAIMER: This design is experimental, so if you decide to build one yourself then you are on your own, I can't be held responsible for any problems/issues/damage/injury that may occur if you decide to follow this build and make one yourself.


Originally designed by Cristóbal Fernández, DakarOSD/Lynx is an OSD (On Screen Display) & Auto-Tracking antenna system for RC planes & helecopters. The hardware design is open-source with the schematic diagrams & pcb layout files being released whilst the software is released by Cristóbal by way of hex files.
See Page 7 of this article for download links to the various hex files.

The original threads (Spanish) for review are here:-
- DakarOSD.
- Lynx.
- LCD for Lynx.

CollageHaving tried a few commercially available OSD modules in my own RC planes what attracted me towards Cristóbal's system is the Auto-Tracking capability. The idea is that instead of an omni-directional antenna picking up the transmitted video signal from the Tx on the plane, there is actually a directional antenna at the base station which picks up the GPS co'ordinates of the plane and orientates the antenna via pan/tilt servo's to continually point towards the plane. This has the effect of increasing range and quality of signal.
So, it's a two pcb system: DakarOSD pcb is installed in the plane, whilst Lynx pcb is the basestation on the ground. What you also get is the capability to connect the Lynx pcb to a local laptop running Google Earth of which your plane can be seen real-time flying over the local area.

With my testing done using Cristóbal's original pcb designs I set about re-creating my own pcb's using Eagle, the first to date being the DakarOSD. I wanted to add in additional functionality & capability whilst also arranging the pcb layout in such a way it would help reduce the myriad of wiring that unfortunately besets us RC plane enthusiasts.

Disclaimer: The design & files contained herewith are supplied with no guarantee as to functionality, safety or completeness. Please do not look to me for any kind of recompense if your attempt does not work/catches fire etc. You are on your own.

In brief, the plane's video camera is connected to the DakarOSD board as is the GPS unit. The software on this PCB incorporates the GPS co'ordinates into the video signal (hidden) along with various data such as battery voltage/current etc. This data is transmitted to the basestation on the ground where the hidden data is decoded by the Lynx board and is used to drive the servo's for the antenna tracker.
The Lynx board is optional, if you are really only interested in the OSD side of things, i.e. no antenna tracker, then it will work find on it's own.


This first pic is actually Ver 1.0 and has since been revised to Ver 1.1. Also, please note that I haven't actually built a Ver 1.1 board yet, but the changes were really only around the voltage Regulator and adding a bit of filtering on the RSSI amp.

You can download the Eagle Pcb layout, parts list, component layout & schematic diagram here.

Note:- I suggest you do NOT get the silkscreen layer printed as I never really optimized it on the layout.

Here's the final PCB (Ver 1.1) as per Eagle PCB. Double sided Through Hole Plated (THP).
The graphic below is not to scale, the actual size of the pcb = 2.6" x 1.5"

This is the pinout of the board, and as you can see utilizes the same 3-way headers making wiring easy because for the most part uses standard RC servo extension lead type wiring. Please take care when hooking up your other hardware to these headers. It is always worth double checking voltages/polarity etc before you plug in.

DakarOSD - The GPS module I use is the LS20033. My DakarOSD pcb is set up mailny to suit this GPS module only, whilst the firmware (V2.7b) is actually capable of interface to a few different types of modules. See Cristóbal's Spanish pages for more info.


GPS Module
The DakarOSD board can interface to two or three different types of GPS module, however, I favour the LS20033 module. Note: Below is the LS20033 cable I have been using as purchased from these guys here.
Please note that it's not quite pin compatible with the 4-way header on the DakarOSD V1.1 pcb (sorry, my fault!).
I have marked on the colours on the pin-out of the DakarOSD pin-out above. You will need to re-wire the 4-way on the cable below (or cut & link some of the tracks on the back of the pcb).


The PDF datasheet for the LS20033 GPS can be found here.

Here is the assignment of the colours on the cable.

Black = 0vdc
Red/Purple = +3.8vdc
White = Tx sig out of GPS
Green = Rx sig into GPS


Current Sensor
Allegro Hall Effect Current Sensor (P/N ACS756SCA-050B). This sensor is capable of measuring up to 50amps of in-line current and with an in-line resistance is only 130uOhms.

There are a few additional components on the output side that are necessary and which I have incorporated onto the DakarOSD, thus making hook-up dead easy.

The 3 interface pins of the sensor are wired up directly to the 3-pin header on the DakarOSD pcb.

The PDF data sheet for the sensor is available here.


This first pic is actually Ver 2.0 and has since been revised to Ver 2.1. Also, please note that I haven't actually built a Ver 2.1 board yet, but the changes were really minor, such as adding de-coupling caps etc.

You can download the Eagle Pcb layout, parts list, component layout & schematic diagram here.

(See Page 7 for the HEX files for the board)

This version does everything the original version from Cristobal does but also incorporating the following:

- 2*16 LCD (with PIC) for local display.
- LED's for Video, NMEA and Power.
- MAX232 RS232 booster for hooking up to Laptop/Google Earth easily via a standard 9-way D-type connector.
- Added a simple buffer (74LS04) to the servo outputs of the PIC.
- Better power on reset since the original design was temperamental on startup.
- Provision for bigger power supply de-coupling capacitors.

Here's the V2.0 prototype board undergoing testing. Note that there is no heatsink on the regulators, however, it is recommended that one is fitted to the right hand regulator as this is the one that provides +5vdc supply to the servo's and may heat up depending on the type/size of servo's you use and the loading. You may of course fit one large heatsink under both regulators.

Here's the final PCB (Ver 2.1) as per Eagle PCB. Double sided Through Hole Plated (THP).
The graphic below is not to scale, the actual size of the pcb = 110mm x 88mm.

Now some photos. Here is the Pcb installed on my antenna tripod.

The next 3 photos show the 3 screens that are available by pressing the LCD button on the Lynx:

- GPS Cordinates.

- No. of Satellites & Altitude.

- Velocity (Speed) & Heading.

Finally!'s a last minute modification. It struck me it might be a good idea to have the backlighting of the LCD flash with the VIDEO LED, thus making it much more obvious of how well the data is being received. Here's the circuit modification. The backlighting of my LCD is 5v 82mA, so very easy to hook up via an N-channel FET (ZVN3306A). Please check your own LCD datasheet.

And here's a video of the above mod in operation. Note also I have edited the HEX on the LCD Pic to English, and please ignore the audio, the beeping is my nearby RC plane, not the Lynx.




The following photo is of my Antenna Tracking/OSD field setup.

There's a 2.4gHz 14dB directional patch antenna on a pan/tilt servo mechanism which is cabled down to a local 2.4Gz receiver which outputs the audio/video signal from the camera on the plane. The video signal interfaces to the Lynx PCB (behind the small metal cover) where the software strips the GPS co'ordinates/data and uses it to orientate the antenna via the servo's.

The black cable is a +12vdc power source for the system, the white cable (bottom) is the RS232 signal to the laptop for Google Earth functionality.


Here is the basestation. The video/audio signals from the tripod interface here and I have a local 7" screen for display (as well as 2 pairs of video goggles (one for guest!), and an Archos 605 Wifi for video recording. The black box within the lid is the interface for the HeadPlay video goggles.

What you can't see is the myriad of additional hardware hidden underneath the bottom panel where the diversity module (dual antenna/receiver sources) sits as well as a 5-way video repeater.


Here is a close up of the OSD display as seen on the 7" LCD screen and which is also seen via the video goggles / LCD. The following data is available from the plane:-

- Heading
- Height
- Direction indicator to 'home'
- Heading (deg.)
- Speed
- Plane Battery voltage
- Instantaneous current consumption
- Total mAh consumed (very handy to know the plane's battery status)
- No. of satellites
- Flight duration (minutes)
- RSSI % (main RC radio receiver strength indicator)



Lastly, here's my current 'video' plane showing the camera mounted on it's pan & tilt mechanism. Yup!, as I move my head around on the ground this is translated to identical movements of the camera on the plane. Really clever stuff allowing me to look around as I fly.......just like the real thing!



These procedures & notes offer basic instruction as to the setup & calibration of the DakarOSD & Lynx.
They are based on DakarOSD firmware version 2.7b, and Lynx firmware version 2.0.

Firmware for DakarOSD Ver2.7b located here.
Firmware for Lynx Main PIC Ver2.0b located here.
Firmware for Lynx LCD PIC 10Mhz Version located here. My own English version here.

Not got a suitable PIC programmer? This is the type of programmer I have, purchased via Ebay (search for Microchip PIC Programmer):

Note: This page is a moving target and was partly created from translated Spanish instructions & my own notes/findings.
If you find anything missing or wrong then please let me know.


Have fun!




These instructions are for the field setup prior to flight and assume the DakarOSD/Lynx is fully calibrate/tested.

1. Position the Plane within a couple of metres of the basestation.
2. Power up the Plane and wait a few minutes till a satellite signal is obtained.
3. Press the D.HOME button on the DakarOSD to zero the Dakar parameters.
4. Power up the basestation and observe the LED on the Lynx, it should be lit.
5. Press and hold the L.HOME button (till the LED is lit) on the Lynx to reset the basestation co'ordinates.
6. Walk out 10 to 20 metres central to the flying area you intent to fly in. Now press and release the L.HOME button on the Lynx.
7. Orientate the antenna so that it points towards your plane (still 10 to 20 metres out).
8. Optional - Walk sideways from the 10 to 20 metre position and just check the antenna tracks you.

The system is now set up, you can fly.


The DakarOSD has 5 options for display, and to change from one to another requires assigning an analogue channel of the Radio Rx and hooking it up the the DakarOSD board. From then on, adjustment of the pot on  the Tx will change the OSD screen, as follows:

0.9mS - 1.16mS = Disable OSD
1.161mS - 1.42mS = Main OSD screen
1.421mS - 1.68mS = Max recorded parameters (max altitude, speed, distance)
1.681mS - 1.94mS = Waypoint screen
1.941mS - 2.2mS = GPS co'ordinates screen

On power up the OSD defaults to the Main OSD screen, so if you don't actually hook up an aux channel from your Receiver to the DakarOSD board then all you will get is the Main OSD screen.
If your RC radio does not have an analogue aux channel then you are stuck with the Main OSD screen.

Here is more explanation of the 5 screen modes:

First screen: OSD off.

Main OSD screen:
- Altitude in mtrs.
- Variometer and rate of ascent / descent rate in meters / second.
- Distance in meters.
- Distance to home.
- Direction to home.
- Speed over ground in kph.
- Number of satellites.
- Minutes of flight.

In the second line (if selected to display):
- Voltmeter 1:
- Instantaneous current consumption in mA.
- Cumulative current consumption in mA (great for knowing battery life).
- Voltmeter 2 / RSSI receiver RC.

Max recorded parameters (flight session):
- Maximum height achieved.
- Maximum distance achieved.
- Maximum speed achieved.

- Waypoint or point excursion destination. The arrow back home now tells us the right path to waypoints.

GPS co'ordinates:
- Current latitude and longitude coordinates of the plane.



The DakarOSD has a single pushbutton switch & 3off potentiometers on the PCB.

1off pushbutton for re-setting the OSD parameters. Herein known as D.HOME pushbutton.
1off potentiometer for adjusting the OSD video contrast. Herein known as D.VIDEO pot.
1off potentiometer span control of the RSSI signal. Herein known as D.SPAN pot.
1off potentiometer zero control of the RSSI signal. Herein known as D.ZERO pot.

Calibration / Settings:-
Black or white characters:
To switch between black or white characters (on a grey background), power up whilst holding down the button until the led comes on, then release.

Establish a waypoint:
Press & hold the button at any time for 5 secs until the led comes on to set a waypoint.

Calibration mode:
To enter calibration mode, power up and wait until "GPS DakarOSD V2.7 x Hz" is displayed and then press & hold the pushbutton until the LED flashes. The number of times you let it flash before releasing the button will determine which area of calibration/settings you want to change. Once it flashes the number of times you require simply release the button. As follows:-

TWICE (about 10 secs) - The display will show '0' satellites and from here on the analogue functions such as Voltmeters, RSSI, Ammeter etc. can be calibrated. In addition the multiplier for the mAH can be set.

THREE TIMES (about 15 secs) - Activation, deactivation of the entire 2nd line of parameters on the OSD, i.e. the analogue parameters line.

FOUR TIMES (about 20 secs) - Activation, deactivation of the Ammeter on the OSD.

FIVE TIMES (about 25 secs) - Activation, deactivation of the RSSI on the OSD.

SIX TIMES (about 30 secs) - Invert / non-invert of the RSSI parameter.


There are 3off pushbuttons, 3off potentiometers & 3off LEDs.

1off pushbutton for re-setting 'home' GPS co'ordinates for the basestation. Herein known as L.SET pushbutton.
1off pushbutton for setting / testing servo travel. Herein known as L.TEST pushbutton.
1off pushbutton for alternating the screen on the LCD. Herein known as L.VID pushbutton.
1off potentiometer for optimizing the video signal. Herein known as L.VIDEO pot.
1off potentiometer span control of the servo travel. Herein known as L.SPAN pot.
1off potentiometer tilt control of the servo travel. Herein known as L.TILT pot.

Calibration / Settings:-
When the Lynx is powered up for the first time it is necessary to store which type of PAN servo you have fitted, i.e. 90deg, 180deg or 360deg type.
Note: In order to use the servo setting / testing facilities you must have a functioning video signal, i.e. valid GPS data from DakarOSD to Lynx.

On powering up the Lynx the VID LED will flash, and the number of times determining which type of servo is fitted.
1 flash = 360deg type servo.
2 flashes = 180deg type servo.
3 flash = 90deg type servo.
To change this, hold the L.TEST pushbutton down whilst powering up the Lynx. The VID LED will flash.
If you require 360deg type servo then let it flash once then release the L.TEST pushbutton immediately.
If you require 180deg type servo then let it flash twice then release the L.TEST pushbutton immediately.
If you require 90deg type servo then let it flash three times then release the L.TEST pushbutton immediately.

To calibrate the PAN servo travel, then power up the Lynx normally then press and hold the L.TEST pushbutton. The PAN servo will travel fully in one direction. If you then release the L.TEST pushbutton the press it again then the PAN servo will travel in the opposite direction. You can repeat this over and over to swing the PAN servo one way then the other.
So, whilst doing this you can adjust the L.SPAN potentiometer to fine tune the full scale deflection of the servo.

The TILT servo requires similar adjustment. When you operate the L.TEST pushbutton for the PAN servo calibration as above then in actual fact the TILT servo will operate also, swinging from fully up to fully down as you press the L.TEST pushbutton.
So, whilst doing this you can adjust the L.TILT potentiometer to fine tune the full scale deflection of the servo.
The TILT servo uses a 90deg servo. It is important that when the servo is fully down then it is completely vertical, and when fully up it is completely horizontal.

The L.VIDEO pot is necessary to optimize the reception of the data that is embedded in the video signal.
With the DakarOSD & Lynx powered up, and GPS data being received then adjust the L.VIDEO pot till the VID LED on the Lynx turns on. There will be a fine band where it's is almost on continously, and either side of that where it will be flickering or offcompletely. You are looking to have the LED as full on as can be. This maximizes the data being received.

The 2*16 LCD is controlled by a dedicated pushbutton. On power up it will display the welcome screen, and when NMEA data starts being received the VID LED will illuminate permanently and the LCD will automatically display the live GPS co'ordinates.
Pressing the L.LCD pushbutton will rotate the display around 3 different screens, as follows:

GPS co'ordinates:

No. of Satellites & Altitude:

Speed & Heading:

Please note that since these photos I have hacked the HEX file a wee bit and modified the text to English. It's available for download.


One of the additional functions of the LYNX board is a serial output containing NMEA data and that can be hooked up to a laptop on-site and used display/log your flight movements live in Google Earth!

Google Earth does have built in functions to read NMEA data, but only at 4800 baud, and with some other limitations. So, the way around this is to use a separate standalone program to read the data from your laptop COM port and pass that data to Google Earth, and also letting you configure a whole lot of parameters along the way.

Note: If you are using my LYNX Pcb then you will not need an external TTL to RS232 converter as the serial signal from the Lynx board is already boosted (the standard Lynx Pcb from Cristobal has a simple TTL output and thus requires an external booster).

Here is the wiring of the cable (9-way D-type free sockets) when using my Lynx Pcb. Laptop (left) to Lynx (right):

2 -------------------------- 3
5 -------------------------- 5
4 link to 6
7 link to 8

So back to the standalone programs. There are any number of these apps, however I only found two off them to date that seemed to work with the Lynx NMEA serial output. These programs read the NMEA data and convert it to KML data files that Google Earth can read real-time. As follows,

Franson GpsGATE 2.6  (available here).
GEtrax (available here)

The following example setup is using GEtrax. After installing the app configure the following parameters from the pull-downs:-

COM Port Number = usually com1 if you are using a laptop.
Baud Rate (NMEA) = 57600
Program Mode = Real-time Location (NMEA)
Output to Google Earth - checked

Next, here's a screenshot of GEtrax, and with the preferences I have set up.
You can either set up GEtrax to auto load Google Earth when it starts up, or wait for user input. My preference is for 'Auto' start as below. The rest of the preferences are self explanatory.

The next thing to do is to check that valid data is actually reaching GEtrax. Pressing F12 will bring up the debug window where you should be able to see the actual NMEA messages being received. As follows:

If you get this far then you are nearly ready, however, before you actually drag your laptop etc to the field, you should complete full ground testing first. I found that even in my back garden I was able to walk around with the plane and it would record some movement in Google Earth.

The following screenshot is the system actually running. The DakarOSD & Lynx are both operational, the NMEA data is being input via the com port of my laptop, GEtrax is work and the data is being fed to Google Earth. When Google Earth starts up it should immediately direct to your current GPS position and trace your movements. I was testing from my back garden as base, so the screenshot below is my street! Sorry you can't see many 'traces' as I wasn't moving around much!
Look closely you can see a wee plane around the centre of pic.


If there's one comment about the software of the Lynx is that there's no dampening on the servo drive, so the antenna can whack around something silly when you first power up and the system hasn't sync'd up etc. I think this puts undue stress on the servo's what with the weight of a patch antenna, especially if it's not balanced well.

The best way of course would be to modify the software, possibly through use of an averaging formula like this = Yn=Yn-1+(1/k*(Xn-Yn-1)) , however, I don't have access to the source code. A pity, as I've used that particular averaging formula to great effect elsewhere.

So, the only way is via a hardware solution and I have found a third party device by way of the Turnigy Servo Speed Regulator. These are designed for retracts etc, but I think they may be ideal for dampening both the pan & tilt servo's. Very easy to use, they just go in series with the servo's and are adjustable.

Here's a pic of the regulators fitted to my antenna tracker. There are 3 potentiometers on each for easy tweaking of speed and direction.

And here are a couple of video clips which show them in operation with & without the Turnigy Servo Speed Regulators fitted.

Note: An added bonus with these units is the option to reverse the direction of the servo's, something I found useful on my own tilt servo which was fitted wrongly. The Lynx Pcb has a 'link' on the board to reverse the direction, but not on tilt unfortunately.

Video: WITHOUT the Speed Regulators fitted:


Video: WITH the Speed Regulators fitted:



Some folks from around the globe have built up my version of the DakarOSD & Lynx pcb's (which I think is outstanding!). Here are some photos:-

DakarOSD V1.1 & Lynx V2.1 from Richard in Taiwan.