MyLifeSucks.de Logo News | Fireblade Repsol | Webcam Kiel | BlinkenCUBE | Open Source MAX7456 OSD Software | HiFi & Heimkino | Ehemalige Hebbelschüler ABI 2003 | Über mich/Impressum

oss/c-osd


This project is my attemp to write an open-source software for the well known EPi-OSD which is based on the popular MAX7456 by MAXIM.
The name somehow derives from the language it is written in or my nickname or my real name, the choice is up to you.

So maybe you want to know what this is all about, let's take a look at a screenshot:
2010 screenshot of C-OSD


MK FPV with newest C-OSD release from Le Phisto on Vimeo.

The config menu:
C-OSD menu in action
The statistic screen:
C-OSD stats in action

Why all this?

wiring during programming of the c-osd Back in 2008 I made a little helper-script called max7456 chars made easy (german page) to generate characters for such OSDs. The script is still working and helped me a lot making characters that suited my needs. You can still use it for making own chars, it is also mentioned in the source-code.
The original software was closed source and it held the project somehow to a lower level than it could have been till now. There were other projects using the chip as well but somehow nobody from the MikroKopter-Community, which is the community around the remote controlled quadrocopter the OSD was developed for, made the effort to start an open-source version that will run on the great hardware.
At 23rd of March 2009 I came home earlier than I thought from a night out and wanted to do something productive, this is it.

How can I use it?

Best chance is to buy yourself an EPi-OSD and solder it. Afterwards just take the precompiled .hex-files or compile the source on your own and flash it. Maybe a MikroKopter would be useful as well, or you adapt the sources to whatever you like, this is Spart^WOpenSource!
all characters inside the max7456 eeprom Start with the C-OSD-characters-pal.hex (or -ntsc.hex) file. Flash it and wait till the character screen appears and all the four LEDs are on, it indicates that the writing is finished. During the time it takes the Atmega162 to teach the MAX7456 the characters LED3 (one of the two green ones) will be blinking, indicating that there is still some stuff to do.
You should end up in a screen like the one to the right showing the complete character set that is on your MAX7456 now.
You may have noticed that my characters (greetings to MarCopter who flooded me with more and more characters that I should use and am allowed to use) do not overwrite the original EPi-Chars, so you can easily switch back to EPi-Software without reflashing all the characters. Maybe some day there are more chars we need, but as long as it can be this way, why not doing it?Since there are so many cool characters people made it was time to go and overwrite some EPi-characters. Sorry.
Now you can flash the -pal.hex or -ntsc.hex according to your needs (you still can change the Video-Mode later, but the default mode is set within the different files) and start whining^Wbegging for support, most likely there will be some. But hey, the sources are open, help yourself!

Some hints:
FuseBits using AVR Studio
FuseBits using PonyProg
Which means, speaking in hex:
EXTENDED: 0xFB
HIGH: 0xD7
LOW: 0xEF

Some command line hints:
Test the connection (reads out the Fuse-Bits):


Set the fuse-bits:


Flash a firmwarefile:


You might want to change COM1 or /dev/ttyS0 according to you operating system and your needs.

The simplest way (at least for me) is using a USBprog which is a cheap open source AVRISP mkII clone. It has more features than cloning this one device, but I am using it for it. The whole flashing stuff is much faster than with a normal serial ISP-device and it works directly out of AVRStudio. So you can hit compile and flash and have your current code in about 2-3sec on the chip, good for the try-and-error-coders like myself in some parts of especially this very piece of software.
I made a little video-tutorial about flashing the software to the EPi-OSD board, this might be helpful:

Discussions?

Since this somehow is for the MikroKopter I started a discussion thread about this in their forum:
C-OSD - Die open-source Software fuers EPi-OSD
The Thread is mostly in german but you are invited to ask questions in english as well, so do not hesitate!
Some of the French buddys started a thread about this in their Forum as well, so if you are native French they might be able to help you. Check out EPI-OSD en OPEN SOURCE : C-OSD, but remember that I personally do not speak french at all and I am not constantly checking out the french forum.

Custom Characters?

character definitions for C-OSD Feel free to Design your custom chars, the .mcm file is in the SVN trunk and a recent version will be here:
c-osd.mcm
which looks like the one to the right.
The characters used in this software are somehow community choice,... Somehow because I still was the one having the last word till now. Make some good ones and maybe they will get in the next release.
There are several ways to paint custom chars:

Known Problems?

  • When using the EPi-OSD, NaviCtrl and another Pc-Connection (direct or via wireless connections like bluetooth, WI232, WiFi and such) on the same wire there might be data collisions causing laggy screen updates, and in some hypothetical cases that are not scientifically proven, harm to the Atmega and other attached Hardware. So it is not recommended to use the stuff like that, altough some people are and not experiencing any problems at all.
  • Software may fry your cat when flashing the micro-oven with it, or even when using the software near a micro-oven.

Downloads?

So you got interested? Really?

You can just simply try out the precompiled hex-files:
C-OSD-20100218-2330.zip (~90k)
C-OSD-20100214-1700.zip (~93k)
C-OSD-20091102-2205.zip (~92k)
C-OSD-20090714-2100.zip (~92k)
C-OSD-20090706-2000.zip (~89k)
C-OSD-20090627-1415.zip (~88k)
C-OSD-20090612-2100.zip (~248k)
C-OSD-20090604-1350.zip (~248k)
C-OSD-20090601-2233.zip (~143k)
C-OSD-20090525-2305.zip (~145k)
C-OSD-20090523-1150.zip (~140k)
C-OSD-20090519-2245.zip (~139k)
C-OSD-20090519-0115.zip (~135k)

Acces the current sourcecode via SVN (you need to be registered over at the MikroKopter-Forum, your login-data will work for the svn as well:
svn co http://mikrokopter.de/mikrosvn/Projects/C-OSD

You can also browse the files of Projects/C-OSD/ online via webbrowser using
WebSVN Projects/C-OSD/

Or get some snapshots of the source:
C-OSD-20090408-1245-src.zip (~44k)
C-OSD-20090329-1452-src.zip (~23k)

The tools I am using are AVR Studio 4.16 (build 628) with WinAVR-20081205. Or on my laptop it is gcc version 4.3.2 (GCC) with Target: avr and some mixture of vi, NetBeans and gedit :)
I am not that picky regarding those stuff, as long as the tools are doing their job without a struggle I am happy. So pick whatever you prefer for yourself.

FAQ - Frequently Asked Questions

Why is the OSD only black and white?
Because the MAX7456 is not capable of generating colorful characters.
Can I use Bluetooth/WI232 along with the OSD?
Yes. Look at a sample picture with WI232 attachd and you should see how. The WSL 10SK inside the picture is just a sample, there might be better connectors available.
There is nothing been displayed after a successfull firmware flash. What am I doing wrong?
Hopefully nothing. There is nothing shown till valid data arrives, so if you have not connected a FC or NC you will not see anything except for the menu, is should work when pressing the buttons.
C-OSD rocks, I am willing to donate some cents as a little thank you. May I?
If you are not expecting anything from it like additional support or integration of feature XYZ you can donate via PayPal:

Last changes?

  • 14. Feb 2010: Updated NC structs to 18c, added fc-current support, made cell guessing more stable
  • 02. Nov 2009: Added NC/FC Version display and updated structs to FC 0.76e // NC 0.17e
  • 06. Jun 2009: Added a Video-HowTo about flashing, minimal nc-mode layout can be chosen in menu
  • 25. May 2009: Settings can now be saved, HUD can be toggled using RC-Channel.
  • 19. May 2009: Some stuff regarding interfacing the EPI-S with my own firmware.
  • 14. May 2009: A lot of changes including a version for FC-Only.
  • 27. April 2009: Indication Icons for Manual Control and Serial Link.
  • 17. April 2009: A lot of new characters added.
  • 06. April 2009: Data struct changed to work with new NaviCtrl 0.15c release. Rewritten config menu.
  • 02. April 2009: txd-pin gets disabled if not in use, data is re-requested if none has been coming in for 2s, more precise variometer (by shaddi)
  • 31. March 2009: More statistics and little config menu controll, see README.TXT
  • 30. March 2009: Moved over to the MikroKopter SVN
  • 29. March 2009: More fixes in binary release. Statistics added. SOURCES released
  • 27. March 2009: First fixes in binary release
  • 26. March 2009: First binary release
  • 23. March 2009: Initiated project
Valid XHTML 1.0! Valid CSS