Go Down

Topic: Getting an 0.96in 128x64 OLED to work  (Read 773 times) previous topic - next topic


Mar 18, 2017, 09:19 am Last Edit: Mar 18, 2017, 10:13 am by electrophile
I had bought these a while ago and just got around to experimenting with them. I've hooked it up as shown in the attached schematic and when I turn on power, I don't see anything on the screen. Using a 5V, 16Mhz Arduino Pro Mini as the MCU board that is being programmed using a FTDI basic 5V. Using Adafruit's GFX and SD1306 libraries. Following the wiring guide shown here. What am I missing?

Edit: attached photos of the actual module that I have. It seems the original site has a different one now without the CS pin.


Mar 18, 2017, 10:43 am Last Edit: Mar 18, 2017, 10:49 am by david_prentice
I have exactly the same OLED.   It came as an SPI device.   It worked 100% as SPI.   However,  I wanted to test I2C operation.   So I configured it for I2C and I2C works 100% too.

I am gobsmacked by your wiring and even more gobsmacked by the tutorial.
I would expect to use the hardware SPI pins.

Your "unusual" choice of pins will work fine with bit-bashed SPI.
It just means that you have to use the full-fat constructor.   i.e. which specifies every pin including the RES pin.


Edit.  Just looked.  The example defaults to bit-bashed SPI with the "unusual" wiring.  So it should work straight out of the box.


Mar 20, 2017, 03:03 am Last Edit: Mar 20, 2017, 03:12 am by electrophile
Thanks David. Except it doesn't work at all :( Can you share your wiring diagram for both SPI and I2C? Also what changes did you make for I2C? Did you power it through 3.3V or 5V?


The SSD1306 is a 3.3V device.   I always use 3.3V logic with a 3.3V device.

Having said that,   many people are determined to use 5V logic and I presume that it will work for them.

Your tutorials and examples give you a wiring scheme.   I suggest that you follow their advice.   
Test all your Chinese jumper wires.    How many are broken?
Double check your wiring with the tutorials.
Post a clear photo for other eyes to check the wiring.



Not sure if you're checked this, but I had the same problem of no display and it plagued me for days. In the .h code, there are a series of commented out lines related to the size of the screen. It turned out that the 128 x 64 screen size line was commented out // and the default was uncommented. Simple uncommenting the 128 x 64 and commenting out the other and presto, it worked. Maybe this is what's wrong. Wish you the best.

Go Up