I bought this from Ebay, because there are no possibilties to get a similiar one here in Germany but that is not the pont. I found a lot of similar products but the datasheets are not equal and my knowledge to intrepret them is not as good.

What I have done is:

1.) Tried i2c: Desoldered the resistor for BS0-2 as described and download the libraries / examples from adafruit --> Complied correctly but no success to light up the OLED!2.) Then desoldered resistors for 4 wiring: Download some example code, but it seems that all use the same code from adafruit. --> No success.

I tried to use Pin 10 on the OLED (SDAin?) also. But all with no luck. Do I have to pull some pins of the Oled Module high or low in addition?Note: The power led of the Oled module powers up when the board is connected.

Does someone know if there is a "simple" way to test the display, so I can check if it's broken?

One question came up: Did you use a level shifter? The Adafruit tutorial uses one.The picture on ebay shows a 3.3V connection. I used the 5V connection. Could this be a problem? The datasheet notet, that it would work up to 5.5V.

Where was that?Page 47 says the maximum input voltage is 0.3 + Vdd and page 48 says the maximum Vdd can be is 3V3. However, I used the I2C interface and used a library that did not enable the pull up resistors and I added 3K3 pull ups to the 3V3 supply.

You could used a 100R resistor and a 3V1 zener between each of the arduino's outputs and the module if you wanted to do the SPI interface.

Where was that?Page 47 says the maximum input voltage is 0.3 + Vdd and page 48 says the maximum Vdd can be is 3V3. However, I used the I2C interface and used a library that did not enable the pull up resistors and I added 3K3 pull ups to the 3V3 supply.

You could used a 100R resistor and a 3V1 zener between each of the arduino's outputs and the module if you wanted to do the SPI interface.

Hm, confused - again Vcc MAX: 5.5VHigh Level Input V / H MAX: 3.6VSo when I connect Vcc with 5V from the Arduino board, this will propably kill the controller. This means, in worst case I have killed the module? What will do your 100R resistor and the zener in detail?

The zener across the input to the module will stop the voltage from rising above the power rail. The resistor will limit the current through the zener and stop the arduino from putting out too much current for the output pin.Like in this example that uses a zener.http://www.thebox.myzen.co.uk/Tutorial/Protection.html

I have a friend that I think wired it up directly, let me see if I can contact him and ask. (back soon)

The zener across the input to the module will stop the voltage from rising above the power rail. The resistor will limit the current through the zener and stop the arduino from putting out too much current for the output pin.Like in this example that uses a zener.http://www.thebox.myzen.co.uk/Tutorial/Protection.html

I have a friend that I think wired it up directly, let me see if I can contact him and ask. (back soon)

That sounds really good. In the meantime I googled the part of the zener diode. I think the adafruit guys used this level shifter thing.I will come back later, to see what going on here.

For SPI (and probably also I2C) mode you also need to tie RD and RW to GND.Also, a level shifter is required.

Software: U8glib supports SSD1306...

Oliver

Hi, got it! Stupid mistake. I worked with the wrong datasheet. Grumpi_mike gave me the right hint. Thank you man!So for all: 4wire SPI worked nearly out of the box - i2c NOT! I stopped struggeling with i2c. Someone else may try Oliver's suggestion.

You can't just connect the output pins from the arduino directly to the display, you have to perform a level shifting on them.The power should be connected to 3V3 supply and the lines through either potential dividers to make the maximum voltage 3V3 or a logic level converter, of as I used an open collector non inverting buffer with a 1K8 pull up resistor to 3V3. I used a 74LS07, there are six buffers in the one package.

You need to connect SCLK, MOSI and CS for SPI (via level shifters), no need for MISO, you don't need to read anything back fromthe display. Simplest level shifter is a resistive R-2R divider (say 2k2 from GND to display pin, 1k resistor from display pin to Arduino pin).

SCLK is pin 10 (= D0) on the connector, MOSI is pin 9 (= D1) on the connector and CS is pin 15.

You will need to use 4-wire SPI and also use a level shifter to drive the D/C pin (pin 13 on connector) (the reason is that Arduinohardware only handles 8-bit SPI transactions and the 3-wire mode uses 9-bit transactions).

Table 8.1 in the datasheet explains what you need to do with the other pins, and of course the BS lines must be set correctlywith the 0R resistors (all set to 0 for SPI 4-wire).

[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]