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
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
- 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
- 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
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
(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)
- Altitude limited to 9999 (feet or meter doesn't matter)
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)
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.