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.
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.
David.
Edit. Just looked. The example defaults to bit-bashed SPI with the "unusual" wiring. So it should work straight out of the box.
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.
David.
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.