0.96' i2c oled' fine, 1.3" not so, please help.

Hi guys, I'm typically using the 0.96 oleds for my project, but this time, I got 1.3'' one to test. Both displays are 128X64 resolution, and all looks fine on 0.96 and little corrupted on 1.3. Please check the picture:

As you can see, the text is cut on the left, and a vertical line is present on the right.
I'm using U8glib library, and it's arduino pro mini 16mhz driven.

This is the 1.3'' display I'm using : http://www.ebay.co.uk/itm/121409368984?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT

Please help me to fix the issue.
Many thanks!

Ok, seems to be a common question with 1.3'', found the solution by using the SH1106 constructor.

Hi.
This has nothing to do with the size of the panel.
It is a known "issue".
It has a slightly different driver chip, and you have to select the correct one (i.e. 1106).
This can be a bit tricky, because a lot of sellers sell it as a 1306 and that includes the source you got it from.

Hello, I had exactly this problem, same vertical line.

I solved it with pull-up resistors in the i2c bus.
The schematic is really simple, put a 3.3kohm resistor between SCL and VCC, and another one between SDA and VCC.

With pull-up resistors the display started working just fine.

I can add this information: If you are using u8g library, you need to change this part of code:

open the file: ...\Arduino\libraries\U8glib\src\clib\u8g_dev_ssd1306_128x64.c
edit the 0x000 to 0x002

static const uint8_t u8g_dev_ssd1306_128x64_data_start[] PROGMEM = {
U8G_ESC_ADR(0), /* instruction mode /
U8G_ESC_CS(1), /
enable chip /
0x010, /
set upper 4 bit of the col adr to 0 /
0x002, /
set lower 4 bit of the col adr to 0 / <----- FROM 0x000 to 0x002
U8G_ESC_END /
end of sequence */
};

hope it can helps someone.
bye! :slight_smile:

The SH1106 and the SSD1306 are almost identical. The biggest difference is the two pixel offset.
There is no need to modify the SSD1306 device, just use the SH1106 constructor.

Oliver