Convert SPI to I2C for SSD1306/SH1106 OLED

Well, I'm a moron and have been bamboozled. I've purchased like 20 of these, because it said it was I2C: http://www.ebay.com/itm/282174165223?_trksid=p2060353.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT

After reading up on it, I guess they're really SPI. Since I can't afford to ship them back to China, is there a way of doing a solder bridge on to make it work with I2C?

I was looking at the SSD1306 datasheet, and some things weren't making sense. For example, the "SCL" pin (on the header) was reading continuity on a pin of the ribbon that was supposedly NC according to the datasheet.

Hi.

That's what you can expect when buying from some crappy e-bay seller who doesn't share decent info on the product. You could have been aware of the problem, if you would have taken a look at the available information. The example over there shows a clearly different picture than the product page (4 pins vs. 6 pins).

There is absolutely no other information from that seller. So you will have to inform us.

Show a clear and focused picture of back of the display you've got. Someone can probably tell you more about the options you will or will not have, based on that picture.

Please post a photo of the pcb side of your display. Or find a photo on an Ebay advert with an exact copy of your display pcb.

David.

This is an old topic, but it’s the first thing that popped up when I googled the same problem, so here’s the fix I ultimately found. I ordered a bunch of SPI-wired 0.96" OLEDs and then decided I need to use I2C instead the next day. After beeping out the resistors on the back, I figured out you can convert them pretty easily:

  1. Move the R3 resistor to the R1 position (leaving the R3 spot open).

  2. Bridge the R8 resistor spot (which should be open for the SPI wiring).

On the front then, the wiring to my project was exactly as labeled on the board.
GND >> GND
VCC >> VCC
SCL >> SCL
SDA >> SDA
RES >> Digital reset pin
DC >> VCC or GND

Connect the “DC” input (which is SA0 on the SSD1306) to either VCC or GND to set the I2C address to what you want.

DC/SA0 >> VCC = I2C address 0x3C

DC/SA0 >> GND = I2C address 0x3D

If you’re playing with the Adafruit SSD1306 library like I am, the default address in the code is 0x3C, so connect DC/SA0 to VCC.

drewsloan: This is an old topic, but it's the first thing that popped up when I googled the same problem, so here's the fix I ultimately found. I ordered a bunch of SPI-wired 0.96" OLEDs and then decided I need to use I2C instead the next day. After beeping out the resistors on the back, I figured out you can convert them pretty easily:

1) Move the R3 resistor to the R1 position (leaving the R3 spot open).

2) Bridge the R8 resistor spot (which should be open for the SPI wiring).

On the front then, the wiring to my project was exactly as labeled on the board. GND >> GND VCC >> VCC SCL >> SCL SDA >> SDA RES >> Digital reset pin DC >> VCC or GND

Connect the "DC" input (which is SA0 on the SSD1306) to either VCC or GND to set the I2C address to what you want.

DC/SA0 >> VCC = I2C address 0x3C

DC/SA0 >> GND = I2C address 0x3D

If you're playing with the Adafruit SSD1306 library like I am, the default address in the code is 0x3C, so connect DC/SA0 to VCC.

Sorry for resurrecting this topic but im using this OLED on a Wemos, so no digital reset pin. When converting it from SPI to ICC I get it almost everything, but what do I do with RES pin on the OLED? Do I leave it unsoldered or soldered to gnd and try or what should I do?

Most RES pins are active low. They might already have a pullup on the board. If in doubt, add a 10k from RES to 3.3V

David.

hello, maybe i'm not writing to the right place, but i hope after reading this post that somebody will help me to figure it out what i did wrong. I have this display also a put all cables and resistors to use i2c display instead of spi. But when i connect to and arduino Uno ver3 i got only random dots on whole display.i tried a lot of samples with different libs but the result it was the same. i appreciate any help or suggestions.

Thank you in advance.

Hi jonni_50, welcome

Read this thread (click !). I'm pretty sure it has the solution to your problem.