Shop our Airplanes Products Drone Products Sales
Thread Tools
Sep 09, 2008, 04:31 AM
Registered User
remzibi's Avatar
Build Log

A poor man's OSD , REMZIBI OSD

A new web side is created as brief of latest information :
To get OSD please PM me or send me email . (exchange # for @)

Lastly I start to play with FPV so it is I really like .
I like to show the small OSD project I made just within 2 weeks when I got the max7456 osd chips as samples , all in free time .
Here is the road test I did few days ago:
FPV OSD MAX7456 final road test (4 min 41 sec)

As on picture - it show really good altitude(no drift) and distance to home and speed , at condition that more then 7 satellites are seen . Direction is also OK (now fixed to show more accurate) , H is home and N is north .
Now the software is more improved and working well , still on development , but present version is fully working now .
All info is on the sky area as I think that earth is much more important to view .
As main uPC is Atmel Atmega16 - there is no problem to use Atmega168 but as Atmega32 is pin compatible for any future use , it remain Atmega16 as main uPC.
All soft was wrote in Bascom because of very fast coding and easy debugging .
I am still waiting for miniature GPS module - as for now I use a big car module just for testing purposes .
Looks like the max OSD chip is very nice and easy to use for home made projects .
The forum with development story not existing any more.


After some software improvement , here is a sample how OSD can looks like and how is working
Lot na 8,3 km FPV Twinstar (3 min 49 sec)

For those who do not want to read all this thread (become really long) - here is a brief information about this OSD project .
Also more is here in "english" most actual -
and Paul's (Happykillmore) web side

At first word I like to thank for all who helped me with this project .
That project was born by two accidents - first I had lost in air and crash model , second I ordered OSD samples from maxim and when they arrive at evening for fun I wrote small software for display some letters on TV .
After that I thought about need for nice , light-weight , small and cheap OSD unit , so that is it .

Project is under TAPR open hardware licence - so first download and read LICENCE file .
In one word - any manufacturing and sales without permission of author is not allowed .
I do not sale on ebay .

OSD unit must be fully controlled by user regards to showed information , screen interface layout and message labels .
As many living projects , must be easly software updated by end user , new or alternate software as well as OSD chip character/semi-graphics also configurable . For that need the communication USB-uart device is included (called USB cable) .
To meet the cheap requirement , for now are not used any current sensor , the voltage indicators only . In future that can be changed and more sensors can be added (some free inputs are left) . Final price must be around 100$-120$ including all set (OSD unit , GPS module , USB communication unit) , what is done .

Unit must proper work with any GPS module with any fix update (1-5Hz) and communication speed automatically detected .
If anyone decide to build the unit by his self it is also possible what was proven by our friend who had printed board only and successfully finished his device adding all parts and chips .

Few words about GPS behavior and mounting are here

The hardware base is MAX7456 OSD chip controlled by micro controller MEGA16 by SPI bus , GPS module connected to unit provide all needed information about latitude , longitude, speed , altitude etc. , on that information and saved Home position , the main information like Home-course and Home-distance is calculated , what help any pilot to return home during flight - what is a main function of this OSD .

I didn't want to occupied any RC channel (I have simple RC TX) , so for work OSD do not need any of them (possible use with any 3 and 4 channel simple radioTX) , there is only one switch/button on OSD unit , used to Home position save , the other function of this button is to change video mode from NTSC to PAL and PAL to NTSC , this modes are difference with screen grid resolution NTSC-30x12 PAL-30x16 and must correspond with video camera we use in video system .
The video mode is saved with first Home position save and OSD start(after power-on) with selected(last saved) video mode .

All screen layout configurations/calibration changes can be done on PC computer and then programmed into OSD unit by communication USB device . Software for this is still in development .

Schema and software files are available for download .

Technical data :
- Supply power : 7V-14V (ex. lipol 2S - 3S)
- video voltage measurement range 0-15V
- engine(ENG) voltage measurement range 0-30V
- general purpose ADC measurement range - any range depended from resistor dividers or used opamps .
- Video signals - standard PAL or NTSC (both working very well)
- GPS - any GPS 5V supply with NMEA protocol with TLL standard TX RX signals (however best results and advantages are with dedicated GPS module working 5Hz update position)
- weight : 16 gram (OSD + dedicated GPS)
- printed board size 20mmx45mm

Functionality :
- easy PC connection for configuration/calibration purposes using dedicated PC program (HappyKillmore's exelent work)
- no RC channel occupation for proper work in air
- GPS detection and configuration automatically (configuration commands fully editable)
- auto "save home" function configurable , depends of sat number , button "save home" works independently
- metric(km/h) or feet(mil/h) units - configurable
- zero altitude to airfield level - configurable (absolute or relative)
- fully configurable screen layout
- graphical symbols and fonts configurable (possible exotic languages , fully editable font table)
- voltages calibration function and all ADC inputs including alarms
- frequency calibration for Hz or RPM or whatever else we want to use this input T0

button function
- save home position (short click) (work only when GPS is detected)
- video mode change (NTSC or PAL) press and hold button for about 1 second (work only when GPS is detected)
- configuration mode (pressed and hold button then connect power and relese button , font pattern on screen will appear) for USB communicate

show information DONE :
- latitude (format DDMM.MMMM or DD.DDDDDD can be selected)
- longitude (format DDMM.MMMM or DD.DDDDDD can be selected)
- speed (k/m or miles/h can be selected)
- altitude (meters or feet)
- to-home course (animated arrow or whatever else animation definable by user)
- to-home distance (meters or feet)
- satellite quantity
- video battery voltage (individually scaled and calibrated)
- main battery voltage (individually scaled and calibrated)
- flight timer
- variometer (meters/s or feet/s)
- UTC Time
- UTC Date
- alarms for distance , ADC , altitude , battery voltages (individually scaled and calibrated)
- 32 static displayed independent graphical-character symbols , configurable
- after detection 0 speed for configurable X seconds , shows maximal values for altitude , distance , speed , function can be switched off
- 6 ADC channels to use with any additional sensors , each ca be individually calibrate and alarm set , cooperate with any additional sensors (optionally scaled by opamp or resistor dividers) with analog output (RSSI , air pressure, current sensor , temperature , whatever else with analog output) , display format as 123 or 123.4 can be selected
- frequency meter (RCl input resistor need 220-515ohm or T0 in new board) - can be scaled for any units by gain as Hz or RPM , cooperate with magnetic(hallotron) or optical sensor - or can be used as frames counter when connected to RX output directly
- OSD have support for $M custom messages - for those who want to display his own text or fonts(graphics) anywhere at display , $M can be transmitted between $GPGGA and $GPRMC GPS strings by "your device"
- since 1_77 firmware GPS configuration support MTK as strings and Ublox as binary GPS modules

Every displayed information can be placed everywhere on screen layout , can be on or off , has definable leading character(or picture) and ending character(or picture)
All configuration is done by PC configuration program (GUI) wrote by HappyKillomore (great job , program is really very good)

- firmware version (IMUxx) for cooperation with Ardupilot or whatever external devices also graphical presentation of artificial horizon and pitch, or pitch+roll mixed (that firmware keep all advantages of regular OSD as ADCs , custom graphics , $Mxxxxx custom messages to display any text you want . Added PC program to test OSD behavior - emulating any kind of "your" device .
- version of firmware supporting external devices cooperation using custom protocol (described in readme.txt) , here is very good thread done by HappyKillmore about integration with Ardupilot -

- firmware version for MultiWiiCopter(MWC) Artificial Horizon show and navigation and thread about -

- work with FY30A stabilizer , it provide AH data so remzibiOSD can display Artificial Horizon based on those data .
Firmware for OSD to dowload here

- work with FY21AP and FY31AP autopilot , remzibiOSD serve as display for FY21AP data.
Firmware for OSD to dowload here

- telemetry data downlink, based on reading on screen data, it is very nice project, worth to see.

- MAVlink implementation to work with APM2
- any ideas in future

A very nice telemetry project made by user "psykokwak" - Generic OSD telemetry using OCR Technology for logging and antenna tracking
worth to see -

Configuration program can be downloaded here -
so anyone who want to play with OSD ability can simply install it and try even without OSD .
Here is the help web side
- still in development
All new version of PC software are simply updated by internet , include new OSD firmware files as well as new Font files and eeprom (BIN) , USB drivers etc. . Also latest firmware are available to download from this post .

Here is Wiki web side done by Micronics including lot of useful information.
Here is the thread with some more technical information and tips (like connecting current sensors , temperature sensors , RPM sensors etc.)
done by me -

A new web side is created here as brief of latest information :

Connection of RC and Video system schema is like that , optional GND connection many times help to increase RC range but must be verified experimentaly :

POWER - supply power for OSD - voltage on this input is measured automatically
ENG - input for main(additional) battery voltage measurement
Video IN/OUT self explained

The assembled OSD unit looks like that (old board) :

New board type looks like that (this one is available now) :

OSD is available to purchase as complete set include OSD , GPS and USB cable plus all additional cables needed for basic work (power supply , Video in/out , ENG voltage measure) . Also as separate parts ex. OSD only without GPS .
For now set price is around 70EUR but that can be changed depends from material and other costs (stupid taxes etc.).
Set looks like that :

Latest firmwares and other files :

USB drivers complete for all kind of cables depend of label on it -
Prolific for XP, Prolific for Vista and win7, OTi, ArkMicro, MCCI
all here

When you have driver problems under Vista win7 64bit - you can run virtual machine with installed regular winXP 32bit on your PC from Microsoft .
here is the link
Some of basic type Win system not allow to use those MS virtual machine , so you can use a very good virtual machine named VMware - what in my opinion is very nice solution , allow to run any winXP, Linux or even MACOS on your PC .
That is general solution for any driver-software problems under 64bit win systems .

UPDATE 28.09.2011 firmware OSDv1_79.hex for regular OSD .
And firmware named OSDofv1_79.hex - is the same as 1_79 except that is possible to ON/OFF (that name "of" ) OSD layout using as trigger alarm of ADC5. OSD on/off layout function as ADC5 alarm trigger , do not use it when you don't want to use on/off OSD screen ability (ADC5 must be connected) , as OSD can accidentally "on" or "off" layout during flight .

(Update 20.01.2011)OSD for cooperation with external devices ARDUV1_71.hex (as Ardupilot or whatever your design) using simple $A,,,, protocol of data delivery on UART RX pin (read readme.txt for details) , also ARDUmV1_71.hex firmware exactly the same but Artifical Horizon is mixed pitch+roll (that way "m" letter in file name) - so one Horizone bar is moving on sreen .

(Update 28.09.2011) , ARDUV1_72 and ARDUmV1_72 in one zip - the same as 1_71 but possible to write from GUI BIN file for regular OSD , firmware respond for VER as number 1.72 - so no errors .

(Update 01.10.2011) , ARDUV1_73 and ARDUmV1_73 in one zip file - in this firmware Custom Message have new format $M,x,y,L,E,text, - it is much more handfull for any kind of Arduino IDE to manage sending , all variables are send as tostrig type , not need to carry about HEX format any more .

(Update 01.10.2011)PC program IMU_sim 1.06 for testing all that protocols on live connected OSD to any COM PC port using USB cable .


Also initial BIN file(eeprom) including OSD layout , ADC and other settings and some other older (for reference and experiments) samples of BIN

Initial font file for MAX chip (based on -mi- user design)

For hardware tips and problems please read this post
Last edited by remzibi; Sep 29, 2014 at 06:56 PM.
Sign up now
to remove ads between posts
Sep 09, 2008, 09:54 AM
Registered User
BushmanLA's Avatar
Nice work.

I still have some samples that I never got around to playing with.
Sep 09, 2008, 02:38 PM
Registered User
remzibi's Avatar
Today i've got a small , miniature GPS module , it was working at once after conection , so theory meets with practice . I had to rebuild baud rate autodetect procedure - as it was detected 4800 and indeed was 9600 , small bug (there was only that two speeds) - now all autodetection function is rewriten and ultimate , works now perfect in full range of baud rate speeds from 4800 till 115200 (at least in theory ).
All system working now with any GPS units with any boud rate and any update frequency 1Hz till 5Hz , also it not need to made any additional config of GPS data stream - it must have any stream but must included both GPGGA and GPRMC .
Later todo is play with MTK GPS modules and their comands for stream and data config . I hope to improve frequency by that .
Sep 11, 2008, 08:53 PM
Old retired Electronics Fart
Charles B's Avatar
I like your project it has given me some idea's
I've been using Pic16f876 on my RC boat project. You have almost got me to switch mega16 or 32. with Bascom .
My boat project is not only to give me the GPS locations but the depth
of the water under the boat. I'm doing bottom contours of ponds and lakes in my local area. I've been doing them now for 12 years. Now I'm divided the ponds in 5 of 15 ft. slices, the width of it. I have to put stakes out to mark the slices. I need to get to a GPS system I hope by next spring I'll have it up and running. right now I limit myself to a 2 acres of water. with the new
setup I could do 10 acres. There is one 7 acre stone quarry to do when
I can. It will be a good test Its up to 90 ft deep and it has a train in it.
with 2 islands.
Right now I can read a GPS module and get $GPRMC and process it.
I need to get the micro to do distance and degrees to home in it self.
I don't want to do a way point in a GPS unit and have it tell me that info.
to Do these ponds I'll have to run the boat around the side of the
shore line and around islands. and then It will do a pattern to cover
the rest of the water area. It need a return home when the battery
get low. All the data will be stored in a memory stick for a logger.
A lot of the ponds are remote and I have to walk in. Don't want to
carry much gear. The video link will be to my car park a distance away,
with a high gain antenna on 2.4Ghz. The boat will have 100mw to 5 watts
of video power. It will be on the Ham frequency. The audio part of the link will relay the GPS data/depth to my laptop in the car.

Sep 12, 2008, 06:33 AM
Registered User
remzibi's Avatar
Originally Posted by Charles Beener
...on my RC boat project.
If I can made an advice - as it is for boat (or RC car ) , do not use the miniature avaliable GPS modules , I reccomend the old modules like that for example

it provide better position stability , probably for reason of solid external antena .
This are conclusion I've got from comparing that two modules
- new are small, light , fast and some drift in position
- old are big , heavy , slow but very precise for position indication

Originally Posted by Charles Beener
... You have almost got me to switch mega16 or 32. with Bascom .
Extremly fast coding , after all if you have a lot time you can rewrite all for C++ or whatever .
Sep 12, 2008, 08:45 AM
Old retired Electronics Fart
Charles B's Avatar
Right now I'm using a ISM300F1-C4 GPS Module from Invertek Systems.
Its a SiRF Star III 20-channel GPS . My app. doesn't need to be real very precise for position. We do use a external antenna with preamp in the antenna. The GPS module can lock in 30 seconds from first powered up , from inside our house.
I'm not good writing code in C++ or any C as far as that goes. We do write a lot of Java script and VB6 code. That's why I leaning to Bascom basic.
The mega16 or 32 will have enough speed and code space . We have the code in a VB6 program for the distance and angle math. It not to bad. I'll be using the simple math (Planar Flat plane ) that don't need to take in to account of the earth curve .
I do make all my own PC boards so it easy to make a cpu project.
The 200khz depth sounder board will take more time than the cpu board. The
IC chip we used in the past isn't made any more. I'm thinking of using the cpu
for both process. That would only require me to build a 1200khz sender and a receiver with a blanking circuit.

Last edited by Charles B; Sep 12, 2008 at 12:57 PM.
Sep 25, 2008, 05:19 PM
Registered User
remzibi's Avatar
At last , the board project is ready .
23x43mm , small - isn't it ? . I hope to manufacture some such small prototypes and test it at least in air .
There are ISP signals outed on pads and all ADC for possible future use .
Uart also can be used for any easy software updates using any com interface or mobile phone USB cables , bootloader will be preprogramed .

So far so good .

In home project forum was huge talk about show the position deg or not in case when model escaping .
Finally , two versions of software ready , with showed position and without . However now the new work is in progress - software for user-configurable layout - with user-cofigurable software on PC .
Last edited by remzibi; Jul 29, 2011 at 10:51 AM.
Sep 26, 2008, 05:27 PM
Registered User

I've always wanted to make my own OSD. After seeing your thread, I got some MAX7456 samples and got a working OSD for less than $20!

Right now it doesn't do anything, just displays "Hello World", but I will be adding battery voltage and plugging my GPS in soon!

Have you managed to overwrite the EEPROM characters for custom graphics? I think the 7457 has huge potential for building graphical gauges, icons and so on!

Sep 26, 2008, 08:20 PM
Old retired Electronics Fart
Charles B's Avatar
Nice looking board Remzibi !
It looks like your using mega168. I take it your using C+ for the program.
I downloaded the WIZ-C compiler last week and I learning to do C+ now. I never
made a C+ program before but they have a good Tutor. I like it a lot because of the
24 external hardware devices you can emulate , from I2C to LEDs , switches
and signal generators and terminals. I've been playing with different hardware to get
so I'm better with the software. This week I got it so I can read my GPS NMEA message
and strip the different strings out of the message. One step at a time. Were using the
Pic16F876A chip now. Got to watch it on my Variable RAM space . We only have 386
byte locations. I'll change my CPU to a Pic18F2550 next week or so It will have USB
port and a boot loader on it. It has alot more RAM and program space.

Please keep us informed on you progress. Looking Good !

Question! Are you going to use the GPGSV message to read the Satellites SNR
of the first 4 Satellites ? Is you program going to store its own way point for the start
location or are you going to store that point in the GPS receiver ?

Sep 27, 2008, 10:51 AM
Registered User
remzibi's Avatar
Originally Posted by zitron
Hey, I've always wanted to make my own OSD.
Same me , so since now there are two of us .

Originally Posted by zitron
Right now it doesn't do anything, just displays "Hello World", but I will be adding battery voltage and plugging my GPS in soon!
If you like - just share your schema with me , I suppose that you use hardware SPI and hardware uart so it is very simple and similar to mine - I will compile software for your m168 uC . We will se if my idea of autodetecting any GPS receiver is working in practice , and you will check your OSD device .

Originally Posted by zitron
Have you managed to overwrite the EEPROM characters for custom graphics? I think the 7457 has huge potential for building graphical gauges, icons and so on!
Yes , I did it only for one character from uC level , it is a bit problematic , the best way is to use factory software but for this we need help of someone who have factory development board and will log the transmition between PC and uC on com port , this will help to write comunication algo for any uC .

Till now I was focused for working main algo - now it is possible to made any graphical improvement , also waitpoints and maybe some auto return or whatever in future .
Last edited by remzibi; Sep 27, 2008 at 11:43 AM.
Sep 27, 2008, 10:53 AM
Registered User
remzibi's Avatar
Originally Posted by Charles Beener
Nice looking board Remzibi !
Thank you .

Originally Posted by Charles Beener
It looks like your using mega168. I take it your using C+ for the program.
I used Mega16 because it is pinut compatible with mega32 - and I am sure that in future that memory of bigger uC will be usefull without any board changing . mega168 was my first idea but - see above .
I wrote all in bascom - however now when all algos works is possible to rewrite it on C or ASM . I recommend you to start with bascom (at least for quick checking of program parts and functions) as you mentioned that in past you had use basic - that will help you a lot .

Originally Posted by Charles Beener
Question! Are you going to use the GPGSV message to read the Satellites SNR of the first 4 Satellites ?
No , I do not use that string . The satellite quantity and fix info are in GPGGA .

Originally Posted by Charles Beener
Is you program going to store its own way point for the start location or are you going to store that point in the GPS receiver ?
Yes , all info about start position are stored at start in program memory - home course and distanse are also counted by software . The goal was to cooperate with any GPS receiver so all is done by program .
Last edited by remzibi; Sep 27, 2008 at 11:09 AM.
Sep 27, 2008, 09:10 PM
Old retired Electronics Fart
Charles B's Avatar
About 2 weeks ago I download the Bascom-ARV program and it didn't work
like I though it should. It didn't give me any error in the basic program I put
even though it did have some. We I opened one of there programs and put errors
into the program it would compile with no errors ? When I went into the
test debug mode it would lock up on me. There was some thing wrong.
It did the same thing even after a second install. So I just gave up.
Today I redown loaded the program from another site and this time all is well.
Bascom do have more commands than WIZ-C . WIZ-C has better external devices and more of them for debug.


How much memory did you use for your program ? If its over 4K bytes I'll
need to find the lowest price for the Bascom full version.
Do you plain to sell the board by it self ? or kit it ? I'll still want and have to write my own code.
Just because I like to write code. I can get the mega168 for $5.32 and the MAX7456 for $20 . From WWW.NEWARK.COM

I take it your using the built in Boot Loader and serial interface ?
Are you planing to use a DS/MMC memory stick ? Thats one item I need
in my project. If not I can make my own board.

I never programmed a ATMel device. What program do you use to do the
download to the boot loader ? Can you explan the process in just a few

It's a shame that Bascom don't have it for the Pic processors.

Last edited by Charles B; Sep 27, 2008 at 09:28 PM.
Sep 27, 2008, 10:19 PM
Registered User
when will this be ready for sale?
Sep 28, 2008, 11:09 AM
Registered User
remzibi's Avatar
Originally Posted by JustinONE
when will this be ready for sale?
Hmm , for sale ? , more boards can be easly ordered .
When and if , it will be avaliable for sale then only as hardware platform assembled (uC+max) or semi assembled(uC without max) or maybe kit board - we will see .
Software will be avaliable in few versions here or on web side created for this project - we will see . Maybe there will some peoples who write better and nicer software for that hardware platform ? .
As possible price - surly around or less 90USD(fully assembled , kit less) , about 130USD or less with GPS receiver included (MTK chipset 25x25mm dimension) - that prices is only my first idea but in practice they can be only smaller that sample above .

When ? probably within 2-3 weeks I should have the boards .
Sep 28, 2008, 11:12 AM
Registered User
I'm in at $130 with gps!!

Thread Tools

Similar Threads
Category Thread Thread Starter Forum Replies Last Post
Poor Man's Heat Shrink for Homemade Battery Packs... flytowner Parkflyers 28 Mar 12, 2010 11:45 PM
Poor man's Helistar Iain Micro Helis 25 Dec 01, 2005 06:15 AM
What to do? W/lb of poor man's F5B (long post) 96S14 High Performance 14 Sep 29, 2003 03:02 PM
Poor man's Super Slow Stick fun flyer? uglyplane Parkflyers 1 Jul 03, 2003 11:54 AM
Kyosho 180 Poor Man's Power Fix??? Don Sims Electric Plane Talk 41 May 12, 2001 09:23 PM