diff --git a/include/Display_Graphic.h b/include/Display_Graphic.h index 270ee81d..e49bf9f6 100644 --- a/include/Display_Graphic.h +++ b/include/Display_Graphic.h @@ -20,6 +20,7 @@ enum DisplayType_t { SSD1306, SH1106, SSD1309, + ST7567_GM12864I_59N, DisplayType_Max, }; diff --git a/src/Display_Graphic.cpp b/src/Display_Graphic.cpp index 7f5d94c3..12b2aa56 100644 --- a/src/Display_Graphic.cpp +++ b/src/Display_Graphic.cpp @@ -13,6 +13,7 @@ std::map { DisplayType_t::SSD1306, [](uint8_t reset, uint8_t clock, uint8_t data, uint8_t cs) { return new U8G2_SSD1306_128X64_NONAME_F_HW_I2C(U8G2_R0, reset, clock, data); } }, { DisplayType_t::SH1106, [](uint8_t reset, uint8_t clock, uint8_t data, uint8_t cs) { return new U8G2_SH1106_128X64_NONAME_F_HW_I2C(U8G2_R0, reset, clock, data); } }, { DisplayType_t::SSD1309, [](uint8_t reset, uint8_t clock, uint8_t data, uint8_t cs) { return new U8G2_SSD1309_128X64_NONAME0_F_HW_I2C(U8G2_R0, reset, clock, data); } }, + { DisplayType_t::ST7567_GM12864I_59N, [](uint8_t reset, uint8_t clock, uint8_t data, uint8_t cs) { return new U8G2_ST7567_ENH_DG128064I_F_HW_I2C(U8G2_R0, reset, clock, data); } }, }; // Language defintion, respect order in languages[] and translation lists @@ -50,6 +51,9 @@ void DisplayGraphicClass::init(Scheduler& scheduler, const DisplayType_t type, c if (isValidDisplay()) { auto constructor = display_types[_display_type]; _display = constructor(reset, clk, data, cs); + if (_display_type == DisplayType_t::ST7567_GM12864I_59N) { + _display->setI2CAddress(0x3F << 1); + } _display->begin(); setContrast(DISPLAY_CONTRAST); setStatus(true);