diff --git a/app/include/u8g2_displays.h b/app/include/u8g2_displays.h index 1935b7f1..3f1f662c 100644 --- a/app/include/u8g2_displays.h +++ b/app/include/u8g2_displays.h @@ -31,11 +31,26 @@ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_sh1106_i2c_128x64_vcomh0_f, sh1106_i2c_128x64_vcomh0) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_i2c_96x16_er_f, ssd1306_i2c_96x16_er) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_sh1106_i2c_128x64_noname_f, sh1106_i2c_128x64_noname) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_sh1107_i2c_64x128_f, sh1107_i2c_64x128) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_sh1107_i2c_seeed_96x96_f, sh1107_i2c_seeed_96x96) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_sh1107_i2c_128x128_f, sh1107_i2c_128x128) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_sh1108_i2c_160x160_f, sh1108_i2c_160x160) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_sh1122_i2c_256x64_f, sh1122_i2c_256x64) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_i2c_128x64_vcomh0_f, ssd1306_i2c_128x64_vcomh0) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_i2c_128x64_noname_f, ssd1306_i2c_128x64_noname) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1309_i2c_128x64_noname2_f, ssd1309_i2c_128x64_noname2) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_i2c_128x64_alt0_f, ssd1306_i2c_128x64_alt0) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_uc1611_i2c_ea_dogm240_f, uc1611_i2c_ea_dogm240) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1326_i2c_er_256x32_f, ssd1326_i2c_er_256x32 )\ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1327_i2c_seeed_96x96_f, ssd1327_i2c_seeed_96x96) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1327_i2c_ea_w128128_f, ssd1327_i2c_ea_w128128) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1327_i2c_midas_128x128_f, ssd1327_i2c_midas_128x128) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7567_i2c_64x32_f, st7567_i2c_64x32) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st75256_i2c_jlx256128_f, st75256_i2c_jlx256128) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st75256_i2c_jlx256160_f, st75256_i2c_jlx256160) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st75256_i2c_jlx240160_f, st75256_i2c_jlx240160) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st75256_i2c_jlx25664_f, st75256_i2c_jlx25664) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st75256_i2c_jlx172104_f, st75256_i2c_jlx172104) \ #define U8G2_DISPLAY_TABLE_I2C \ U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_i2c_128x64_noname_f, ssd1306_i2c_128x64_noname) \ @@ -72,18 +87,25 @@ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7920_s_192x32_f, st7920_s_192x32) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1325_nhd_128x64_f, ssd1325_nhd_128x64) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_128x64_noname_f, ssd1306_128x64_noname) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_128x64_alt0_f, ssd1306_128x64_alt0) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_sed1520_122x32_f, sed1520_122x32) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7565_ea_dogm128_f, st7565_ea_dogm128) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ld7032_60x32_f, ld7032_60x32) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1607_200x200_f, ssd1607_200x200) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1309_128x64_noname2_f, ssd1309_128x64_noname2) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_sh1106_128x64_noname_f, sh1106_128x64_noname) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_sh1107_64x128_f, sh1107_64x128) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_sh1107_seeed_96x96_f, sh1107_seeed_96x96) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_sh1107_128x128_f, sh1107_128x128) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_sh1108_160x160_f, sh1108_160x160) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_sh1122_256x64_f, sh1122_256x64) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_128x32_univision_f, ssd1306_128x32_univision) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7920_s_128x64_f, st7920_s_128x64) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7565_64128n_f, st7565_64128n) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_uc1701_ea_dogs102_f, uc1701_ea_dogs102) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_uc1611_ew50850_f, uc1611_ew50850) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1322_nhd_256x64_f, ssd1322_nhd_256x64) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1322_nhd_128x64_f, ssd1322_nhd_128x64) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7565_ea_dogm132_f, st7565_ea_dogm132) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1329_128x96_noname_f, ssd1329_128x96_noname) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7565_zolen_128x64_f, st7565_zolen_128x64) \ @@ -91,17 +113,37 @@ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_96x16_er_f, ssd1306_96x16_er) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ist3020_erc19264_f, ist3020_erc19264) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7588_jlx12864_f, st7588_jlx12864) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1326_er_256x32_f, ssd1326_er_256x32 )\ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1327_seeed_96x96_f, ssd1327_seeed_96x96) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1327_ea_w128128_f, ssd1327_ea_w128128) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1327_midas_128x128_f, ssd1327_midas_128x128) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st75256_jlx172104_f, st75256_jlx172104) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7565_nhd_c12832_f, st7565_nhd_c12832) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st75256_jlx256160_f, st75256_jlx256160) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st75256_jlx240160_f, st75256_jlx240160) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st75256_jlx25664_f, st75256_jlx25664) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_64x48_er_f, ssd1306_64x48_er) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_pcf8812_96x65_f, pcf8812_96x65) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7567_pi_132x64_f, st7567_pi_132x64) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7567_jlx12864_f, st7567_jlx12864) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7567_enh_dg128064i_f, st7567_enh_dg128064i) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7567_64x32_f, st7567_64x32) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7586s_s028hn118a_f, st7586s_s028hn118a) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7586s_erc240160_f, st7586s_erc240160) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_pcd8544_84x48_f, pcd8544_84x48) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_sh1106_128x64_vcomh0_f, sh1106_128x64_vcomh0) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_nt7534_tg12864r_f, nt7534_tg12864r) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_uc1701_mini12864_f, uc1701_mini12864) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_t6963_240x128_f, t6963_240x128) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_t6963_240x64_f, t6963_240x64) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_t6963_256x64_f, t6963_256x64) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_t6963_128x64_f, t6963_128x64) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_t6963_160x80_f, t6963_160x80) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_lc7981_160x80_f, lc7981_160x80) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_lc7981_160x160_f, lc7981_160x160) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_lc7981_240x128_f, lc7981_240x128) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_lc7981_240x64_f, lc7981_240x64) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_hx1230_96x68_f, hx1230_96x68) \ #define U8G2_DISPLAY_TABLE_SPI \ U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_128x64_noname_f, ssd1306_128x64_noname) \ diff --git a/app/platform/u8x8_nodemcu_hal.c b/app/platform/u8x8_nodemcu_hal.c index ab78bf36..475da763 100644 --- a/app/platform/u8x8_nodemcu_hal.c +++ b/app/platform/u8x8_nodemcu_hal.c @@ -50,6 +50,7 @@ uint8_t u8x8_gpio_and_delay_nodemcu(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, case U8X8_MSG_DELAY_MILLI: // delay arg_int * 1 milli second os_delay_us( arg_int * 1000 ); + system_soft_wdt_feed(); break; case U8X8_MSG_DELAY_I2C: // arg_int is the I2C speed in 100KHz, e.g. 4 = 400 KHz diff --git a/app/u8g2lib/u8g2 b/app/u8g2lib/u8g2 index 7f2fc42a..d4da8254 160000 --- a/app/u8g2lib/u8g2 +++ b/app/u8g2lib/u8g2 @@ -1 +1 @@ -Subproject commit 7f2fc42af3d01fdfe2cc19320bdcfe693dd2b20d +Subproject commit d4da8254220adf39db44faa52a0842967095d230 diff --git a/docs/en/modules/u8g2.md b/docs/en/modules/u8g2.md index fbe1db02..2214c14d 100644 --- a/docs/en/modules/u8g2.md +++ b/docs/en/modules/u8g2.md @@ -41,12 +41,17 @@ The NodeMCU firmware supports the following displays in I²C and SPI mode: - ld7032 60x32 - sh1106 128x64 +- sh1107 - variants 64x128, seeed 96x96, 128x128 +- sh1108 160x160 - ssd1305 128x32 - ssd1306 - variants 128x32, 128x64, 64x48, and 96x16 - ssd1309 128x64 - ssd1325 128x63 -- ssd1327 96x96 +- ssd1326 er 256x32 +- ssd1327 - variants 96x96, ea w128128, and midas 128x128 +- st7567 64x32 - st7588 jlx12864 +- st75256 - variants jlx256128, jlx256160, jlx240160, jlx25664, and jlx172104 - uc1601 128x32 - uc1604 jlx19264 - uc1608 - 240x180 and erc24064 variants @@ -55,24 +60,28 @@ The NodeMCU firmware supports the following displays in I²C and SPI mode: SPI only: +- hx1230 96x68 - il3820 v2 296x128 - ist3020 erc19264 +- lc9081 - variants 160x80, 160x160, 240x128, and 240x64 - ls013b7dh03 128x128 - max7219 32x8 - nt7534 tg12864r - pcd8544 84x48 - pcf8812 96x65 - sed1520 122x32 -- ssd1322 nhd 256x64 +- ssd1322 nhd 256x64 and nhd 128x64 variants - ssd1329 128x96 - ssd1606 172x72 - ssd1607 200x200 - st7565 - variants 64128n, dogm128/132, erc12864, lm6059, c12832/c12864, and zolen 128x64 -- st7567 - 132x64 and jlx12864 variants +- st7567 - variants 132x64, jlx12864, and enh_dg128064i +- st7586 - s028hn118a and erc240160 variants - st75256 - jlx172104 and jlx256128 variants +- t6963 - variants 240x128, 240x64, 256x64, 128x64, and 160x80 - uc1701 - dogs102 and mini12864 variants -This integration uses full "RAM" memory buffer without picture loop and calls u8g2's `begin()` internally when creating a display object. It is based on [v2.19.8](https://github.com/olikraus/U8g2_Arduino/releases/tag/2.19.8). +This integration uses full "RAM" memory buffer without picture loop and calls u8g2's `begin()` internally when creating a display object. It is based on [v2.23.18](https://github.com/olikraus/U8g2_Arduino/releases/tag/2.23.18). ## Overview @@ -152,17 +161,31 @@ Initialize a display via I²C. - `u8g2.ld7032_i2c_60x32()` - `u8g2.sh1106_i2c_128x64_noname()` - `u8g2.sh1106_i2c_128x64_vcomh0()` +- `u8g2.sh1107_i2c_64x128()` +- `u8g2.sh1107_i2c_seeed_96x96()` +- `u8g2.sh1107_i2c_128x128()` +- `u8g2.sh1108_i2c_160x160()` - `u8g2.ssd1305_i2c_128x32_noname()` - `u8g2.ssd1306_i2c_128x32_univision()` - `u8g2.ssd1306_i2c_128x64_noname()` - `u8g2.ssd1306_i2c_128x64_vcomh0()` - `u8g2.ssd1309_i2c_128x64_noname0()` - `u8g2.ssd1309_i2c_128x64_noname2()` +- `u8g2.ssd1306_i2c_128x64_alt0()` - `u8g2.ssd1306_i2c_64x48_er()` - `u8g2.ssd1306_i2c_96x16_er()` - `u8g2.ssd1325_i2c_nhd_128x64()` +- `u8g2.ssd1326_i2c_er_256x32()` - `u8g2.ssd1327_i2c_seeed_96x96()` +- `u8g2.ssd1327_i2c_ea_w128128()` +- `u8g2.ssd1327_i2c_midas_128x128()` +- `u8g2.st7567_i2c_64x32()` - `u8g2.st7588_i2c_jlx12864()` +- `u8g2.st75256_i2c_jlx25664()` +- `u8g2.st75256_i2c_jlx172104()` +- `u8g2.st75256_i2c_jlx240160()` +- `u8g2.st75256_i2c_jlx256128()` +- `u8g2.st75256_i2c_jlx256160()` - `u8g2.uc1602_i2c_128X32()` - `u8g2.uc1604_i2c_jlx19264()` - `u8g2.uc1608_i2c_erc24064()` @@ -206,8 +229,13 @@ disp = u8g2.ssd1306_i2c_128x64_noname(id, sla) ## SPI Display Drivers Initialize a display via Hardware SPI. +- `u8g2.hx1230_96x68()` - `u8g2.il3820_v2_296x128()` - `u8g2.ist3020_erc19264()` +- `u8g2.lc7981_160x80()` +- `u8g2.lc7981_160x80()` +- `u8g2.lc7981_160x80()` +- `u8g2.lc7981_160x80()` - `u8g2.ld7032_60x32()` - `u8g2.ls013b7dh03_128x128()` - `u8g2.max7219_32x8()` @@ -216,19 +244,29 @@ Initialize a display via Hardware SPI. - `u8g2.pcf8812_96x65()` - `u8g2.sh1106_128x64_noname()` - `u8g2.sh1106_128x64_vcomh0()` +- `u8g2.sh1107_64x128()` +- `u8g2.sh1107_seeed_96x96()` +- `u8g2.sh1107_128x128()` +- `u8g2.sh1108_160x160()` +- `u8g2.sh1122_256x64()` - `u8g2.ssd1305_128x32_noname()` - `u8g2.ssd1306_128x32_univision()` - `u8g2.ssd1306_128x64_noname()` - `u8g2.ssd1306_128x64_vcomh0()` +- `u8g2.ssd1306_128x64_alt0()` - `u8g2.ssd1306_64x48_er()` - `u8g2.ssd1306_96x16_er()` - `u8g2.ssd1309_128x64_noname0()` - `u8g2.ssd1309_128x64_noname2()` -- `u8g2.sed1520_122x32()` +- `u8g2.ssd1322_nhd_128x64()` +- `u8g2.ssd1326_er_256x32()` +- `u8g2.ssd1327_ea_w128128()` +- `u8g2.ssd1327_midas_128x128()` - `u8g2.ssd1322_nhd_256x64()` - `u8g2.ssd1325_nhd_128x64()` - `u8g2.ssd1327_seeed_96x96()` - `u8g2.ssd1329_128x96_noname()` +- `u8g2.sed1520_122x32()` - `u8g2.ssd1606_172x72()` - `u8g2.ssd1607_200x200()` - `u8g2.st7565_64128n()` @@ -239,13 +277,25 @@ Initialize a display via Hardware SPI. - `u8g2.st7565_nhd_c12832()` - `u8g2.st7565_nhd_c12864()` - `u8g2.st7565_zolen_128x64()` +- `u8g2.st7567_enh_dg128064i()` +- `u8g2.st7567_64x32()` - `u8g2.st7567_jxl12864()` - `u8g2.st7567_pi_132x64()` +- `u8g2.st7586s_s028hn118a()` +- `u8g2.st7586s_erc240160()` - `u8g2.st7588_jlx12864()` - `u8g2.st7920_s_128x64()` - `u8g2.st7920_s_192x32()` +- `u8g2.st75256_jlx25664()` - `u8g2.st75256_jlx172104()` +- `u8g2.st75256_jlx240160()` - `u8g2.st75256_jlx256128()` +- `u8g2.st75256_jlx256160()` +- `u8g2.t6963_240x128()` +- `u8g2.t6963_240x64()` +- `u8g2.t6963_256x64()` +- `u8g2.t6963_128x64()` +- `u8g2.t6963_160x80()` - `u8g2.uc1601_128X32()` - `u8g2.uc1604_jlx19264()` - `u8g2.uc1608_240x128()`