CL-OSD a open source osd software for E-OSD and G-OSD - Page 133 - RC Groups
Thread Tools
Nov 29, 2012, 05:51 PM
Way to many airplanes!
Originally Posted by avt
The problem is I'm afraid to leave this very fragile soldering job on the board as is.
Thin coat of expoxy glue over that will fix things permanently. Sure enough, if something goes awefully wrong, then, you're screwed (though removing the epoxy is not impossible). No matter what, it's still better than not flying it because you're worrying about a loose connection.
Sign up now
to remove ads between posts
Nov 30, 2012, 01:20 AM
Hell Flyer
Originally Posted by RealGambler
Thin coat of expoxy glue over that will fix things permanently. Sure enough, if something goes awefully wrong, then, you're screwed (though removing the epoxy is not impossible). No matter what, it's still better than not flying it because you're worrying about a loose connection.
Good thinking. That's exactly what I'll do.
Dec 09, 2012, 02:52 PM
Registered User
I have this really strange problem with a few of my PAL cameras:

As you can see the OSD text shows in 2 places, it also flickers a bit. The camera image (showing it's internal OSD) however is fine.

I also connected an OSD with original firmware, and it has the same issue.

These cameras work fine with the more expensive OSDs that have a chip like the MAX7456 that actually processes the entire image.

Has anyone been able to fix this yet?
Dec 09, 2012, 09:39 PM

G-OSD flashed! Here's what I learned.

It was a full-day struggle, but I managed to flash my G-OSD to cl-osd. I still have to wire it into the video system on my EasyStar II before I'll know if it worked. All I can say now is that the solid LED power indicator has changed to a flashing LED power indicator.

The biggest complication was that my G-OSD apparently has the ATMEGA88PA chip, which was not recognized by AvrDude. That's fixed as described here I had to find the avrdude.conf file (it's here C:\WinAVR-20100110\bin), open with Notepad, locate the Atmega88 section within the .conf file, copy it and paste it in as a new section, and change the identifiers and signature as described in the avrfreaks post above. Figuring the changes wasn't easy (I'm not a programmer), so to help others, here's how it looks - changes are in BOLD (note the "f" in the signature line):

# ATmega88PA

id = "m88pa";
desc = "ATMEGA88PA";
has_debugwire = yes;
flash_instr = 0xB6, 0x01, 0x11;
eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00,
0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF,
0x99, 0xF9, 0xBB, 0xAF;
stk500_devcode = 0x73;
# avr910_devcode = 0x;
signature = 0x1e 0x93 0x0f;
pagel = 0xd7;
bs2 = 0xc2;
chip_erase_delay = 9000;

Once those changes are in place, the command to flash the G-OSD is:
arvdude.exe –p m88pa –c usbasp –U flash:w:cl-osd.hex –U eeprom:w:cl-od.eep
Last edited by mutski; Dec 10, 2012 at 02:51 AM.
Dec 11, 2012, 04:18 AM

CL-OSD help please!

I've flashed my new G-OSD with CL-OSD, and now I see nothing in the display but the circle for the Home arrow.

I have the Fatshark Predator glasses with the included camera, supposedly NTSC. I have just one battery connected to the G-OSD at present. I have also connected the GPS module and DORA for rssi display, both connected to a Y harness plugged into the data port on my AR6115 rx. I have a 600mw Immersion Vtx.

If I go into the config.h file and set #define COLORSYSTEM_NTSC //** I can see the circle for the Home arrow, but the vertical hold is off - I actually see a column of circles moving upward. I can also see shadows of the data flickering by across the rest of the screen.

If I comment out //#define COLORSYSTEM_NTSC //** (ie set to PAL), I see a stable screen with the Home arrow circle but no data display.

I'd be grateful if anyone can help me find the solution to this!

Here is my present config.h file:

************************************************** *************************************

/*cl-osd - A simple open source osd for e-osd and g-osd
Copyright (C) 2011 Carl Ljungström

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.*/

#ifndef SETUP_H_
#define SETUP_H_

#include "hardware.h"
#include <avr/io.h>

//NOTE: Most options can be disabled by commenting them out.
//This is done by inserting // at the start of the line.
//Some options depend on others so you might get an error if you mess around too much. :-)

// ------------------ MAIN CONFIGS -------------------------------------------------

// ----------- MAIN FEATURES --------------
//(Comment to disable)
#endif //GPS_ENABLED

// ----------- ALARMS --------------
//Alarms (Comment to disable)
#define ALARM_BATT1_LOW 11.40 //Warn if below this level (in volt)
#define ALARM_BATT2_LOW 11.40 //Warn if below this level (in volt)
#define ALARM_RSSI_LOW 50 //Warn if below this level (in %)
#define ALARM_SPEED_HIGH 55 //Warn if above this level (in kmph/mph)
#define ALARM_ALTITUDE_LOW 50 //Warn if below this level (in meters/feet)
#define ALARM_ALTITUDE_HIGH 400 //Warn if above this level (in meters/feet)
#define ALARM_DISTANCE_HIGH 5280 //Warn if below this level (in meters/feet)
//#define ALARM_CURRENT_HIGH 50 //Warn if above this level (in Ampere)
//#define ALARM_POWER_USAGE_HIGH 5000 //Warn if above this level (in mAh)

// ----------- SENSORS --------------
// Enabled sensors

// Battery voltage sensor

// Battery percentage sensor
#define SENSOR_CELL_LOW_VOLTAGE 3.8 //(Max two digits after the dot)

// RSSI sensor
#ifdef ANALOG_IN_3
#define SENSOR_RSSI_MAX_VOLTAGE 5.0 //(Max two digits after the dot)
//#define SENSOR_RSSI_REVERSED // If a low voltage value means high signal strength and vice versa, then enable this. (Thanks BlueAngel2000)

// Compass sensor
#define SENSOR_COMPASS_MIN_VOLTAGE 0.00 //(Max two digits after the dot)

// Current sensor (Settings for ACS758LCB-100U-PFF-T, might need to tweak a bit.)
// Peacefullhill says to use analog 2 since RSSI is less stable. Not tested by me.
#ifdef ANALOG_IN_3

// If your sensor is defined in mV/A and a 0A value us this calculation: (Thanks to kai)
// Max amp = Amp at max level.
// Min voltage = 0A voltage.
// Max voltage = (0A voltage) + (max amp) * ((mV/A) / 1000) = Max voltage
// For example we have a sensor with 40mV/A and 0.6V at 0A with max 100 Amps:
// Max amp = 100, Min voltage = 0.60, Max value = 0.6 + 100 * (40 / 1000) = 4.60
#define SENSOR_CURRENT_MIN_VOLTAGE 0.50 //(Max two digits after the dot)

// ----------- OTHER --------------

//#define TEXT_INVERTED_ENABLED //Make text transparent and background white.
//#define TEXT_SMALL_ENABLED //Enable small text. Might be buggy!
#define TEXT_USE_SPECIAL_CHARS //Use chars with non-ascii symbols.
//#define TEXT_COMPASS_ENABLED //Enable compass when no statistics is shown.

// Unit system
#define IMPERIAL_SYSTEM //Feet, mph etc...
//#define METRIC_SYSTEM //Meter, hm/h etc...

// Home pos set
// Note: Use at least one or you will never get a home pos!
// Comment out unwanted to disable
//#define HOME_SET_AT_FIX // Home position is set when GPS gets satellited fix.
#define HOME_AUTO_SET //Home position is set when a certain speed is exceeded.
#define HOME_SET_WITH_BUTTON //Home position is set when the little button on OSD is long pressed.
#define HOME_SET_FIX_COUNT 10 //Config for _SET_AT_FIX: After 10 successfully fixes, home is set.
#define HOME_FIX_MIN_SPEED 10 //Config for _AUTO_SET: More than 10 km/h sets home.
#define HOME_SET_MIN_SATS 4 //Config for _SET_AT_FIX: Set home only when more than 4 satellites. (Thanks to Yury Smirnov)

//#define GPS_DIYD //Use DIYD/APM binary protocol (Thanks to David Collett)
#define GPS_CAL_GOOGLE_LAT 7382 //Local calibration of Google GPS Lat (Truglodite)
#define GPS_CAL_GOOGLE_LON 4728 //Local calibration of Google GPS Long (Truglodite)
#define GPS_POS_ALWAYS_SHOWN_ENABLED // Always show gps position.

//Pre and post flight info
#define STATISTICS_MIN_SPEED_SHOW 3 //Under this speed the statistics will show.
#define STATISTICS_DELAY_SHOW 10 //It takes ten secs before the statistics is shown. (Higher is better for multicopters!)

//User data
#define TEXT_CALL_SIGN "KL3OL" //Set this to your call sign.

//VBI (Only for evaluation and development, not finished!)

#define TIME_HOUR_ENABLED //Enable time to show and count hours.

// Color system (Thanks to chatch15117)

//BUG fix for GOSDII GPS (gps unit sends km/h instead of knots)

//Screen and sensor refresh rate (Don't set too high!)

// ----------------- INTERNAL CONFIGS ---------------------------------------------

// ----------- CHECK SANITY --------------
#if (defined(IMPERIAL_SYSTEM) && defined(METRIC_SYSTEM)) || (!defined(IMPERIAL_SYSTEM) && !defined(METRIC_SYSTEM))
#error "Select one and only one unit system!"

#error "Can't use both RSSI and voltage 2 at the same time on this board."

#error "Can't use both TEXT_COMPASS_ENABLED and TEXT_GPS_POS_ALWAYS_SHOWN_ENABLED at the same time without changing the code!"

// ----------- TEXT --------------
#else //PAL

#define TEXT_LINES 6
#define TEXT_TRIG_LINES_LIST 25, 50, 135, 180, 210, 235 // Must be rising line numbers!
#else //PAL
#define TEXT_TRIG_LINES_LIST 50, 66, 170, 205, 255, 280 // Must be rising line numbers!



// ----------- GRAPHICS --------------
#define GRAPHICS_SIZE 24 // Multiple of 8
#define GRAPHICS_LINE 80
#else //PAL
#define GRAPHICS_LINE 105

// ----------- UPDATE LINE --------------
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
#define UPDATE_LINE 85
#else //PAL
#define UPDATE_LINE 110

// ----------- TEXT UNITS --------------


// ----------- SENSORS --------------

// Battery

// RSSI conversion

// Compass

// Current sensor

// ----------- GPS --------------
#define GPS_BAUD 4800
#define GPS_UBRR (F_CPU/16/GPS_BAUD-1)
#define GPS_MAX_CHARS 11

// ----------- OTHER --------------

// Alarm conversion
#define ALARM_BATT1_LOW_INT (uint16_t)(ALARM_BATT1_LOW*100)
#define ALARM_BATT2_LOW_INT (uint16_t)(ALARM_BATT2_LOW*100)

// CPU speed
#define F_CPU 24000000UL

#define NULL 0

#endif /* SETUP_H_ */
Dec 11, 2012, 06:51 AM
Way to many airplanes!
You have to write two files.... The second one is the text! You probably only wrote the code itself but forgot to write the second file.

Just curious: The AR6115X as a data port you can use for the DORA???
Dec 11, 2012, 12:57 PM
RealGambler -

As for the Ar6115, I plugged DORA into the "bind/data" port. Check the pic This is untested since I can't get any text to appear on the screen.

Im not sure what you mean by a separate text file. I do think I'm sending text, because when I use #define COLORSYSTEM_NTSC I can see rows of marks on the screen, some of which flash on and off as though the alarms are working. The text just isn't translated into any readable characters.

When I "Build CL-OSD" using Atmel Studio 6.0, that produces two files in the G-OSD file: cl-osd.hex, and cl-osd.eep. When I flash the G-OSD chip, I'm thinking that uploads both? I have been following the instructions here: What am I missing?

I'm wondering if the problem could be because I seem to have the atmega88PA chip, instead of the atmega88, or if it could be that I'm using Atmel Studio 6 instead of Atmel Studio 5?

Avrdude didn't work until I followed the instructions for the atmega88PA chip, as described in my post above. I didn't completely understand what I was doing, but I found this in a HobbyKing post, "Only major issue is that my version of the G-osd has an atmega 88PA, not a 88, as describer. I only had to add -F to the avrdude instructions and it worked fine." Hence I changed the "a" to an "f" in the signature line in the .conf file. (signature = 0x1e 0x93 0x0f. Then Avrdude recognized and flashed the chip, so I'm assuming I have the atmega88PA.
Last edited by mutski; Dec 11, 2012 at 01:10 PM.
Dec 11, 2012, 07:01 PM
Way to many airplanes!
Sorry Mutski, my previous msg was somewhat misleading, simply because I quickly typed it on my phone...

What I meant to say was: When you see the circle, but nothing else, usually, it's the second part that is missing: the EEPROM part This is where the fonts are stored, so no fonts, nothing written on screen.

But you say you use AVRDude, which, should program both if you use the recommended line:

avrdude.exe -p m88 -c usbasp -U flash:w:cl-osd.hex -U eeprom:w:cl-osd.eep (original line, but you modify it for the 88PA chip).

Normally, at this point, you should only have to reflash the eeprom part or cl-osd.eep

Again, keep in mind, I'm not a pro, but you're getting there. Other may have better advices!

About your receiver: If there's a data port, you will likely be ok. But if the RSSI doesn't work (after you fix your display), don't blame the DORA right away. Spektrum receivers are often strange with that data port. Read again to make sure it's not your receiver. (But again, it does look ok, so don't worry about it for now!)
Dec 11, 2012, 09:29 PM
I deleted Atmel 6.0, installed Atmel 5.0.1163 instead, flashed again and now I can see everything! Hence, the problem appears to be in Atmel 6.0 - maybe incompatible with the cl-osd files?

Unfortunately 6 degrees F and snow today, so I can't go fly. Supposed to be snow tomorrow and then -45 degrees It might be a while before I get in the air. For now, I can at least report that the voltage reading works. I turned on the Spektrum Tx and the rssi signal went from 0 to 96%. GPS reads within .27 miles of present coordinates. GREAT SIGH OF RELIEF!

The next project is to decide where to stash the pile of wire and circuit boards - tape to the outside or cut a hatch in the belly.
Last edited by mutski; Dec 11, 2012 at 10:02 PM.
Dec 13, 2012, 04:45 PM
RC pilot by soul

im trying to flash my G-OSD (V1) to CL-OSD and im using the Atmega 88PA code - and the flash goes well, but this is the result - only some white blur in the middle of the screen - see attached.

any idea why ?

i found this post with a solution to a similar problem:

so i changed the fuses and now i see the OSD !

BUT, i only see the "home arrow circle" and thats it ?? any idea why ?
BTW this happend with both the latest SVN version and a much older version from a few months ago which i have saved on my computer.
Last edited by i3dm; Dec 13, 2012 at 04:58 PM.
Dec 13, 2012, 05:01 PM
RC pilot by soul
Sure enough, camera was NTSC, i enabled define_colorsystem_NTSC and all is well
Dec 13, 2012, 05:51 PM
RC pilot by soul
All problems solved working great.
Last edited by i3dm; Dec 13, 2012 at 06:25 PM.
Dec 17, 2012, 12:56 AM
Registered User
I up firmware CL-OSD R111 and result :
I use camera 600tv line PAL with tx video 5,8ghz, G-OSD 2 from hobbyking.
I set in config.h.
// ----------- GRAPHICS --------------
#define GRAPHICS_SIZE 24 // Multiple of 8
#define GRAPHICS_LINE 80
#else //PAL
#define GRAPHICS_LINE 198

Help me !
Dec 17, 2012, 04:13 PM
Registered User
Originally Posted by Atx_Heli
Rob, my code is not in the repository....its in post #1916 of this thread

also, might want to try a compile with the Statistics has a bug in that mode for the display...I'm sorry I have since forgotten what it was....but here is the same code I put in #1916 that has been fixed for when you don't want Statistics displayed....which I don't since they are bogus due to the occasional speed and altitude outliers...I have not tried it again with Statisitcs reenabled so I dont know if my code fix in layout.h works when enable the Statistics works now when it isnt at least...

since I am not playing in the repository, I didnt note what the bug was Trog, but it has to do with line 3/4 display without statistics...sorry

anyway, if you want Statistics, use the code in #1916...otherwise, this works without...

been flying a lot with it now, and am flashing another one for my SlowStick with this code...
Hi Atx_heli, Truglodite and all!
Great Job, all of you! I flashed my G-osd with truglodite Cl-osd first Mod (caliberating GPS cordinates, GPS cordinates always on) about 3-4 months ago ans since it worked flawless (except Alt was very inacurate) I didn't visit this thread lately. What a massive progress!!!
Atx_heli- I want to flash your version from post 1925 to my Gosd but I use PAL system, and preffer Metric units... Can you please guide me what and where should I change in the code to get metric units and Pal display? I'm sure it will help other non-Americans
Aditionally, I am a bit afraid about that mod you made that the GPS cordinates data will only shown bellow 200ft... What if due to some failure the aircraft loose power and fall quickly to the ground? As I seen from my experience with this board, the data refresh a little bit slow, the aircraft might fall too quickly for the GPS cordinates to appear before video signal is lost, isn't it? I preffer to have GPS cordinates visible at all times, what should I change in your code to have this? Other than that (I believe it is a matter of personal like) your version looks superior, so much better compared to the original Cl-osd version, not to mention G-osd mini II original version

Truglodite- as the pioneer of the new stage of development in this code you deserve a lot of credit, all of you guys made incredible work out of this tiny cheap OSD... I am currently writing a summary guide to CL-osd modification from Mini G osd II for my local comunity, it is just wonderfull to see this evolution since the last time I was here...
Last edited by Friman; Dec 18, 2012 at 02:29 AM.
Dec 18, 2012, 06:43 AM
Registered User
Originally Posted by Friman
Atx_heli- I want to flash your version from post 1925 to my Gosd but I use PAL system, and preffer Metric units... Can you please guide me what and where should I change in the code to get metric units and Pal display? I'm sure it will help other non-Americans
Aditionally, I am a bit afraid about that mod you made that the GPS cordinates data will only shown bellow 200ft...
to change units...look for the section //Unit system in config.h
to change video...look for and comment out "#define COLORSYSTEM_NTSC" in config.h
to have gps on all the layout.h comment out the line "if (gGpsLastValidData.pos.altitude - gHomePos.altitude < 200)// only show if below 200 ft"

Thread Tools

Similar Threads
Category Thread Thread Starter Forum Replies Last Post
Build Log Super OSD ($90): Open Source Graphic OSD: Vario, 6xADC, Games, Datalog, Dual Video tom66 FPV Equipment 1928 May 24, 2014 12:07 PM
Discussion Open Source Remote Control System (OSRC) Gizmoman31 Radios 152 Apr 24, 2012 07:01 PM
Discussion Open source OSD for FPV UFO_MAN FPV Talk 75 Sep 07, 2011 03:03 PM
Question Open Source Octo Design Available...Looking for someonw who can cut a copy for me... Schatham421 Multirotor Drone Talk 14 Apr 12, 2011 06:22 PM