0.96" SSD1306 128X64 OLED Display Module
Re: 0.96" SSD1306 128X64 OLED Display Module
please read here viewtopic.php?f=8&t=1463&view=unread&sid=cdb3db189cd1ee7b5bd709f54b641ec2#p12867
seems stick sequence is important.
seems stick sequence is important.
Re: 0.96" SSD1306 128X64 OLED Display Module
Stick sequence for Config menu does work, but not for activating the "hopping" telemetry pages
Will look carefully at the code....
Arduino IDE not very helpfull - not being able to "single step" through the code
H.
Will look carefully at the code....
Arduino IDE not very helpfull - not being able to "single step" through the code
H.
Re: 0.96" SSD1306 128X64 OLED Display Module
Howard,
here is my config for a board with the OLED. I just checked and auto telemetry works.
This is what config items I currently use which may not be default (I include this as a file from within mwi.ino right after include of config.h). Not sure if you find anything useful. Sorry, too tired to clean it up some more before posting.
here is my config for a board with the OLED. I just checked and auto telemetry works.
This is what config items I currently use which may not be default (I include this as a file from within mwi.ino right after include of config.h). Not sure if you find anything useful. Sorry, too tired to clean it up some more before posting.
Code: Select all
/* TRI60 3S configs */
/*
hier nur eintragen, was nicht default ist.
im original sketch nach "include config.h" ein
include auf dieses file einfuegen
*/
/* for flased mystery ESCs : */
//#define MINCOMMAND 1000
//#define MINTHROTTLE 1080
//#define MAXTHROTTLE 2000
//#define EXT_MOTOR_RANGE
#define HELI_120_CCPM
#define COLLECTIVE_PITCH AUX2 //THROTTLE
// Set Maximum available movement for the servos. Depending on modell.
#define SERVO_ENDPOINT_HIGH {2000,2000,2000,2000,2000,2000,2000,2000};
#define SERVO_ENDPOINT_LOW {1020,1020,1020,1020,1020,1020,1020,1020};
// Limit the range of Collective Pitch. 100% is Full Range each way and position for Zero Pitch
#define COLLECTIVE_RANGE { 12, 1500, 80 }// {Min%, ZeroPitch, Max%}.
#define YAW_CENTER 1500 // Use servo[5] SERVO_ENDPOINT_HIGH/LOW for the endpoits.
#define YAWMOTOR 0 // If a motor is use as YAW Set to 1 else set to 0.
// Limit Maximum controll for Roll & Nick in 0-100%
#define CONTROLL_RANGE { 100, 100 } // { ROLL,PITCH }
#undef TRI
#undef QUADX
#undef VTAIL4
#undef SERIAL_SUM_PPM
#undef GPS
#undef GPS_SERIAL
#undef FFIMUv2
#undef FREEIMUv035_MS
#undef QUADRINO
#undef MEGA
#define YAW_DIRECTION -1
#define I2C_SPEED 400000L
#define TRUSTED_ACCZ
#undef FAILSAFE
#define FAILSAVE_DELAY 15
#define FAILSAVE_THR0TTLE (MINTHROTTLE + 300) // Throttle level used for landing - may be relative to MINTHROTTLE - as in this case
#define RCAUXPIN8
#undef D12_POWER
#undef DISABLE_POWER_PIN
#undef FREEIMUv035_MS
#define CRIUS_LITE
#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = -Y; gyroADC[PITCH] = X; gyroADC[YAW] = -Z;}
#define ACC_ORIENTATION(X, Y, Z) {accADC[ROLL] = X; accADC[PITCH] = Y; accADC[YAW] = Z;}
#undef INTERNAL_I2C_PULLUPS
#define VBAT
#define VBATSCALE 79 // mystery 20A ESC/BEC, war HK-SS-ESC:78 //79 //110 // mein spezieller Spannungsteiler 3S
#define VBATLEVEL1_3S 102 // 10.2V unter Last
#define VBATLEVEL2_3S 100 // 10.0V unter Last
#define VBATLEVEL3_3S 98 // 9.8V unter Last
#define NO_VBAT 75 // Avoid beeping without any battery
#define POWERMETER_SOFT
#define PLEVELDIVSOFT 10000
#define PLEVELDIV 1540
#define PSENSORNULL 504
#define LCD_CONF
#define LCD_CONF_AUX
#define SUPPRESS_LCD_CONF_AUX34
#undef LCD_SERIAL3W
#undef LCD_TEXTSTAR
#undef LCD_VT100
#define OLED_I2C_128x64
#define SUPPRESS_OLED_I2C_128x64LOGO
#define LCD_TELEMETRY
#define LCD_TELEMETRY_AUTO "12345"
#define VBATREF 24 // 12.6V - VBATLEVEL1_3S (for me = 126 - 102 = 24)
#define LOG_VALUES 2
//#define DEBUG
#define SUPPRESS_OSD_SERIAL_COMMANDS
//#define LCD_TELEMETRY_FREQ 11 // to send telemetry data over serial 23 <=> 60ms <=> 16Hz (only sending interlaced, so 8Hz update rate)
#define LCD_TELEMETRY_AUTO_FREQ 1667 // to step to next telemetry page 667 <=> 2s
#ifdef INTERNAL_I2C_PULLUPS
#error " you MUST undefine internal i2c pullups. Else you destroy board!"
#endif
Re: 0.96" SSD1306 128X64 OLED Display Module
i got one of these OLED
http://cgi.ebay.fr/0-96-128x64-OLED-Dis ... 0536921656
it has some jumpers to set it to I2C
is it possible to get it running?
http://cgi.ebay.fr/0-96-128x64-OLED-Dis ... 0536921656
it has some jumpers to set it to I2C
is it possible to get it running?
Re: 0.96" SSD1306 128X64 OLED Display Module
I don't think so.
See post #1 of this thread.
See post #1 of this thread.
Re: 0.96" SSD1306 128X64 OLED Display Module
i saw it, but i thought someone got it now...
Re: 0.96" SSD1306 128X64 OLED Display Module
Hi Jin'Gej
You did not believe me?
BR Michael
You did not believe me?
BR Michael
Re: 0.96" SSD1306 128X64 OLED Display Module
First, Thank You for dev_20120528.
Looks like I can compile with BARO BMP085 or LCD/OLED but not both at the same time.
‘Not declared…&lcd_param_text14, &conf.P8[PIDVEL], &__P,’
I am now moving my MEGA controller over to a frame that flys so I can test fly GPS before my new parts get here.
Again Thank you all and keep up the good work!
EDIT:
BTW I love the new GUI look plus I have made my OLED logo changes and added my custom Telemetry page 7 that includes all three GPS locations. Works great!
Looks like I can compile with BARO BMP085 or LCD/OLED but not both at the same time.
‘Not declared…&lcd_param_text14, &conf.P8[PIDVEL], &__P,’
I am now moving my MEGA controller over to a frame that flys so I can test fly GPS before my new parts get here.
Again Thank you all and keep up the good work!
EDIT:
BTW I love the new GUI look plus I have made my OLED logo changes and added my custom Telemetry page 7 that includes all three GPS locations. Works great!
Re: 0.96" SSD1306 128X64 OLED Display Module
Wayne wrote:I have made my OLED logo changes and added my custom Telemetry page 7 that includes all three GPS locations. Works great!
Please post your code for page 7 GPS. I would love to use it!
H.
Re: 0.96" SSD1306 128X64 OLED Display Module
Howard I have attached a document of what I have done to make page 7 work for me.
It will take some thought to make it work for everyone.
I found that because I live at longitude -121. I had to invert the number to get OLDE to display GPS_long correctly. ((GPS_longitude_home*-1)/10) * 10; (I'm sure I did this the hard way but it works for me)
Also with the newly added GPS SECONDS digits I have also had to comment out the Armed/Failsafe indicator and burn the locations MINUTES digits.
It will take some thought to make it work for everyone.
I found that because I live at longitude -121. I had to invert the number to get OLDE to display GPS_long correctly. ((GPS_longitude_home*-1)/10) * 10; (I'm sure I did this the hard way but it works for me)
Also with the newly added GPS SECONDS digits I have also had to comment out the Armed/Failsafe indicator and burn the locations MINUTES digits.
Code: Select all
Wayne’s OLED changes….
MW_dev_20120528
Config.h tab…
#define LCD_CONF
#define OLED_I2C_128x64 // OLED http://www.multiwii.com/forum/viewtopic.php?f=7&t=1350
#define LCD_TELEMETRY
#define LCD_TELEMETRY_AUTO "7" // only displays page 7
LCD tab….
Paste over line 5:
static char line1[17],line2[17],line3[17],line4[17],line5[17],line6[17],line7[17];
Insert at line 1681:
#ifndef SUPPRESS_TELEMETRY_PAGE_7
case 7:
case '7': // contributed by PatrikE
#if GPS
if (linenr++ % 2) {
strcpy_P(line1,PSTR("Lat Long --"));
strcpy_P(line4,PSTR("Home Position"));
strcpy_P(line6,PSTR("Hold Position"));
// 0123456789012345
//if (armed) line1[14] = 'A'; else line1[14] = 'a';
//if (failsafeCnt > 5) line1[15] = 'F'; else line1[15] = 'f';
LCDsetLine(1);LCDprintChar(line1);
LCDsetLine(4);LCDprintChar(line4);
LCDsetLine(6);LCDprintChar(line6);
} else {
strcpy_P(line2,PSTR("------- --------"));
line2[0] = '0' + GPS_latitude / 1000000 - (GPS_latitude/10000000) * 10;
line2[1] = '0' + GPS_latitude / 100000 - (GPS_latitude/1000000) * 10;
line2[2] = '0' + GPS_latitude / 10000 - (GPS_latitude/100000) * 10;
line2[3] = '0' + GPS_latitude / 1000 - (GPS_latitude/10000) * 10;
line2[4] = '0' + GPS_latitude / 100 - (GPS_latitude/1000) * 10;
line2[5] = '0' + GPS_latitude / 10 - (GPS_latitude/100) * 10;
line2[6] = '0' + GPS_latitude - (GPS_latitude/10) * 10;
//line2[8] = '0' + (GPS_longitude*-1) / 10000000 - ((GPS_longitude*-1)/100000000) * 10;
line2[9] = '0' + (GPS_longitude*-1) / 1000000 - ((GPS_longitude*-1)/10000000) * 10;
line2[10] = '0' + (GPS_longitude*-1) / 100000 - ((GPS_longitude*-1)/1000000) * 10;
line2[11] = '0' + (GPS_longitude*-1) / 10000 - ((GPS_longitude*-1)/100000) * 10;
line2[12] = '0' + (GPS_longitude*-1) / 1000 - ((GPS_longitude*-1)/10000) * 10;
line2[13] = '0' + (GPS_longitude*-1) / 100 - ((GPS_longitude*-1)/1000) * 10;
line2[14] = '0' + (GPS_longitude*-1) / 10 - ((GPS_longitude*-1)/100) * 10;
line2[15] = '0' + (GPS_longitude*-1) - ((GPS_longitude*-1)/10) * 10;
strcpy_P(line5,PSTR("------- --------"));
line5[0] = '0' + GPS_latitude_home / 1000000 - (GPS_latitude_home/10000000) * 10;
line5[1] = '0' + GPS_latitude_home / 100000 - (GPS_latitude_home/1000000) * 10;
line5[2] = '0' + GPS_latitude_home / 10000 - (GPS_latitude_home/100000) * 10;
line5[3] = '0' + GPS_latitude_home / 1000 - (GPS_latitude_home/10000) * 10;
line5[4] = '0' + GPS_latitude_home / 100 - (GPS_latitude_home/1000) * 10;
line5[5] = '0' + GPS_latitude_home / 10 - (GPS_latitude_home/100) * 10;
line5[6] = '0' + GPS_latitude_home - (GPS_latitude_home/10) * 10;
//line5[8] = '0' + (GPS_longitude_home*-1) / 10000000 - ((GPS_longitude_home*-1)/100000000) * 10;
line5[9] = '0' + (GPS_longitude_home*-1) / 1000000 - ((GPS_longitude_home*-1)/10000000) * 10;
line5[10] = '0' + (GPS_longitude_home*-1) / 100000 - ((GPS_longitude_home*-1)/1000000) * 10;
line5[11] = '0' + (GPS_longitude_home*-1) / 10000 - ((GPS_longitude_home*-1)/100000) * 10;
line5[12] = '0' + (GPS_longitude_home*-1) / 1000 - ((GPS_longitude_home*-1)/10000) * 10;
line5[13] = '0' + (GPS_longitude_home*-1) / 100 - ((GPS_longitude_home*-1)/1000) * 10;
line5[14] = '0' + (GPS_longitude_home*-1) / 10 - ((GPS_longitude_home*-1)/100) * 10;
line5[15] = '0' + (GPS_longitude_home*-1) - ((GPS_longitude_home*-1)/10) * 10;
strcpy_P(line7,PSTR("------- --------"));
line7[0] = '0' + GPS_latitude_hold / 1000000 - (GPS_latitude_hold/10000000) * 10;
line7[1] = '0' + GPS_latitude_hold / 100000 - (GPS_latitude_hold/1000000) * 10;
line7[2] = '0' + GPS_latitude_hold / 10000 - (GPS_latitude_hold/100000) * 10;
line7[3] = '0' + GPS_latitude_hold / 1000 - (GPS_latitude_hold/10000) * 10;
line7[4] = '0' + GPS_latitude_hold / 100 - (GPS_latitude_hold/1000) * 10;
line7[5] = '0' + GPS_latitude_hold / 10 - (GPS_latitude_hold/100) * 10;
line7[6] = '0' + GPS_latitude_hold - (GPS_latitude_hold/10) * 10;
//line7[8] = '0' + (GPS_longitude_hold*-1) / 10000000 - ((GPS_longitude_hold*-1)/100000000) * 10;
line7[9] = '0' + (GPS_longitude_hold*-1) / 1000000 - ((GPS_longitude_hold*-1)/10000000) * 10;
line7[10] = '0' + (GPS_longitude_hold*-1) / 100000 - ((GPS_longitude_hold*-1)/1000000) * 10;
line7[11] = '0' + (GPS_longitude_hold*-1) / 10000 - ((GPS_longitude_hold*-1)/100000) * 10;
line7[12] = '0' + (GPS_longitude_hold*-1) / 1000 - ((GPS_longitude_hold*-1)/10000) * 10;
line7[13] = '0' + (GPS_longitude_hold*-1) / 100 - ((GPS_longitude_hold*-1)/1000) * 10;
line7[14] = '0' + (GPS_longitude_hold*-1) / 10 - ((GPS_longitude_hold*-1)/100) * 10;
line7[15] = '0' + (GPS_longitude_hold*-1) - ((GPS_longitude_hold*-1)/10) * 10;
LCDsetLine(2);LCDprintChar(line2);
LCDsetLine(5);LCDprintChar(line5);
LCDsetLine(7);LCDprintChar(line7);
}
#endif // case 7 : GPS
break;
#endif
Re: 0.96" SSD1306 128X64 OLED Display Module
shall we integrate Wayne's version for the GPS page? I cannot comment on this in any way as I do not own GPS.
Re: 0.96" SSD1306 128X64 OLED Display Module
Yes! It's quite handy to be able to see GPS co-ords on the display...
Wayne thanks for your code!, but, I'm not sure why, on my OLED display your code produces "garbage" characters for the GPS co-ords.
So I've edited your code......
I added abs( ) function to all the co-ords, to eliminate multiplication by -1...
also, line5:
Marvellous!
Thanks, H.
Wayne thanks for your code!, but, I'm not sure why, on my OLED display your code produces "garbage" characters for the GPS co-ords.
So I've edited your code......
I added abs( ) function to all the co-ords, to eliminate multiplication by -1...
Code: Select all
#ifndef SUPPRESS_TELEMETRY_PAGE_7
case 7:
case '7':
#if GPS
if (linenr++ % 2) {
strcpy_P(line1,PSTR(" Lat Long "));
LCDsetLine(1);LCDprintChar(line1);
} else {
strcpy_P(line2,PSTR("--------- ---------"));
int32_t aGPS_latitude = abs(GPS_latitude);
line2[0] = '0' + aGPS_latitude / 100000000 - (aGPS_latitude/1000000000) * 10;
line2[1] = '0' + aGPS_latitude / 10000000 - (aGPS_latitude/100000000) * 10;
line2[2] = '0' + aGPS_latitude / 1000000 - (aGPS_latitude/10000000) * 10;
line2[3] = '0' + aGPS_latitude / 100000 - (aGPS_latitude/1000000) * 10;
line2[4] = '0' + aGPS_latitude / 10000 - (aGPS_latitude/100000) * 10;
line2[5] = '0' + aGPS_latitude / 1000 - (aGPS_latitude/10000) * 10;
line2[6] = '0' + aGPS_latitude / 100 - (aGPS_latitude/1000) * 10;
line2[7] = '0' + aGPS_latitude / 10 - (aGPS_latitude/100) * 10;
line2[8] = '0' + aGPS_latitude - (aGPS_latitude/10) * 10;
int32_t aGPS_longitude = abs(GPS_longitude);
line2[11] = '0' + aGPS_longitude / 100000000 - (aGPS_longitude/1000000000) * 10;
line2[12] = '0' + aGPS_longitude / 10000000 - (aGPS_longitude/100000000) * 10;
line2[13] = '0' + aGPS_longitude / 1000000 - (aGPS_longitude/10000000) * 10;
line2[14] = '0' + aGPS_longitude / 100000 - (aGPS_longitude/1000000) * 10;
line2[15] = '0' + aGPS_longitude / 10000 - (aGPS_longitude/100000) * 10;
line2[16] = '0' + aGPS_longitude / 1000 - (aGPS_longitude/10000) * 10;
line2[17] = '0' + aGPS_longitude / 100 - (aGPS_longitude/1000) * 10;
line2[18] = '0' + aGPS_longitude / 10 - (aGPS_longitude/100) * 10;
line2[19] = '0' + aGPS_longitude - (aGPS_longitude/10) * 10;
LCDsetLine(2);LCDprintChar(line2);
}
if (linenr++ % 2) {
strcpy_P(line4,PSTR("Home Position"));
LCDsetLine(4);LCDprintChar(line4);
} else {
strcpy_P(line5,PSTR("--------- ---------"));
int32_t aGPS_latitude_home = abs(GPS_latitude_home);
line5[0] = '0' + aGPS_latitude_home / 100000000 - (aGPS_latitude_home/1000000000) * 10;
line5[1] = '0' + aGPS_latitude_home / 10000000 - (aGPS_latitude_home/100000000) * 10;
line5[2] = '0' + aGPS_latitude_home / 1000000 - (aGPS_latitude_home/10000000) * 10;
line5[3] = '0' + aGPS_latitude_home / 100000 - (aGPS_latitude_home/1000000) * 10;
line5[4] = '0' + aGPS_latitude_home / 10000 - (aGPS_latitude_home/100000) * 10;
line5[5] = '0' + aGPS_latitude_home / 1000 - (aGPS_latitude_home/10000) * 10;
line5[6] = '0' + aGPS_latitude_home / 100 - (aGPS_latitude_home/1000) * 10;
line5[7] = '0' + aGPS_latitude_home / 10 - (aGPS_latitude_home/100) * 10;
line5[8] = '0' + aGPS_latitude_home - (aGPS_latitude_home/10) * 10;
int32_t aGPS_longitude_home = abs(GPS_longitude_home);
line5[11] = '0' + aGPS_longitude_home / 100000000 - (aGPS_longitude_home/1000000000) * 10;
line5[12] = '0' + aGPS_longitude_home / 10000000 - (aGPS_longitude_home/100000000) * 10;
line5[13] = '0' + aGPS_longitude_home / 1000000 - (aGPS_longitude_home/10000000) * 10;
line5[14] = '0' + aGPS_longitude_home / 100000 - (aGPS_longitude_home/1000000) * 10;
line5[15] = '0' + aGPS_longitude_home / 10000 - (aGPS_longitude_home/100000) * 10;
line5[16] = '0' + aGPS_longitude_home / 1000 - (aGPS_longitude_home/10000) * 10;
line5[17] = '0' + aGPS_longitude_home / 100 - (aGPS_longitude_home/1000) * 10;
line5[18] = '0' + aGPS_longitude_home / 10 - (aGPS_longitude_home/100) * 10;
line5[19] = '0' + aGPS_longitude_home - (aGPS_longitude_home/10) * 10;
LCDsetLine(5);LCDprintChar(line5);
}
if (linenr++ % 2) {
strcpy_P(line6,PSTR("Hold Position"));
LCDsetLine(6);LCDprintChar(line6);
} else {
strcpy_P(line7,PSTR("--------- ---------"));
int32_t aGPS_latitude_hold = abs(GPS_latitude_hold);
line7[0] = '0' + aGPS_latitude_hold / 100000000 - (aGPS_latitude_hold/1000000000) * 10;
line7[1] = '0' + aGPS_latitude_hold / 10000000 - (aGPS_latitude_hold/100000000) * 10;
line7[2] = '0' + aGPS_latitude_hold / 1000000 - (aGPS_latitude_hold/10000000) * 10;
line7[3] = '0' + aGPS_latitude_hold / 100000 - (aGPS_latitude_hold/1000000) * 10;
line7[4] = '0' + aGPS_latitude_hold / 10000 - (aGPS_latitude_hold/100000) * 10;
line7[5] = '0' + aGPS_latitude_hold / 1000 - (aGPS_latitude_hold/10000) * 10;
line7[6] = '0' + aGPS_latitude_hold / 100 - (aGPS_latitude_hold/1000) * 10;
line7[7] = '0' + aGPS_latitude_hold / 10 - (aGPS_latitude_hold/100) * 10;
line7[8] = '0' + aGPS_latitude_hold - (aGPS_latitude_hold/10) * 10;
int32_t aGPS_longitude_hold = abs(GPS_longitude_hold);
line7[11] = '0' + aGPS_longitude_hold / 100000000 - (aGPS_longitude_hold/1000000000) * 10;
line7[12] = '0' + aGPS_longitude_hold / 10000000 - (aGPS_longitude_hold/100000000) * 10;
line7[13] = '0' + aGPS_longitude_hold / 1000000 - (aGPS_longitude_hold/10000000) * 10;
line7[14] = '0' + aGPS_longitude_hold / 100000 - (aGPS_longitude_hold/1000000) * 10;
line7[15] = '0' + aGPS_longitude_hold / 10000 - (aGPS_longitude_hold/100000) * 10;
line7[16] = '0' + aGPS_longitude_hold / 1000 - (aGPS_longitude_hold/10000) * 10;
line7[17] = '0' + aGPS_longitude_hold / 100 - (aGPS_longitude_hold/1000) * 10;
line7[18] = '0' + aGPS_longitude_hold / 10 - (aGPS_longitude_hold/100) * 10;
line7[19] = '0' + aGPS_longitude_hold - (aGPS_longitude_hold/10) * 10;
LCDsetLine(7);LCDprintChar(line7);
}
#endif // case 7 : GPS
break;
#endif
also, line5:
Code: Select all
static char line1[23],line2[23],line3[23],line4[23],line5[23],line6[23],line7[23];
Marvellous!
Thanks, H.
Last edited by howardhb on Wed May 30, 2012 12:40 pm, edited 1 time in total.
Re: 0.96" SSD1306 128X64 OLED Display Module
Yep, I got garbage characters when the location is a negative number.
I got it to work for me but a coder will have to get involved to get it to work for everyone.
I got it to work for me but a coder will have to get involved to get it to work for everyone.
Re: 0.96" SSD1306 128X64 OLED Display Module
this code (with or without the abs() ) breaks the logic of displaying exactly one line at a time (like interlaced display on TV). This will introduce a huge increase in cycle time probably in the range of some 1000s extra microseconds. To avoid this performance hit I did introduce the interlacing scheme. Is there good reason to deviate from that for GPS? I think not, so please adapt the GPS code to that logic (as can be seen with the other cases (or teach me why GPS is special).
If you need faster update rate of the data set displayed, simply increase the update.freq #define.
If you need faster update rate of the data set displayed, simply increase the update.freq #define.
Re: 0.96" SSD1306 128X64 OLED Display Module
I've modified the code and posted in my previous post.
Re: 0.96" SSD1306 128X64 OLED Display Module
I've modified the code and posted in my previous post.
Arhm, you are still displaying half of the lines in one cycle. You really want that chunk of data (and time for processing) in one cycle?
I will copy it over soon but would feel safer if it was cut down to exactly one line only upoon every call.
Re: 0.96" SSD1306 128X64 OLED Display Module
Howard,
We got a display problem:
after some time the offset of the first line gets somewhat shifted so that top 50% of first line get displayed at bottom of screen.
I have not yet figured out what triggers this. Could setting an invalid line cause this? With debug enabled, the range check for linenumber is disabled.
We got a display problem:
after some time the offset of the first line gets somewhat shifted so that top 50% of first line get displayed at bottom of screen.
I have not yet figured out what triggers this. Could setting an invalid line cause this? With debug enabled, the range check for linenumber is disabled.
Re: 0.96" SSD1306 128X64 OLED Display Module
Hi Hamburger.
I have not seen that effect on my display
Last night I merged Alex's latest dev (r840) which has new i2c addressing scheme.
I'm not sure which Dev you are using but I've made quite a few changes. (all your "sanity" optimisations are still included)
But, notably, I've changed i2c_clear_OLED() to write, directly, 1024 bytes of 0x00, instead of simply printing spaces.
The function now always resets the page address to 0, so subsequent printing "should" be at the correct line address.
(This might now be masking the "creeping" problem, because I have not seen it)
Also, I've added functionality to display the logo permanently, until any "other" printing is needed, after which the logo is re-displayed... @nhadrian requested this, and I use it too.
Still a 'work in progress'...
It is enabled by adding a #define LOGO_PERMANENT in config.
Attached is the zip of my code.
Please be so kind as to try it out and by all means, make any enhancements you deem necessary.
As you mentioned, GPS printing still needs enhancing, but I haven't got round to doing it yet....
I have not seen that effect on my display
Last night I merged Alex's latest dev (r840) which has new i2c addressing scheme.
I'm not sure which Dev you are using but I've made quite a few changes. (all your "sanity" optimisations are still included)
But, notably, I've changed i2c_clear_OLED() to write, directly, 1024 bytes of 0x00, instead of simply printing spaces.
The function now always resets the page address to 0, so subsequent printing "should" be at the correct line address.
(This might now be masking the "creeping" problem, because I have not seen it)
Also, I've added functionality to display the logo permanently, until any "other" printing is needed, after which the logo is re-displayed... @nhadrian requested this, and I use it too.
Still a 'work in progress'...
It is enabled by adding a #define LOGO_PERMANENT in config.
Attached is the zip of my code.
Please be so kind as to try it out and by all means, make any enhancements you deem necessary.
As you mentioned, GPS printing still needs enhancing, but I haven't got round to doing it yet....
- Attachments
-
- LCD dev 0528 with Alex r840 I2C addressing changes.zip
- (17.76 KiB) Downloaded 451 times
-
- Posts: 2
- Joined: Thu May 10, 2012 11:29 am
Re: 0.96" SSD1306 128X64 OLED Display Module
Hello,
I am new to MultiiWii and building my first Tricopter.
The Arduino Nano and GY-80 is already running and i can connect to it via HC-04 Bluetooth Module.
Now i'm looking for a display and i found another I2C OLed 128x64 at the bay.
http://www.ebay.de/itm/IIC-I2C-0-96-128X64-White-OLED-Display-Module-AVR-PIC-Arduino-Compatible-/170842973484?pt=LH_DefaultDomain_0&hash=item27c708e52c
It is based on the SSD1306 but has a second "controller" installed with a 8x16 characterset.
So it can display 4 lines with 16 chars(8x16), and it is no need to store a charactertable in the MultiWii memory.
Playing around with the display and the Arduino democode i noticed that the SSD1306 commands and Data cold be passed-through.
Now my question: On which codebase should i start to adapt the display?
Helischorsch
I am new to MultiiWii and building my first Tricopter.
The Arduino Nano and GY-80 is already running and i can connect to it via HC-04 Bluetooth Module.
Now i'm looking for a display and i found another I2C OLed 128x64 at the bay.
http://www.ebay.de/itm/IIC-I2C-0-96-128X64-White-OLED-Display-Module-AVR-PIC-Arduino-Compatible-/170842973484?pt=LH_DefaultDomain_0&hash=item27c708e52c
It is based on the SSD1306 but has a second "controller" installed with a 8x16 characterset.
So it can display 4 lines with 16 chars(8x16), and it is no need to store a charactertable in the MultiWii memory.
Playing around with the display and the Arduino democode i noticed that the SSD1306 commands and Data cold be passed-through.
Now my question: On which codebase should i start to adapt the display?
Helischorsch
Re: 0.96" SSD1306 128X64 OLED Display Module
From your comment I understand you need not make any changes?
-
- Posts: 2
- Joined: Thu May 10, 2012 11:29 am
Re: 0.96" SSD1306 128X64 OLED Display Module
SSD1306 commands must be passed-through. The OLED has another I2C adress and other basic commands.
Please take a look at the democode on the linked ebay page.
Please take a look at the democode on the linked ebay page.
Re: 0.96" SSD1306 128X64 OLED Display Module
Ok.
Please use latest version from google rep trunk/_shared. Post your diff and I will integrate it.
Please use latest version from google rep trunk/_shared. Post your diff and I will integrate it.
Re: 0.96" SSD1306 128X64 OLED Display Module
Hi,
I have just integratet my OLED and it works fine for parameter setting, but I have a question about telemetry, if I enter telemetry the pages a change in 1-2 seconds, it is to short to see the values, how can I stop each page for longer displaying?
I try same stick combo like to enter the tele mod, pages stop, but values are not longer updated.
What did I wrong??
Strippo
I have just integratet my OLED and it works fine for parameter setting, but I have a question about telemetry, if I enter telemetry the pages a change in 1-2 seconds, it is to short to see the values, how can I stop each page for longer displaying?
I try same stick combo like to enter the tele mod, pages stop, but values are not longer updated.
What did I wrong??
Strippo
Re: 0.96" SSD1306 128X64 OLED Display Module
Strippo,
nothing wrong on your part - that is how I did implement it.
At end of config.h you find auto.tele.freq; increase it or
set the auto.tele sequence to just 1 value like "1"
nothing wrong on your part - that is how I did implement it.
At end of config.h you find auto.tele.freq; increase it or
set the auto.tele sequence to just 1 value like "1"
-
- Posts: 23
- Joined: Thu May 10, 2012 2:08 am
- Location: Montreal, QC, Canada
Re: 0.96" SSD1306 128X64 OLED Display Module
This is very cool! I'm definitely going to have to order one of these!
Re: 0.96" SSD1306 128X64 OLED Display Module
Thanks, Hamburger
I will try to increase the time, btw is it not possible to hold each page, to display the values continusly??
Would be very nice!
Strippo
I will try to increase the time, btw is it not possible to hold each page, to display the values continusly??
Would be very nice!
Strippo
Re: 0.96" SSD1306 128X64 OLED Display Module
yes. it has bothered me for some time too.
The current timed auto stepping is a relict really from the time when my LCD+BT combo had a broken tx pin and could only receive but not send data to the mwc.
Expect it to be changed in a not too distant future.
The TX-combo nick-fwd & roll-left will do one single step forward in the defined step-sequence.
Downside: let us assume your sequence is "654321" . You want to see page '5', so you enter the tx-combo twice. Then it wil auto-update page 5 forever. Now to turn it off, you have to go to the invisible '0' at the end of the sequence, requiring you to enter the tx-combo 5 times.
It could be avoided by using a second tx-combo for stop, but I think auto.telemetry toggling is not important enough to merit 2 tx-combos.
The current timed auto stepping is a relict really from the time when my LCD+BT combo had a broken tx pin and could only receive but not send data to the mwc.
Expect it to be changed in a not too distant future.
The TX-combo nick-fwd & roll-left will do one single step forward in the defined step-sequence.
Downside: let us assume your sequence is "654321" . You want to see page '5', so you enter the tx-combo twice. Then it wil auto-update page 5 forever. Now to turn it off, you have to go to the invisible '0' at the end of the sequence, requiring you to enter the tx-combo 5 times.
It could be avoided by using a second tx-combo for stop, but I think auto.telemetry toggling is not important enough to merit 2 tx-combos.
Re: 0.96" SSD1306 128X64 OLED Display Module
Howard,
I just had another quick glance at your OLED code changes. It will take some more days before I can integrate it; Alex is currently cleaning up the mess in _shared.
About that shift error in the display I posted on earlier, from my tests it looks like the error gets hidden, if DEBUG is not defined. Code in question:
I know you changed some basic oled functions and maybe that cured the shift symptom anyway; but if possible could you please run your latest version with #define DEBUG, cycle through the config menu and the telemetry pages (manually invoke by sending '1'... or via auto.telemetry) and see if the problem is gone for good?
If so, more kudos to you for improving on the basic oled functions.
Hamburger
I just had another quick glance at your OLED code changes. It will take some more days before I can integrate it; Alex is currently cleaning up the mess in _shared.
About that shift error in the display I posted on earlier, from my tests it looks like the error gets hidden, if DEBUG is not defined. Code in question:
Code: Select all
void LCDsetLine(byte line) { // Line = 1 or 2 - vt100 has lines 1-99
[...]
#elif defined(OLED_I2C_128x64)
#ifndef DEBUG // sanity check for production only. Debug runs with all possible side effects
if (line<1 || line>(MULTILINE_PRE+MULTILINE_POST)) line = 1;
#endif
i2c_OLED_set_line(line-1);
#endif
I know you changed some basic oled functions and maybe that cured the shift symptom anyway; but if possible could you please run your latest version with #define DEBUG, cycle through the config menu and the telemetry pages (manually invoke by sending '1'... or via auto.telemetry) and see if the problem is gone for good?
If so, more kudos to you for improving on the basic oled functions.
Hamburger
- AlouetteIII
- Posts: 27
- Joined: Tue Jan 25, 2011 2:34 pm
- Location: AU Australia
- Contact:
Re: 0.96" SSD1306 128X64 OLED Display Module
@Hamburger - in the default start screen - which shows version & ready to fly - how to show ( in the empty bottom scetion) what TYPE of software is coded into that board - for example - Tricopter or Quad X or Y6 ?
Re: 0.96" SSD1306 128X64 OLED Display Module
Find and copy this line in the LCD tab....
strcpy_P(line1,PSTR("Ready to Fly")); LCDsetLine(2); LCDprintChar(line1);
I make these changes....
Paste/insert the line or lines directly below it, change the message and line number....
strcpy_P(line1,PSTR("Aerial-Ventures.com")); LCDsetLine(4); LCDprintChar(line1);
strcpy_P(line1,PSTR("Wayne ***-***-****")); LCDsetLine(5); LCDprintChar(line1);
strcpy_P(line1,PSTR("Ready to Fly")); LCDsetLine(2); LCDprintChar(line1);
I make these changes....
Paste/insert the line or lines directly below it, change the message and line number....
strcpy_P(line1,PSTR("Aerial-Ventures.com")); LCDsetLine(4); LCDprintChar(line1);
strcpy_P(line1,PSTR("Wayne ***-***-****")); LCDsetLine(5); LCDprintChar(line1);
- Gartenflieger
- Posts: 65
- Joined: Sat Oct 01, 2011 10:07 pm
- Location: Dortmund, Germany
Re: 0.96" SSD1306 128X64 OLED Display Module
Hi Guys,
could use some help here: Damaged my LCD from wide.hk in a crash and lost two capacitors: C5 and C8 (the bigger ones). If someone has one of the units lying around and could get a peek at the capacity values I would be very grateful. Unfortunately, they are not on the wide.hk official image, it doesn't match what is actually on the back of my board.
Best regards, Christoph
could use some help here: Damaged my LCD from wide.hk in a crash and lost two capacitors: C5 and C8 (the bigger ones). If someone has one of the units lying around and could get a peek at the capacity values I would be very grateful. Unfortunately, they are not on the wide.hk official image, it doesn't match what is actually on the back of my board.
Best regards, Christoph
Re: 0.96" SSD1306 128X64 OLED Display Module
Hello,
Would it be possible to have an option in config.h file, to automatically display basic informations (voltage, Aux positions, ...) on the module OLED,
without enable the telemetry option ?
Regards
Would it be possible to have an option in config.h file, to automatically display basic informations (voltage, Aux positions, ...) on the module OLED,
without enable the telemetry option ?
Regards
Re: 0.96" SSD1306 128X64 OLED Display Module
currently not. And it would do just what the telemetry option does - so not much to gain here from adding yet another option.
Re: 0.96" SSD1306 128X64 OLED Display Module
Ok. but, here is the result :
my settings :
#define OLED_I2C_128x64
#define LCD_TELEMETRY
#define LCD_TELEMETRY_AUTO "1"
#define VBAT
#define BUZZER
my settings :
#define OLED_I2C_128x64
#define LCD_TELEMETRY
#define LCD_TELEMETRY_AUTO "1"
#define VBAT
#define BUZZER
Re: 0.96" SSD1306 128X64 OLED Display Module
update
I did the integration of Howard's latest code;
+ OLED driving
+ updated LOGO
+ new LOGO.PERMANENT option
+ GPS parameters accessible in configuration menu (untested, I have no GPS)
- without the GPS display. That part needs some more tweaking from Howard.
Good thing: the previous display error of shifted lines is gone.
It is in _shared now.
Hamburger
I did the integration of Howard's latest code;
+ OLED driving
+ updated LOGO
+ new LOGO.PERMANENT option
+ GPS parameters accessible in configuration menu (untested, I have no GPS)
- without the GPS display. That part needs some more tweaking from Howard.
Good thing: the previous display error of shifted lines is gone.
It is in _shared now.
Hamburger
Re: 0.96" SSD1306 128X64 OLED Display Module
Synthex wrote:Ok. but, here is the result :
my settings :
#define OLED_I2C_128x64
#define LCD_TELEMETRY
#define LCD_TELEMETRY_AUTO "1"
#define VBAT
#define BUZZER
your settings look good.
You can try and define DEBUG and LOG_VALUES 1.
Your displayed data confuse me. Mine looks like this now:
Your first display line looks wrong. Starting with an 'A'?
You have inverse attribute on, not sure why. It is used if and only if some error (cycle time, i2c errors, failsafes) was detected or if the user defined limit for battery voltage or capacity (powermeter) was triggerred. You will have to dig there somehow.
Re: 0.96" SSD1306 128X64 OLED Display Module
Very cool. I ordered mine today, let's see how long it takes to get shipped to Germany...
0.96" SSD1306 128X64 OLED Display Module
Hi Guys,
I am a multiwii user and I have to modify pid configuration aux settings etc when I am on the field and I don't want to bring with me a notebook.
The OLED Display that you are developping seems the right solution to my problem and it works with multiwii version 2.0 and 2.1 (new serial protocol).
I want build one, so the questios are :
What OLED do I have to buy ?
Where can I find a connection diagram or a schematics ?
How is the OLED menu navigated ... using the tx sticks ?
Sorry for asking so many questions but reading the posts I didn't get a clear idea, thank you in advance
Marco
I am a multiwii user and I have to modify pid configuration aux settings etc when I am on the field and I don't want to bring with me a notebook.
The OLED Display that you are developping seems the right solution to my problem and it works with multiwii version 2.0 and 2.1 (new serial protocol).
I want build one, so the questios are :
What OLED do I have to buy ?
Where can I find a connection diagram or a schematics ?
How is the OLED menu navigated ... using the tx sticks ?
Sorry for asking so many questions but reading the posts I didn't get a clear idea, thank you in advance
Marco
Re: 0.96" SSD1306 128X64 OLED Display Module
if you have a smartfone, you could also get a bluetooth module connected to your copter, install blueterm or some such on your fone and use that for configuration and telemetry.
search for a link Howard provided to the ebay seller,
it is 2 wires for i2c + 2 wires for power,
navigation is with tx sticks
search for a link Howard provided to the ebay seller,
it is 2 wires for i2c + 2 wires for power,
navigation is with tx sticks
Re: 0.96" SSD1306 128X64 OLED Display Module
Hamburger wrote:if you have a smartfone, you could also get a bluetooth module connected to your copter, install blueterm or some such on your fone and use that for configuration and telemetry.
search for a link Howard provided to the ebay seller,
it is 2 wires for i2c + 2 wires for power,
navigation is with tx sticks
thank you, I placed an order for this one
http://www.ebay.it/itm/130566448551?ssP ... 1497.l2649
Is there any software to download or the last version of multiwii fully support this i2c display ?
In the past I have seen that an update version of the lcd.ino file was required.
thanks a lot,
Marco
Re: 0.96" SSD1306 128X64 OLED Display Module
best to get v2.1 release candidate.
Re: 0.96" SSD1306 128X64 OLED Display Module
matteo3e5 wrote:thank you, I placed an order for this one
http://www.ebay.it/itm/130566448551?ssP ... 1497.l2649
That's the one I received today, ordered from wide.hk directly some 10 days ago. It's tiny! I'll report back once I've connected it.
Is there any software to download or the last version of multiwii fully support this i2c display ?
In the past I have seen that an update version of the lcd.ino file was required.
The latest 2.1 development drops should support this display just fine.
Re: 0.96" SSD1306 128X64 OLED Display Module
Thank you Hamburger and LenzGr
LenzGr let me how it works
Marco
LenzGr let me how it works
Marco
Re: 0.96" SSD1306 128X64 OLED Display Module
Yes. Double sided tape. On top of allinone board but not dirdctly on sensor.
Re: 0.96" SSD1306 128X64 OLED Display Module
Thanks for the hint! I'll have to find another place, as my sensor board sits underneath the Seeeduino Mega board I'm currently using.
I managed to connect the OLED Module and it works, using a the current code in _shared (r982)! This will be very useful for quickly tuning parameters in the field.
I enabled the following configuration options:
I noticed that the comment in config.h above the LCD_TELEMETRY_AUTO definition seems to be wrong - it states "roll=left & pitch forward" to switch pages, while the actual stick combo is "roll=right & pitch forward"
However, I too have a strange problem with the overview page that displays the battery voltage and uptime: the first line blinks and changes between the voltage/mAh display and the BARO altitude (that's where the "A" character comes from). It looks like a page wrap to me, which is odd since there should still be at least one line free...
I managed to connect the OLED Module and it works, using a the current code in _shared (r982)! This will be very useful for quickly tuning parameters in the field.
I enabled the following configuration options:
Code: Select all
=== modified file 'config.h'
--- config.h 2012-07-14 16:08:10 +0000
+++ config.h 2012-07-14 23:46:54 +0000
@@ -28,7 +28,7 @@
//#define BI
//#define TRI
//#define QUADP
- //#define QUADX
+ #define QUADX
//#define Y4
//#define Y6
//#define HEX6
@@ -50,24 +50,24 @@
//#define MINTHROTTLE 1300 // for Turnigy Plush ESCs 10A
//#define MINTHROTTLE 1120 // for Super Simple ESCs 10A
//#define MINTHROTTLE 1064 // special ESC (simonk)
- #define MINTHROTTLE 1150
+ #define MINTHROTTLE 1015
/**************************** Motor maxthrottle *******************************/
/* this is the maximum value for the ESCs at full power, this value can be increased up to 2000 */
- #define MAXTHROTTLE 1850
+ #define MAXTHROTTLE 2000
/**************************** Mincommand *******************************/
/* this is the value for the ESCs when they are not armed
in some cases, this value must be lowered down to 900 for some specific ESCs, otherwise they failed to initiate */
- #define MINCOMMAND 1000
+ #define MINCOMMAND 900
/********************************** I2C speed ************************************/
- #define I2C_SPEED 100000L //100kHz normal mode, this value must be used for a genuine WMP
- //#define I2C_SPEED 400000L //400kHz fast mode, it works only with some WMP clones
+ //#define I2C_SPEED 100000L //100kHz normal mode, this value must be used for a genuine WMP
+ #define I2C_SPEED 400000L //400kHz fast mode, it works only with some WMP clones and with most current boards
/*************************** Internal i2c Pullups ********************************/
- /* enable internal I2C pull ups (in most cases it is better to use external pullups) */
- //#define INTERNAL_I2C_PULLUPS
+ //enable internal I2C pull ups (in most cases it is better to use external pullups)
+ #define INTERNAL_I2C_PULLUPS
/**************************************************************************************/
/***************** boards and sensor definitions ******************/
@@ -91,7 +91,7 @@
//#define QUADRINO // full FC board 9DOF+baro board from witespy with BMP085 baro <- confirmed by Alex
//#define QUADRINO_ZOOM // full FC board 9DOF+baro board from witespy second edition
//#define QUADRINO_ZOOM_MS// full FC board 9DOF+baro board from witespy second edition <- confirmed by Alex
- //#define ALLINONE // full FC board or standalone 9DOF+baro board from CSG_EU
+ #define ALLINONE // full FC board or standalone 9DOF+baro board from CSG_EU
//#define AEROQUADSHIELDv2
//#define ATAVRSBIN1 // Atmel 9DOF (Contribution by EOSBandi). requires 3.3V power.
//#define SIRIUS // Sirius Navigator IMU <- confirmed by Alex
@@ -186,7 +186,7 @@
/* optionally disable stick combinations to arm/disarm the motors.
* In most cases one of the two options to arm/disarm via TX stick is sufficient */
#define ALLOW_ARM_DISARM_VIA_TX_YAW
- #define ALLOW_ARM_DISARM_VIA_TX_ROLL
+ // #define ALLOW_ARM_DISARM_VIA_TX_ROLL
/*********************** Cam Stabilisation ***********************/
/* The following lines apply only for a pitch/roll tilt stabilization system. Uncomment the first or second line to activate it */
@@ -308,7 +308,7 @@
Spektrum Satellites are 3V devices. DO NOT connect to 5V!
For MEGA boards, attach sat grey wire to RX1, pin 19. Sat black wire to ground. Sat orange wire to Mega board's 3.3V (or any other 3V to 3.3V source).
For PROMINI, attach sat grey to RX0. Attach sat black to ground. */
- //#define SPEKTRUM 1024
+ #define SPEKTRUM 1024
//#define SPEKTRUM 2048
/******************************* SBUS RECIVER ************************************/
@@ -598,10 +598,10 @@
/**************************************************************************************/
/* uncomment this line if you plan to use a LCD or OLED */
- //#define LCD_CONF
+ #define LCD_CONF
/* to include setting the aux switches for AUX1 -> AUX4 via LCD */ //to review (activate[] is now 16 bit long)
- //#define LCD_CONF_AUX
+ #define LCD_CONF_AUX
/* if program gets too large (>32k), need to exclude some functionality */
/* uncomment to suppress some unwanted aux3 aux4 items in config menu (only useful if LCD_CONF_AUX is enabled) */
@@ -614,7 +614,7 @@
//#define LCD_VT100 // SERIAL LCD: vt100 compatible terminal emulation (blueterm, putty, etc.)
//#define LCD_ETPP // I2C LCD: Eagle Tree Power Panel LCD, which is i2c (not serial)
//#define LCD_LCD03 // I2C LCD: LCD03, which is i2c
- //#define OLED_I2C_128x64 // I2C LCD: OLED http://www.multiwii.com/forum/viewtopic.php?f=7&t=1350
+ #define OLED_I2C_128x64 // I2C LCD: OLED http://www.multiwii.com/forum/viewtopic.php?f=7&t=1350
/****************************** Logo settings ***********************************/
//#define SUPPRESS_OLED_I2C_128x64LOGO // suppress display of OLED logo to save memory
@@ -665,7 +665,7 @@
The active page on the LCD does get updated automatically
Easy to use with Terminal application or display like LCD - if available uses the 4 preconfigured buttons to send 'A', 'B', 'C', 'D' */
/******************************** Activation ***********************************/
- //#define LCD_TELEMETRY
+ #define LCD_TELEMETRY
/* to enable automatic hopping between a choice of telemetry pages uncomment this.
This may be useful if your LCD has no buttons or the sending is broken
@@ -677,7 +677,7 @@
//#define LCD_TELEMETRY_AUTO "212232425262729" // strong emphasis on page 2
/* same as above, but manual stepping sequence; requires stick input for each stepping */
- //#define LCD_TELEMETRY_STEP "0123456789" // must begin with 0
+ #define LCD_TELEMETRY_STEP "012345679" // must begin with 0
/* on telemetry page B (2) it gives a bar graph which shows how much voltage battery has left. Range from 0 to 12 Volt is not very informative
I noticed that the comment in config.h above the LCD_TELEMETRY_AUTO definition seems to be wrong - it states "roll=left & pitch forward" to switch pages, while the actual stick combo is "roll=right & pitch forward"
However, I too have a strange problem with the overview page that displays the battery voltage and uptime: the first line blinks and changes between the voltage/mAh display and the BARO altitude (that's where the "A" character comes from). It looks like a page wrap to me, which is odd since there should still be at least one line free...
Re: 0.96" SSD1306 128X64 OLED Display Module
The following patch fixed the flickering for me - there is no line 9 on the OLED...
Code: Select all
=== modified file 'LCD.ino'
--- LCD.ino 2012-07-03 15:52:04 +0000
+++ LCD.ino 2012-07-15 00:06:07 +0000
@@ -1663,7 +1663,7 @@
break;
case 5:// height
LCDsetLine(8);// to clear the unused line
- LCDsetLine(9);
+ // LCDsetLine(9);
#if BARO
int16_t h = (BaroAlt - BAROaltStart) / 100;
LCDprint('A'); lcdprint_int16(h); LCDprint('m');
Re: 0.96" SSD1306 128X64 OLED Display Module
No. Juzt checked ode.
Tele.auto is roll.left+nick.fwd
Tele.step is roll.right +nick.fwd
Tbose are two independAnt features.
about line9 cannot say.will check later.
Tele.auto is roll.left+nick.fwd
Tele.step is roll.right +nick.fwd
Tbose are two independAnt features.
about line9 cannot say.will check later.
Re: 0.96" SSD1306 128X64 OLED Display Module
Hamburger wrote:No. Juzt checked ode.
Tele.auto is roll.left+nick.fwd
Tele.step is roll.right +nick.fwd
Tbose are two independAnt features.
Ah, I see. I just looked at the comments in config.h for LCD_TELEMETRY_STEP, I admit I did not check the docs for all the available stick combos yet
Code: Select all
/* same as above, but manual stepping sequence; requires stick input for each stepping */
The "same as above" confused me into thinking that the stick sequence is also identical. I suggest expanding this as follows:
Code: Select all
/* same as above, but manual stepping sequence; requires stick input (throttle=low & roll=right & pitch=forward) to step through each defined telemetry page */
about line9 cannot say.will check later.
Thanks for looking into this! I also noticed I have some "blank" pages given the configuration above, I'll look into this and will try to report more details.
Re: 0.96" SSD1306 128X64 OLED Display Module
ok, comment changed in _shared.