Need Help to manage OLED with Arduino UNO

Good night everybody.

My name is Vincent. I have some problems to wire and setup my OLED Display with arduino.

I bought a OLED Display ( )

I´ve connect wires as here shows:

" The Serial 4 Line SPI Reference Example "

Then, I download the " u8glib_arduino_v1.17pre2" that linked in other chat.

And, It doesn´t work, the display make nothing... I´ve tried with other display (the same model), and nothing...

I don´t know what to do... and, as you can see, I don´t have so knowledge of this kind of things, but I have to do.

Hope don´t bother you, and thanks for your time.


First we need to check your connections. Which Arduino board are you using and what connections have you made between the Arduino board and the display? I need a simple net list, I. E. Connected Arduino pin 13 to display pin x, etc etc

How are you powering the display?

Also attach the sketch for checking, since you may not be using the correct one.

Also please confirm you have set the configuration links on the display board for 4 wire SPI as per pdf document. This may involve fitting or removing links or resistors.

Hi rowboteer.

I connected like this:


2 5V
3 ------
6 ------
10 GND
11 GND
12 GND
13 GND
14 DC A0
16 CS A3


Ok, and what configuration links are fitted/not fitted to the display circuit board in positions R18, R19, R20 and R21?

I attached the pic, better.


Okay, great photo!

I see that R18 and R21 are fitted, this means the display is configured for the parallel interface (8080 MCU mode) in the diagram you provided a link to.

If you want to use the 4 wire SPI interface you will need to unsolder the link resistor from position R18 and refit it in position R19. Then try your sketch again.

Based on the discussion in the thread you mention, and after examining the "Hello world" example sketch, the constructor line you should use for the SPI 4 line interface is:

U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9

If you have changed the pin allocations in that constructor to the ones you have wired up then it may work, but the SPI data and clock lines will then be "bit bashed" by software hence display updates will be relatively slow. It would be advisable to use the hardware SPI pins as listed in the constructor above.

Looking at the data sheet indicates the display has 3.3V input logic levels, the 5V levels from the UNO may damage it, thus you should add protection resistors in line with some connections. I have no way of testing this but I would try the connections as follows:

2 5V
3 ------
4 through 1K2 resistor to pin 13 (SCLK)
5 through 1K2 resistor to pin 11 (SDIN)
6 ------
7 ------
8 ------
9 ------
10 ------
11 ------
12 ------ (or connect to 3.3V, or via 10K resistor to 5V)
13 ------ (or connect to 3.3V, or via 10K resistor to 5V)
14 through 1K2 resistor to pin 9 (/DC)
15 through 1K2 resistor to RESET
16 through 1K2 resistor to pin 10 (/CS)

The 1K2 resistors should protect the display logic inputs from damage.

Report back on your findings!

Ok, Thanks !!!

I'm gonna do it and try again, and let you know if it runs.

Hi Rowboteer.

Sorry cause I was on vacation, and I didnt answer.

IT RUNS when I did the changes that you wrote.

Thanks a lot !!!

Hi Rowboteer.

I did the changes that you told me, and IT RUNS !!!

Thanks a lot for your time and knowledge. :wink:

I attached the picture !!!


Great to hear it is working. I like the picture :smiley: