Yet another open source OSD for DIYers - RC Groups
Thread Tools
Feb 28, 2013, 08:35 PM
Registered User
Build Log

Yet another open source OSD for DIYers


Preamble. In short, my project is a lot like the DIY OSD (w/o max7456) by Dennis Frie. I started it earlier, but finished (almost) much later. Because often I do not have enough free time for a few months to continue the project. I also experimented with analog comparator. But later dropped the idea, because of the instability of the image and influence of brightness. Also, I burned my arduino board and decided that the hardware must be developed specifically for this project.

In addition to the open-source, low-cost hardware, I set the following objectives: ease of repair and find parts for PCB. This means that in case of damage can be repaired the same day. Therefore I have chosen atmega8 - this is one the most common mcu today and can be purchased almost anywhere that sells radio components. I understand that this is a step back, much more profitable use stm32 now. But I would like that it just works. And besides, I had almost no experience in programming and electronics. I've learned into practice.

It shows the flight time, the voltages of two batteries, the RSSI signal in percent, the current coordinates, sats number, altitude, speed, distance and direction to the base.

Restrictions. At the moment only supports metric system

The code is written in plain C with inline asm at time-critical places: http://code.google.com/p/sxosd/

More screens, videos and pcb will be later.
Last edited by sardonyx; Jan 19, 2015 at 06:53 PM.
Sign up now
to remove ads between posts
Mar 08, 2013, 08:29 AM
Registered User
Here is the information for the self-assembly board with updated scheme

http://code.google.com/p/sxosd/wiki/PCB

This information will be updated.
Board size, which are made tht-way: 66х39 mm. Weight: 17 g

I'll try to do smd-version later
Mar 08, 2013, 08:43 AM
Just another user
Dennis Frie's Avatar
Looks good
Have you seen the original OSD-project with just Atmega328 (using analog comparator) and optionally LM1881? It's pretty similar.
https://www.rcgroups.com/forums/show...1473207&pp=100

If you can use anything from that project (code, hardware etc). feel free
The schematic with LM1881 is somewhere in the mess
Jun 02, 2013, 05:53 PM
Registered User
Quote:
Originally Posted by Dennis Frie
If you can use anything from that project (code, hardware etc). feel free
I already use the method of dimming and if you remember I asked you about this some time ago

sxosd (3 min 19 sec)


Sorry, not a good, but first example how OSD works. First time on the new EzStar FPV installation (+200gr). Uncomfortable flight. There are some problems with RC reciever signal (after last crash and soldering). And some interference comes from netbook (wifi) on the video

PS. GPS is DIY-module based on mtk3329 4Hz@4800bps
Last edited by sardonyx; Jun 03, 2013 at 03:48 AM. Reason: s/https/http/
Jun 07, 2013, 03:44 PM
Registered User
Very good.
works with 10Hz GPS module?
Jun 08, 2013, 03:50 PM
Registered User
Yep, this one
Name: CSC_0023.JPG
Views: 80
Size: 59.4 KB
Description:

This is self made 10Hz GPS module based on MTK3329 and runned at 4Hz. Because this is maximum update rate at 4800 bps with RMC & GGA strings. Speed higher than 9600 bps is unstable for my firmware. I can optimize my math, but I'm lazy. 10 Hz update rate for FPV - like megapixels for photocamera. Please show me a man, who can see, think and react less than 200-250 ms.

PS. I used minigps tool for MTK chipsets to change defаults
Last edited by sardonyx; Aug 29, 2013 at 02:51 PM.
Aug 29, 2013, 02:40 PM
Registered User
Here is HEX for sxosd with gps:
https://sxosd.googlecode.com/svn/trunk/sxosd.hex
and here for sxosd w/o gps (only timer,voltage for 2 batteries and rssi):
https://sxosd.googlecode.com/svn/trunk/sxosd_wo_gps.hex

For this firmwares rssi is in volts from 0 to 5V. For percentage download source files, edit config.h and make custom firmware.

I made new pcb for SMT with Kicad. Board dimensions: 35x45 mm. Weight: 9.5g. I'll upload soon board files

PS.
hfuse:0xC9
lfuse:0xFF
Last edited by sardonyx; Aug 29, 2013 at 02:56 PM.
Jan 19, 2015, 06:12 PM
Registered User
Hi there.
There are some changes from last time.

Firmware
Added:
  • displaying a number of satellites
  • a choice of arrows direction to the base: toward or away from the center
  • indication of climb/descent
  • a choice of displaying altitude: above sea level or above the base
  • a choice to turn off displaying coordinates
  • a choice to set frequency of updating GPS data (bottom of the screen)
  • a choice of dimming: dark, milk or none
  • NTSC support

Changed:
  • format of arrows to the base, now degrees are between arrows
  • voltages now updated 2 times per second

I wrote a GUI program to configure, complie and upload firmware to sxosd. The program (I call it sxosdctl) works in python/tkinter.

Windows toolchain with sxosd source and sxosdctl is here: http://sxlab.info/stuff/latest.zip [65M]

Hardware
I'd redevelop PCBs (not for DIYers). Now they looks like below.

Dimensions and weigth
SXOSD: 40х19 mm ,5 g
SXGPS: 30x17 mm, 9g
Jan 20, 2015, 12:51 AM
Registered User
You can sell naked boards for DIYers, remzibi did this and was successful.
Jan 20, 2015, 02:35 AM
Registered User
Yes, I know about it and I do not mind about naked boards. The problem is that I do not see any interest in the RCG community.

PS. Alexmx adopted u-osd firmware for sxosd board. I am grateful to him for that. There are some issues, but a big advantage is that I can isntall mcu with a bigger flash, like atmega168 or atmega328.
Jan 20, 2015, 02:40 AM
Registered User
Too many OSD on the market, and so few people interested today to build themselves.
For the APM ecosystem you simply can't compete MinimOSD, is too cheap and simple to worth building.
Most of the others who can't judge what they really want from an OSD were captured by Cyclops offering, they are not your target anyway.
Feb 18, 2015, 02:04 PM
Registered User

gray scale generation


Hello, I'm interesting on how do you manage to obtain 3 color.
I know that you put data on video with MOSI, D3 and R2. I think that you use R1 and R3 to make black backround and for gray text, but I don't understand how it work on electronics.
Can you explain this for me?

Thank!
Mar 27, 2015, 11:24 AM
Registered User
Hello. I asked a similar question Dennis four years ago
Here is what he said to me then.
Quote:
The dimming is simply done by pulling the video-signal down. In a normal analog video-signal the voltage represents the color. The higher voltage, the more bright color (like white), the lower voltage, the darker color (like black). To get a dark color you have to pull the video-signal down. You can check wikipedia for further description of video-signal etc.

In a microcontroller like atmega you can set a general I/O pin to be input or output. When set to input, it will use an internal resistor to limit the current. When set as output this resistor will not be used. By connecting the pin to the video-signal, you can toggle the dimming on/off by changing the pin between output and input. Output pin will allow the pin to drain. The resistor value between the pin and the video-signal will control how much you dim.
In my last firmware I was added a choice of dimming: dark, milk or none. This means that for black dimming I pull signal down through internal pin resistor and for milk dimming I pull signal up through external 1kOhm resistor. For non-dimming mode I use only mosi.
May 07, 2016, 01:43 PM
Registered User
One year later I get back to this project
I test puting data on the video line just using SPI to write 1's and 0's
I expeting that I will have white text (becouse of the 1's) over black background (becouse of the 0's) but I just have white text over transparent background
https://flic.kr/p/mPThAz

So I'm wondering how you manage PB0 to make black color around white text

Thank!

Quote:
Originally Posted by sardonyx
Hello. I asked a similar question Dennis four years ago
Here is what he said to me then.


In my last firmware I was added a choice of dimming: dark, milk or none. This means that for black dimming I pull signal down through internal pin resistor and for milk dimming I pull signal up through external 1kOhm resistor. For non-dimming mode I use only mosi.
May 07, 2016, 01:49 PM
Just another user
Dennis Frie's Avatar
Quote:
Originally Posted by elgarbe
One year later I get back to this project
I test puting data on the video line just using SPI to write 1's and 0's
I expeting that I will have white text (becouse of the 1's) over black background (becouse of the 0's) but I just have white text over transparent background
https://flic.kr/p/mPThAz

So I'm wondering how you manage PB0 to make black color around white text

Thank!
What hardware do you use?
Normally, there's a diode in series with the SPI used to generate the pixel-output, to ensure that SPI only affects the video-signal when set to high. If the SPI is active all the time (both when outputting 0 and 1) you will pretty much ruin the video-signal, unless you change the pin between output (low impedance source) and input (high impedance input)


Thread Tools

Similar Threads
Category Thread Thread Starter Forum Replies Last Post
Discussion CL-OSD a open source osd software for E-OSD and G-OSD callelj FPV Equipment 4155 Jan 09, 2017 05:13 AM
Build Log Super OSD ($90): Open Source Graphic OSD: Vario, 6xADC, Games, Datalog, Dual Video tom66 FPV Equipment 1928 May 24, 2014 11:07 AM
Discussion DIY Snow Skis - Yet another thread Nodd The Builders Workshop 10 Jan 28, 2013 05:12 PM
Discussion Open-source firmware for Cyclops OSDs mkuvy FPV Talk 50 Nov 22, 2012 03:04 AM
Discussion Open source OSD for FPV UFO_MAN FPV Talk 75 Sep 07, 2011 02:03 PM