View Single Post
Old Nov 24, 2012, 08:10 AM
Dennis Frie is offline
Find More Posts by Dennis Frie
Just another user
Dennis Frie's Avatar
Denmark, Capital Region of Denmark, Naerum
Joined Feb 2011
1,369 Posts
Diy osd (MAX7456 version, OpenSource)

This thread is mainly a deviation of the original "Diy osd (Arduino and opensource)" project.
By using a MAX7456 OSD-chip instead, this makes it a lot easier to implement extra sensors and features.

Flight from Mike_o
FPV Falcon Flying Wing, Seaside (4 min 26 sec)

Early test
Another OSD test (2 min 37 sec)

There is a lot of possibilities available in the config-file, some of them are:
  • Speed from GPS
  • Altitude from GPS
  • Altitude from pressure sensur
  • Bar showing sink/lift for thermal(with BMP085 pressure sensor)
  • Sink/lift rate shown as number (with BMP085 pressure sensor)
  • Flight timer
  • LOS/Distance home
  • Battery-voltage
  • Battery-current
  • mAh used
  • Direction home
  • Plane position relative to yourself
  • Small GPS coordinates
  • PAL and NTSC support
  • Flexible layout
  • Low voltage alarm
  • mah alarm
  • Metric and imperial support
  • PPM input
  • Menu controlled with RC-transmitter (require PPM)
  • Plane direction relative to your home-position (used to point antenna etc)
  • Button to reset home-position
  • Support for EzUHF RSSI and link quality in PPM-stream.
  • Number of satellites
  • Avg mah/km
  • Current mah/km
  • Km left with current usage
  • Callsign
  • Auto baud detection
  • Menu system
  • different start-functions for flight-timer
  • Temperature control (for weather-balloon)
  • Servo-release on failsafe (for weather-balloon)

Furthermore, the flight-summary will show:
  • Max altitude
  • Max Speed
  • Max LOS
  • Total distance
  • Avg. speed
  • More?

Max LOS is increased to around 500km

An Atmega328 microcontroller is used to do all the data-processing and a MAX7456 OSD-chip is used to make the video-overlay. It can be made with an Arduino and MAX7456 breakout-board, uploaded to other OSD's using MAX7456 and Atmega controller etc.

Code can be found at:
Can't upload to google code anymore, newest version can be found here

Latest version
(NOTE: Caps mounted wrong on picture)

The first test-version

Hook-up diagram by Rick:

(Note - attopilot have voltage-divider build-in and should not have extra voltage-divider as shown here)

Known "issues":
  • Altitude limited to 9999 (feet or meter doesn't matter)

The hardware

The project is compatible with Arduino, but a dedicated hardware design is developed as well.

The latest version of the PCB can be found here:

PCB can be ordered from Seeedstudio, BatchPCB, OSHpark or similiar.
Seeedstudio is 14$ for 10 pieces shipping included.

Just upload the file "OSD_PCB_V1_1.rar" and you are good to go. (If you order from BatchPCB you need to upload as a zip-file, and GM1 must be chosen as board outline).

The list of components can be found here (List made by Bob4432 - thanks):
(Please be aware that crystals should be 16MHz = 887-1086-1-ND and 27MHz = 887-1093-1-ND)

Mouser-list (List made by bstott2 - thanks)

Component placement:

A little explanation of the different components>

1) The slow decoupling-caps are meant as energy-storage, to maintain a stable supply-voltage. They have been placed, to act as a little filter if camera and video-transmitter are connected directly.
2 x 22uF, 10V, X5R, 1206
7 x 10uF, 10V, X5R, 0805

2) Theses caps are used to remove high-frequency noise, and supply the fast current needed for MAX7456 and Atmega328P.
5 x 100nF, 10V, X7R, 0805

3) This is used to AC-couple the output video-signal. The input-video signal is AC-coupled with a small 100nF capacitor, as the input is high-impedance.
2 x 47uF, 6.3V, tantalum, 1206

4) This is the voltage-divider used to measure battery-voltage. 3.3K and 10K have been chosen as default for 4S max.
1 x 3.3K 0805 1%
1 x 10K 0805 1%

5) Resistors used to set the video-impedance. The normal video-impedance is 70 ohm.
2 x 75R 0805 1%

6) Load crystals for Atmega 16MHz crystal
2 x 22pF, NP0, 0805 (perhaps 0603 as the space is a little tight)

7) Pull-up resistors for the Sync-signal etc. on MAX7456 and also a series-resistance on RSSI-input (can be used as any analog input)
4 x 1K 0805 1%

8) Pull-up resistor for Atmega reset-pin
1 x 10K 0805 1% (Note 10K resistor is also used in default voltage-divider)

9) Caps for the 3.3V regulator used for I2C devicces.
2 x 1uF, 10V, X7R 0805

It's a free project with open hardware-design and OpenSource. I have no intention to actually earn money on this project, but as a few have expressed, that they would like to donate a little for the time spent and money used on development etc. I've added a donate-button.

I've started a short documentation, but it's yet pretty small.
Dennis Frie is offline Find More Posts by Dennis Frie
Last edited by Dennis Frie; Mar 31, 2014 at 11:54 AM.
Reply With Quote