Subversion Repositories Projects

Compare Revisions

Ignore whitespace Rev 379 → Rev 383

/C-OSD/trunk/CHANGE.LOG
18,10 → 18,18
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
****************************************************************************/
 
20090418-2015
*fixed bug in Character Set 128 (reflash it if you already flashed it!)
+another set of vario chars
*changed vario to use new characters
*moved vario/home-bearing positions
*big vario now enabled via menu or BIGVARIO
(Character Set 112 needs to be flashed)
20090418-1235
+big vario for testing purpose
(Character Set 192 needs to be flashed)
 
20090418-0100
*variometer uses more steps (9 instead of 5)
*home-arrow is now home-clock using more steps (22,5° resolution)
/C-OSD/trunk/c-osd.mcm
7176,55 → 7176,51
01010101
01010101
01010101
01010110
01010101
01010101
01010110
01010101
01010101
01010110
01010101
10101010
01010110
10101010
01010110
01101010
10010101
01011001
01010101
10010101
01011001
01010101
10010101
10100101
01010101
01100101
01010101
01010101
01100101
01010101
01010101
01100101
01010101
01010101
01100101
01010101
01010101
01100101
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01010101
01010101
01010101
01000001
01010101
01010101
00101000
01010101
01010100
10101010
00010101
01010010
10101010
10000101
01001010
10101010
10100001
00101010
10101010
10101000
00000000
00000000
00000000
01010101
01010101
01010101
7246,42 → 7242,49
01010101
01010101
01010101
01010110
10101010
10010101
01010101
01010101
10010101
01010101
01010101
10010101
01010101
01000001
01010101
10010101
01010101
00101000
01010101
10010101
01010100
10101010
00010101
01010010
10101010
10000101
01001010
10101010
10100001
00101010
10101010
10101000
00000000
00000000
00000000
01010101
00101000
01010101
10010101
01010101
01010101
10010101
01010101
01010101
10010101
01010101
01010101
10010101
01010101
01010101
10010101
01010101
01010101
10010101
01101010
01010100
10101010
00010101
01010010
10101010
10000101
01001010
10101010
10100001
00101010
10101010
10101000
00000000
00000000
00000000
01010101
01010101
01010101
7293,121 → 7296,123
01010101
01010101
01010101
00101000
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010110
01010100
10101010
10101001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
00010101
01010010
10101010
10101001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010110
10000101
01001010
10101010
10101001
10100001
00101010
10101010
10101000
00000000
00000000
00000000
01010101
00101000
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01011010
01010100
10101010
10100101
00010101
01010010
10101010
10000101
01001010
10101010
10100001
00101010
10101010
10101000
00000000
00000000
00000000
01010101
00101000
01010101
01010101
01010101
01010101
01010101
01101010
01010100
10101010
10101001
00010101
01010010
10101010
10000101
01001010
10101010
10100001
00101010
10101010
10101000
00000000
00000000
00000000
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01100101
01010101
01010101
01100101
01010101
00000000
01010101
10010101
01010100
00000000
00010101
01010000
00000000
00000101
01000000
00000000
00000001
00000000
00000000
00000000
00000000
00000000
00000000
01010101
01011010
00000000
01010101
01010100
00000000
00010101
01010000
00000000
00000101
01000000
00000000
00000001
00000000
00000000
00000000
00000000
00000000
00000000
01010101
10100101
00000000
01010101
01011010
01010100
00000000
00010101
01010000
00000000
00000101
01000000
00000000
00000001
00000000
00000000
00000000
00000000
00000000
00000000
01010101
01010101
01010101
7418,11 → 7423,59
01010101
01010101
01010101
00000000
00000000
00000000
00000000
00000000
00000000
01000000
00000000
00000001
01010000
00000000
00000101
01010100
00000000
00010101
01010101
00000000
01010101
00000000
00000000
00000000
00000000
00000000
00000000
01000000
00000000
00000001
01010000
00000000
00000101
01010100
00000000
00010101
01010101
00000000
01010101
00000000
00000000
00000000
00000000
00000000
00000000
01000000
00000000
00000001
01010000
00000000
00000101
01010100
00000000
00010101
01010101
00000000
01010101
01010101
01010101
7434,46 → 7487,108
01010101
01010101
01010101
01100101
01011001
00000000
00000000
00000000
00101010
10101010
10101000
01001010
10101010
10100001
01010010
10101010
10000101
01010100
10101010
00010101
01010101
01100101
01011001
00101000
01010101
01100101
01011001
00000000
00000000
00000000
00101010
10101010
10101000
01001010
10101010
10100001
01010010
10101010
10000101
01010100
10101010
00010101
01010101
01100101
01011001
00101000
01010101
01100101
01011001
00000000
00000000
00000000
00101010
10101010
10101000
01001010
10101010
10100001
01010010
10101010
10000101
01010100
10101010
00010101
01010101
01100101
00101000
01010101
01010101
01100101
01010101
01010101
01100101
01010101
01010101
10010101
01010101
01010101
10010101
01010101
01010101
10010101
01010101
01010110
00000000
00000000
00000000
00101010
10101010
10101000
01001010
10101010
10100001
01010010
10101010
10000101
01010100
10101010
00010101
01010101
00101000
01010101
01011001
00000000
00000000
00000000
00101010
10101010
10101000
01001010
10101010
10100001
01010010
10101010
10000101
01010100
10101010
00010101
01010101
00101000
01010101
10100101
01010101
01000001
01010101
01010101
01010101
7500,43 → 7615,30
01010101
01010101
01010101
01011001
00000000
00000000
00000000
00101010
10101010
10101000
01001010
10101010
10100001
01010010
10101010
10000101
01010100
10101010
00010101
01010101
01010110
01011001
00101000
01010101
01010110
01011001
01010101
01010110
01011001
01000001
01010101
01010110
01011001
01010101
01010110
01011001
01010101
01010110
01011001
01010101
01010110
01011001
01010110
01010110
01011001
01010110
01010110
01011001
01011001
01011001
01011001
01100101
01011001
01011001
10010101
01100101
01011010
01010101
01010101
01010101
7563,44 → 7665,24
01010101
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01011001
01011001
01010101
01011001
01011001
01010101
01100101
01011001
01010101
10010101
01011001
01010110
01010101
01011001
01101001
01010101
01011010
10010101
01010101
01010101
01010101
7612,24 → 7694,6
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01101010
10101010
10101001
7645,77 → 7709,13
01100101
01010101
01011001
01100101
01010101
01011001
01100101
01010101
01011001
01100101
01010101
01011001
01100101
01010101
01011001
01100101
01010101
01011001
01100101
01010101
01011001
01101010
10101010
10101001
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01101010
10101010
10101001
01100101
01010101
01011001
01100101
01010101
01011001
01100101
01010101
01011001
01100101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01100101
01010101
/C-OSD/trunk/characters.c
25,6 → 25,89
// flashing more than 8 chars per time is not proven to be safe
// so take care
 
#if WRITECHARS == 112
// one arrow up
unsigned char c70[54] ={0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x55, 0x55, 0x41, 0x55, 0x55, 0x28, 0x55, 0x54,
0xaa, 0x15, 0x52, 0xaa, 0x85, 0x4a, 0xaa, 0xa1,
0x2a, 0xaa, 0xa8, 0x00, 0x00, 0x00};
 
// two arrows up
unsigned char c71[54] ={0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x41, 0x55, 0x55, 0x28, 0x55, 0x54, 0xaa, 0x15,
0x52, 0xaa, 0x85, 0x4a, 0xaa, 0xa1, 0x2a, 0xaa,
0xa8, 0x00, 0x00, 0x00, 0x55, 0x28, 0x55, 0x54,
0xaa, 0x15, 0x52, 0xaa, 0x85, 0x4a, 0xaa, 0xa1,
0x2a, 0xaa, 0xa8, 0x00, 0x00, 0x00};
 
// three arrows up
unsigned char c72[54] ={0x55, 0x28, 0x55, 0x54, 0xaa, 0x15, 0x52, 0xaa,
0x85, 0x4a, 0xaa, 0xa1, 0x2a, 0xaa, 0xa8, 0x00,
0x00, 0x00, 0x55, 0x28, 0x55, 0x54, 0xaa, 0x15,
0x52, 0xaa, 0x85, 0x4a, 0xaa, 0xa1, 0x2a, 0xaa,
0xa8, 0x00, 0x00, 0x00, 0x55, 0x28, 0x55, 0x54,
0xaa, 0x15, 0x52, 0xaa, 0x85, 0x4a, 0xaa, 0xa1,
0x2a, 0xaa, 0xa8, 0x00, 0x00, 0x00};
 
// three black arrows up
unsigned char c73[54] ={0x55, 0x00, 0x55, 0x54, 0x00, 0x15, 0x50, 0x00,
0x05, 0x40, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x55, 0x00, 0x55, 0x54, 0x00, 0x15,
0x50, 0x00, 0x05, 0x40, 0x00, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x55, 0x00, 0x55, 0x54,
0x00, 0x15, 0x50, 0x00, 0x05, 0x40, 0x00, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
 
// three black arrows down
unsigned char c74[54] ={0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00,
0x01, 0x50, 0x00, 0x05, 0x54, 0x00, 0x15, 0x55,
0x00, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x40, 0x00, 0x01, 0x50, 0x00, 0x05, 0x54, 0x00,
0x15, 0x55, 0x00, 0x55, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x40, 0x00, 0x01, 0x50, 0x00, 0x05,
0x54, 0x00, 0x15, 0x55, 0x00, 0x55};
 
// three arrows down
unsigned char c75[54] ={0x00, 0x00, 0x00, 0x2a, 0xaa, 0xa8, 0x4a, 0xaa,
0xa1, 0x52, 0xaa, 0x85, 0x54, 0xaa, 0x15, 0x55,
0x28, 0x55, 0x00, 0x00, 0x00, 0x2a, 0xaa, 0xa8,
0x4a, 0xaa, 0xa1, 0x52, 0xaa, 0x85, 0x54, 0xaa,
0x15, 0x55, 0x28, 0x55, 0x00, 0x00, 0x00, 0x2a,
0xaa, 0xa8, 0x4a, 0xaa, 0xa1, 0x52, 0xaa, 0x85,
0x54, 0xaa, 0x15, 0x55, 0x28, 0x55};
 
// two arrows down
unsigned char c76[54] ={0x00, 0x00, 0x00, 0x2a, 0xaa, 0xa8, 0x4a, 0xaa,
0xa1, 0x52, 0xaa, 0x85, 0x54, 0xaa, 0x15, 0x55,
0x28, 0x55, 0x00, 0x00, 0x00, 0x2a, 0xaa, 0xa8,
0x4a, 0xaa, 0xa1, 0x52, 0xaa, 0x85, 0x54, 0xaa,
0x15, 0x55, 0x28, 0x55, 0x55, 0x41, 0x55, 0x55,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55};
 
// one arrow down
unsigned char c77[54] ={0x00, 0x00, 0x00, 0x2a, 0xaa, 0xa8, 0x4a, 0xaa,
0xa1, 0x52, 0xaa, 0x85, 0x54, 0xaa, 0x15, 0x55,
0x28, 0x55, 0x55, 0x41, 0x55, 0x55, 0x55, 0x55,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55};
 
learn_char(112, c70);
learn_char(113, c71);
learn_char(114, c72);
learn_char(115, c73);
learn_char(116, c74);
learn_char(117, c75);
learn_char(118, c76);
learn_char(119, c77);
#endif
 
#if WRITECHARS == 128
// kph
unsigned char c80[54] = {0x55, 0x55, 0x55, 0x45, 0x55, 0x55, 0x21, 0x55,
98,14 → 181,14
0x01, 0x21, 0x55, 0x55, 0x21, 0x55, 0x55, 0x21,
0x55, 0x55, 0x21, 0x55, 0x55, 0x45};
 
learn_char(128, c81);
learn_char(129, c82);
learn_char(130, c83);
learn_char(131, c84);
learn_char(132, c85);
learn_char(133, c86);
learn_char(134, c87);
learn_char(135, c88);
learn_char(128, c80);
learn_char(129, c81);
learn_char(130, c82);
learn_char(131, c83);
learn_char(132, c84);
learn_char(133, c85);
learn_char(134, c86);
learn_char(135, c87);
#endif
 
#if WRITECHARS == 136
/C-OSD/trunk/main.c
237,30 → 237,38
} else if (variometer > 0) { // gain height
switch (variometer / 5){
case 0:
write_char_xy(x, y, 0xba); // smallest arrow up
//write_char_xy(x, y, 0xba); // smallest arrow up
write_char_xy(x, y, 0x70); // one arrow up
break;
case 1:
write_char_xy(x, y, 0xb9); // small arrow up
//write_char_xy(x, y, 0xb9); // small arrow up
write_char_xy(x, y, 0x71); // two arrows up
break;
case 2:
write_char_xy(x, y, 0xb8); // large arrow up
//write_char_xy(x, y, 0xb8); // large arrow up
write_char_xy(x, y, 0x72); // three arrows up
break;
default:
write_char_xy(x, y, 0xb7); // largest arrow up
//write_char_xy(x, y, 0xb7); // largest arrow up
write_char_xy(x, y, 0x73); // three black arrows up
}
} else { // sink
switch (variometer / -5){
case 0:
write_char_xy(x, y, 0xbc); // smallest arrow down
//write_char_xy(x, y, 0xbc); // smallest arrow down
write_char_xy(x, y, 0x77); // one arrow down
break;
case 1:
write_char_xy(x, y, 0xbd); // small arrow down
//write_char_xy(x, y, 0xbd); // small arrow down
write_char_xy(x, y, 0x76); // two arrows down
break;
case 2:
write_char_xy(x, y, 0xbe); // large arrow down
//write_char_xy(x, y, 0xbe); // large arrow down
write_char_xy(x, y, 0x75); // three arrows down
break;
default:
write_char_xy(x, y, 0xbf); // largest arrow down
//write_char_xy(x, y, 0xbf); // largest arrow down
write_char_xy(x, y, 0x74); // three black arrows down
}
}
}
384,18 → 392,23
*/
void config_menu_drawings(uint8_t chosen) {
// clear prevoius _cursor_
write_ascii_string(3, (chosen + 6) % 7, " ");
write_ascii_string(3, (chosen + 5) % 8, " ");
// draw current _cursor_
write_ascii_string(3, chosen + 6, ">");
write_ascii_string(3, chosen + 5, ">");
if (COSD_FLAGS & COSD_FLAG_HUD) {
write_ascii_string_pgm(23, 5, ON);
} else {
write_ascii_string_pgm(23, 5, OFF);
}
if (COSD_FLAGS & COSD_FLAG_ARTHORIZON) {
write_ascii_string_pgm(23, 6, ON);
} else {
write_ascii_string_pgm(23, 6, OFF);
write_ascii_string_pgm(23, 6, OFF);
}
if (COSD_FLAGS & COSD_FLAG_ARTHORIZON) {
if (COSD_FLAGS & COSD_FLAG_BIGVARIO) {
write_ascii_string_pgm(23, 7, ON);
} else {
write_ascii_string_pgm(23, 7, OFF);
write_ascii_string_pgm(23, 7, OFF);
}
if (COSD_FLAGS & COSD_FLAG_STATS) {
write_ascii_string_pgm(23, 8, ON);
413,9 → 426,9
* some sort of clicking response in the menu
*/
void config_menu_doclick(uint8_t chosen, char** menu) {
write_ascii_string(4, chosen + 6, "DONE ");
write_ascii_string(4, chosen + 5, "DONE ");
_delay_ms(1000);
write_ascii_string(4, chosen + 6, menu[chosen]);
write_ascii_string(4, chosen + 5, menu[chosen]);
}
 
/**
428,8 → 441,9
// clear screen
clear();
char* menu[8] = {"Full HUD",
char* menu[9] = {"Full HUD",
"Art.Horizon in HUD",
"Big Vario bar",
"Statistics",
"Warnings", // TODO: do it!
"Reset uptime",
444,22 → 458,23
// wait a bit before doing stuff so user has chance to release button
_delay_ms(250);
 
write_ascii_string(4, 6, menu[0]);
write_ascii_string(4, 7, menu[1]);
write_ascii_string(4, 8, menu[2]);
write_ascii_string(4, 9, menu[3]);
write_ascii_string(4, 10, menu[4]);
write_ascii_string(4, 11, menu[5]);
write_ascii_string(4, 12, menu[6]);
write_ascii_string(4, 13, menu[7]);
write_ascii_string(4, 5, menu[0]);
write_ascii_string(4, 6, menu[1]);
write_ascii_string(4, 7, menu[2]);
write_ascii_string(4, 8, menu[3]);
write_ascii_string(4, 9, menu[4]);
write_ascii_string(4, 10, menu[5]);
write_ascii_string(4, 11, menu[6]);
write_ascii_string(4, 12, menu[7]);
write_ascii_string(4, 13, menu[8]);
 
config_menu_drawings(chosen);
 
while (inmenu) {
if (s2_pressed()) {
write_ascii_string(3, chosen+6, " ");
chosen = (chosen + 1) % 8;
write_ascii_string(3, chosen+6, ">");
write_ascii_string(3, chosen+5, " ");
chosen = (chosen + 1) % 9;
write_ascii_string(3, chosen+5, ">");
_delay_ms(500);
} else if (s1_pressed()) {
switch (chosen) {
471,30 → 486,34
COSD_FLAGS ^= COSD_FLAG_ARTHORIZON;
config_menu_drawings(chosen);
break;
case 2: // statistics
case 2: // big vario
COSD_FLAGS ^= COSD_FLAG_BIGVARIO;
config_menu_drawings(chosen);
break;
case 3: // statistics
COSD_FLAGS ^= COSD_FLAG_STATS;
config_menu_drawings(chosen);
break;
case 3: // warnings
case 4: // warnings
COSD_FLAGS ^= COSD_FLAG_WARNINGS;
config_menu_drawings(chosen);
break;
case 4: // reset uptime
case 5: // reset uptime
uptime = 0;
config_menu_doclick(chosen, menu);
break;
case 5: // re-request OSD data
case 6: // re-request OSD data
// request OSD Data from NC every 100ms
usart1_request_mk_data(1, 'o', 100);
config_menu_doclick(chosen, menu);
break;
case 6: // disable debug data
case 7: // disable debug data
// disable sending of debug data
// may result in smoother ddata display
usart1_request_mk_data(0, 'd', 0);
config_menu_doclick(chosen, menu);
break;
case 7: // exit
case 8: // exit
inmenu = 0;
break;
}
521,8 → 540,9
COSD_FLAGS = (NTSC << 0);
COSD_FLAGS |= (HUD << 1);
COSD_FLAGS |= (ARTHORIZON << 2);
COSD_FLAGS |= (STATS << 3);
COSD_FLAGS |= (WARNINGS << 4);
COSD_FLAGS |= (BIGVARIO << 3);
COSD_FLAGS |= (STATS << 4);
COSD_FLAGS |= (WARNINGS << 5);
 
// set up Atmega162 Ports
DDRA |= (1 << PA1); // PA1 output (/CS)
681,7 → 701,10
write_char_xy(5, top_line, 203); // km/h
write_char_xy(10, top_line, 202); // RC-transmitter
write_char_xy(16, top_line, 208); // degree symbol
write_char_xy(27, top_line, 204); // small meters m
write_char_xy(27, top_line, 204); // small meters m height
write_char_xy(20, top_line+1, 0xb0); // left circle
write_char_xy(22, top_line+1, 0xb2); // right circle
write_char_xy(27, top_line+1, 204); // small meters m home
//write_ascii_string(6, bottom_line, "V"); // voltage
write_char_xy(14, bottom_line, 209); // on clock
write_char_xy(22, bottom_line, 210); // fly clock
705,9 → 728,7
} else if (rxd_buffer[2] == 'O') { // NC OSD Data
Decode64();
naviData = *((NaviData_t*) pRxData);
 
draw_big_variometer(27, 8, naviData.Variometer);
 
// first line
write_ndigit_number_u(2, top_line, (uint16_t) (((uint32_t) naviData.GroundSpeed * (uint32_t)9) / (uint32_t)250), 100, 0);
 
725,7 → 746,7
 
write_ascii_string(17, top_line, directions[heading_conv(naviData.CompassHeading)]);
draw_variometer(20, top_line, naviData.Variometer);
draw_variometer(21, top_line, naviData.Variometer);
 
//note:lephisto:according to several sources it's /30
if (naviData.Altimeter > 300 || naviData.Altimeter < -300) {
742,9 → 763,9
 
// TODO: verify correctness
uint16_t heading_home = (naviData.HomePositionDeviation.Bearing + 360 - naviData.CompassHeading) % 360;
//write_char_xy(27, top_line + 1, arrowdir[heading_conv(heading_home)]);
//write_char_xy(21, top_line + 1, arrowdir[heading_conv(heading_home)]);
// finer resolution, 0xa0 is first character and we add the index 0 <= index < 16
write_char_xy(27, top_line + 1, 0xa0 + heading_fine_conv(heading_home));
write_char_xy(21, top_line + 1, 0xa0 + heading_fine_conv(heading_home));
 
write_ndigit_number_u(24, top_line + 1, naviData.HomePositionDeviation.Distance / 10, 100, 0);
 
780,6 → 801,9
draw_artificial_horizon(top_line + 2, bottom_line - 1, naviData.AngleNick, naviData.AngleRoll);
}
}
if (COSD_FLAGS & COSD_FLAG_BIGVARIO) {
draw_big_variometer(27, 8, naviData.Variometer);
}
 
// bottom line
write_ndigit_number_u_10th(2, bottom_line, naviData.UBat, 100, 0);
/C-OSD/trunk/main.h
27,7 → 27,7
#define WRITECHARS -1 // set to XXX and flash firmware to write new char
// enables the allchars as well to see results
// currently in use:
// 128, 136, 144, 152, 160, 168, 176, 184
// 112, 128, 136, 144, 152, 160, 168, 176, 184
// 192, 200, 208, 216, 224, 232
#endif
 
37,6 → 37,7
 
#define HUD 1 // set to 0 to disable HUD by default
#define ARTHORIZON 0 // set to 1 to enable roll&nick artificial horizon by default
#define BIGVARIO 0 // set to 1 to enable the big vario bar on right side
#define STATS 1 // set to 1 to enable statistics during motor off by default
#define WARNINGS 1 // set to 1 to display battery+rc warning even if HUD is disabled
 
53,9 → 54,10
#define COSD_FLAG_NTSC 1
#define COSD_FLAG_HUD 2
#define COSD_FLAG_ARTHORIZON 4
#define COSD_FLAG_STATS 8
#define COSD_FLAG_WARNINGS 16
#define COSD_ICONS_WRITTEN 32
#define COSD_FLAG_BIGVARIO 8
#define COSD_FLAG_STATS 16
#define COSD_FLAG_WARNINGS 32
#define COSD_ICONS_WRITTEN 64
 
/* ##########################################################################
* LED controll