Pages: [1]   Go Down
Author Topic: Does someone got this OLED working? --> 128x64 Display Module SSD1306  (Read 5870 times)
0 Members and 2 Guests are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

I'm new to this and have some problems to get this OLED working with my Arduino Nano:

http://www.ebay.de/itm/New-3-3V-0-96-128x64-OLED-Display-Module-SSD1306-Arudino-AVR-Blue-6800-iic-/261068643292?pt=LH_DefaultDomain_0&hash=item3cc8e75bdc

I bought this from Ebay, because there are no possibilties to get a similiar one here in Germany smiley-sad
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.

So it is difficult for me to find out if it is the wiring OLED module or do I need a special library + code? I used this  wiring scheme:
OLED              Ardunio Nano
Pin 1 Vcc           +5V
Pin 2 GND          GND
Pin 3 CS#          Pin 12
Pin 4 RST          Pin 13
Pin 5 D/C#        Pin 11
Pin 8 D0            Pin 10 (CLK)
Pin 9 D1 (SAD)    Pin 9 (Mosi)

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?

Any help is appreciated!
Thanks
« Last Edit: October 24, 2012, 06:02:20 am by eisberlin » Logged

Manchester (England England)
Offline Offline
Brattain Member
*****
Karma: 596
Posts: 33288
Solder is electric glue
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

What is this library you tried to use? A link would be good.

That module uses the SD1306 controller. You must look for a data sheet for that device. I haven't been able to find on with a quick look.

Quote
Then desoldered resistors for 4 wiring: Download some  example code, but it seems that all use the same code from adafruit
So how was it interfacing? Again without links you don't give anyone a chance of finding out what to do.
Logged

Manchester (England England)
Offline Offline
Brattain Member
*****
Karma: 596
Posts: 33288
Solder is electric glue
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

This is very similar, almost the same as a module I have.
This link had the data sheet and how to wire it up along with some sample code:-
http://www.ebay.co.uk/itm/0-96-128x64-OLED-Display-Module-SSD1306-Arudino-AVR-/130536921656?pt=LH_DefaultDomain_0&hash=item1e649b5a38
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

What is this library you tried to use? A link would be good.

That module uses the SD1306 controller. You must look for a data sheet for that device. I haven't been able to find on with a quick look.

Quote
Then desoldered resistors for 4 wiring: Download some  example code, but it seems that all use the same code from adafruit
So how was it interfacing? Again without links you don't give anyone a chance of finding out what to do.

Helllo Grumpy_Mike,
thank you for your answer. I used this libraries and follwed this descriptions:

http://www.electrodragon.com/?p=3860
http://www.electrodragon.com/?product=mini-oled-1 Her you will find the datasheet I used.

The "configuration" for the BS resistors I made following this table:
http://www.electrodragon.com/wp-content/uploads/2012/06/oled-interface..png

Yes, yours looks like mine except the pcb and the product pages "tells" me that it should work like I did it.
Did yours worked out of the box?

At the moment I'm at work and will try the links from "your" ebay auction this evening.

Thank you!
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

This is very similar, almost the same as a module I have.
This link had the data sheet and how to wire it up along with some sample code:-
http://www.ebay.co.uk/itm/0-96-128x64-OLED-Display-Module-SSD1306-Arudino-AVR-/130536921656?pt=LH_DefaultDomain_0&hash=item1e649b5a38

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.

Thanks
Logged

Manchester (England England)
Offline Offline
Brattain Member
*****
Karma: 596
Posts: 33288
Solder is electric glue
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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.

Hm, confused - again smiley-sad
Vcc MAX: 5.5V
High Level Input V / H MAX: 3.6V
So 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? smiley-sad
What will do your 100R resistor and the zener in detail?

Logged

Manchester (England England)
Offline Offline
Brattain Member
*****
Karma: 596
Posts: 33288
Solder is electric glue
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
This means, in worst case I have killed the module?
Worst case yes but I think it not likely.

Quote
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)
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
This means, in worst case I have killed the module?
Worst case yes but I think it not likely.

Quote
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)

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.

Maybe I will get my module working this evening.

With kind regards
Logged

Germany
Offline Offline
Edison Member
*
Karma: 131
Posts: 1438
If you believe something is right, you won't see what's wrong (David Straker).
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.

I used use the Oled 128x64 code examples from Adafruit:
http://learn.adafruit.com/monochrome-oled-breakouts/arduino-library-and-examples

You have to change the baud speed to: Serial.begin (9600)

Have a look at the 2 pictures of my display and the 4 wire pinout for the arduino...

Thanks to all!



* oled1.jpg (24.31 KB, 300x169 - viewed 231 times.)

* oled2.jpg (13.41 KB, 200x166 - viewed 205 times.)
« Last Edit: October 25, 2012, 02:50:03 pm by eisberlin » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I'm have the same OLED display and am having trouble running the Adafruit example code as well. I am using an Arduino Mega 2560.

The SPI pins for the Mega are: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS)

The SPI pins for the Nano are: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)

So OLED
pin 9   (D1) goes to pin 51
pin 10 (D0) goes to pin 52
pin 15 (CS) goes to pin 53
pin 14 (RES) goes to reset pin by 3.3V pin
pin 13 (DC) goes where?

I am new to all of this and can't seem to figure out how to get this to work. Any help would be much appreciated!

Thanks
Logged

Manchester (England England)
Offline Offline
Brattain Member
*****
Karma: 596
Posts: 33288
Solder is electric glue
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

0
Offline Offline
Shannon Member
****
Karma: 199
Posts: 11639
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 from
the 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 Arduino
hardware 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 correctly
with the 0R resistors (all set to 0 for SPI 4-wire).




Logged

[ I won't respond to messages, use the forum please ]

Pages: [1]   Go Up
Jump to: