Here are a couple init settings I've used with SSD1306 OLED displays (you'll notice many of the 'default' settings were used). Hope this helps.
Code:
/************************************************************************
* init command sequence for 0.96" SSD1306 SPI 128x64 OLED display *
************************************************************************/
const unsigned char ssdcfg[] = {
// 0xAE, // displayoff . . . . . . . (default)
// 0xD5, 0x80, // displayclockdiv & param (default)
// 0xA8, 0x3F, // setmultiplex & param () (default)
// 0xD3, 0x00, // setdisplayoffset & param (default)
// 0x40, // setstartline . . . . . . (default)
0x8D, 0x14, // chargepump & param
0x20, 0x00, // memorymode 'horizontal'
// 0xA1, // segremap (A0/A1, flip horizontally)
// 0xC8, // comscandec (C0/C8, flip vertically)
// 0xDA, 0x12, // setcompins () . . . . . (default)
// 0x81, 0x7F, // setcontrast, 0-255 . . . (default)
0xD9, 0xF1, // setprecharge
0xDB, 0x40, // setvcomdetect
// 0xA4, // displayallon_resume . . (default)
// 0xA6, // normaldisplay . . . . . (default)
0xAF // displayon
}; //
Code:
/************************************************************************
* init command sequence for 0.91" SSD1306 I2C 128x32 OLED display *
************************************************************************/
const unsigned char ssdcfg[] =
{
// 0xAE, // displayoff *
// 0xD5, 0x80, // displayclockdiv & param *
0xA8, 0x1F, // setmultiplex & param ()
// 0xD3, 0x00, // setdisplayoffset & param *
// 0x40, // setstartline *
0x8D, 0x14, // chargepump & param
0x20, 0x00, // memorymode 'horizontal'
// 0xA1, // segremap (A0/A1, flip horizontally)
// 0xC8, // comscandec (C0/C8, flip vertically)
0xDA, 0x02, // setcompins ()
0x81, 0x5F, // setcontrast
0xD9, 0xF1, // setprecharge
0xDB, 0x40, // setvcomdetect
// 0xA4, // displayallon_resume
// 0xA6, // normaldisplay
0xAF // displayon
}; //