I've had this g-osd for couple years already which lacked few features. There was very promising project coming up on rcgroups which stated that we'll be able to have better firmware for those el-cheapo OSD's.
I have no experience with chip programming whatsoever so i thought this is going to be really complicated, keeping in mind that i have ubuntu linux computer.
So i bought this cheap programmer off ebay (more permananent link from dx instead) , called "USBASP USBISP Downloader Programmer for 51 AVR". Was really cheap, like 5$ shipped.
Use picture from project site (see G-OSD pic) as a reference to solder of wires in place. Test which is correct wire and solder down connector pins.
Download subversion if you don't have any
# sudo apt-get install subversion
Download latest cl-osd code:
# svn checkout http://cl-osd.googlecode.com/svn/trunk/
Install avrdude on ubuntu, like this
# sudo apt-get install avrdude
Then change into cl-osd directory
cd trunk
Note: if you plan changing anything, this is the source. Otherwise (and i suggest doing that for the first time, just change directory that contains pre-compiled binaries.
# cd G-OSD
Connect the programmer (and the OSD device), programm chip like this:
# sudo avrdude -p m88 -c usbasp -U flash:w:cl-osd.hex -U eeprom:w:cl-osd.eep
This didn't work out for me because of some errors, so i forced the flash:
# sudo avrdude -p m88 -c usbasp -U flash:w:cl-osd.hex -U eeprom:w:cl-osd.eep -F
Then some upload progress happened and less than minute later i was ready to hook it up to video link again. And it works!