// Init sequence for 128x64 OLED module SSD1306_WRITECOMMAND(SH1106_DISPLAYOFF); // 0xAE SSD1306_WRITECOMMAND(SH1106_SETDISPLAYCLOCKDIV); // 0xD5 SSD1306_WRITECOMMAND(SH1106_MEMORYMODE); // 0x20 SSD1306_WRITECOMMAND(0x80); // the suggested ratio 0x80 SSD1306_WRITECOMMAND(SH1106_SETMULTIPLEX); // 0xA8 SSD1306_WRITECOMMAND(0x3F); SSD1306_WRITECOMMAND(SH1106_SETDISPLAYOFFSET); // 0xD3 SSD1306_WRITECOMMAND(0x00); // no offset SSD1306_WRITECOMMAND(SH1106_SETSTARTLINE | 0x0); // line #0 0x40 SSD1306_WRITECOMMAND(SH1106_CHARGEPUMP); // 0x8D SSD1306_WRITECOMMAND(0x10); SSD1306_WRITECOMMAND(0x00); // 0x0 act like ks0108 SSD1306_WRITECOMMAND(SH1106_SEGREMAP | 0x1); SSD1306_WRITECOMMAND(SH1106_COMSCANDEC); SSD1306_WRITECOMMAND(SH1106_SETCOMPINS); // 0xDA SSD1306_WRITECOMMAND(0x12); SSD1306_WRITECOMMAND(SH1106_SETCONTRAST); // 0x81 // if (vccstate == SH1106_EXTERNALVCC) // {SSD1306_WRITECOMMAND(0x9F); } // else SSD1306_WRITECOMMAND(0xCF); SSD1306_WRITECOMMAND(SH1106_SETPRECHARGE); // 0xd9 // if (vccstate == SH1106_EXTERNALVCC) SSD1306_WRITECOMMAND(0x22); // else //SSD1306_WRITECOMMAND(SH1106_SETVCOMDETECT); // 0xDB SSD1306_WRITECOMMAND(0x40); SSD1306_WRITECOMMAND(SH1106_DISPLAYALLON_RESUME); // 0xA4 SSD1306_WRITECOMMAND(SH1106_NORMALDISPLAY); SSD1306_WRITECOMMAND(SH1106_MEMORYMODE); // 0x20