1.3" Oled rewiring

Hey, I bought one of these 1.3" Oled display and wanted to integrate it to my PCB. I got the original schematics, edited it a little and got a PCB manufactured. The display won't show up. It is set to I2C mode but it won't show up with my design. At this point, I tried everything I could. I tried pulling reset high and low without any luck. changing resistors. rechecking the wiring but still can't get it to work. Here is my design.

It is based on adafruits 1.3" pcb design


Here is the datasheet. http://www.buydisplay.com/download/manual/ER-OLED013-1_Series_Datasheet.pdf
If anyone can help me debug this I would be grateful I have spent a week on it and can't get it to work still.

Go on. You have not got any pullups on the SDA, SCL lines. Pull up to 3.3V. Any value from 820R to 10k should be fine.

Thanks I will try it. too bad I managed to destroy my adapter so I cant right now. A new one should arrive soon

Still no luck. any other advice?

You left off some of Adafruit circuits? Your cut and paste schematic does not show the 3.3v/5v level shifters which Adafruit uses, and are shown in the schematic on their web site.

Also, you also haven't said what development board/processor you will be using. Is this a 5v or 3.3v processor?

You’ve tried:
/CS pulled low (10k)
/RES pulled high 3.3v (10k)
DC/I2C_SA0 pulled (say) low (10k). (I2C address change)

And used an I2C scanner sketch to see if you can detect it.

Your R7 is redundant but does no harm.

Post the code you are using to test it and showing the I2C address you are attempting to contact it on.

Your schematic looks fine. Compare it to the real life pcb that you have on your desk.

From memory, /CS, /RST should both be high for I2C. I would use pullup on RST. Then you can wiggle it under program control (if necessary)
Surely it would have been wiser to simply steal the Adafruit components, pcb layout, traces, ...

David.

I did leave out the level shifter as I am running the breadboard prototype from a 3v3 external source. The processor is a raspberry pi zero w using the i2cdetect -y command I don't see the board as opposed to a done PCB where it shows up straight away. Only the SCL and SDA are connected from the breadboard. The original idea WAS to steal the schematic and make my own layout but I did fail at it apparently. I might try to rebuild the breadboard tomorrow in case I find something I missed. I tried all the suggestions and cant see it running.

Finally I managed to get it to work. CS connected to 3.3V and RST connected to 3.3V directly. I dont know if there were some other errors I did but I did rebuild my prototype and now it seems to work. thanks for all the help

That seems quite correct.
I2C: /CS=1, /RST=1
SPI: /CS=0, /RST=1

david_prentice:
That seems quite correct.
I2C: /CS=1, /RST=1
SPI: /CS=0, /RST=1

Interesting. Clearly this appears to be correct for the CS pin
(a) From the OP's report
(b) That the Wiring diagram shows it pulled high, and the instructions for connnecting the finished board do not instruct users of the I2C interface to tie it low. Clearly, for SPI it has to be low.

However, against that:
(1) The wiring diagram shows the pin marked /CS (NOT CS) which would imply "active low"
(2) The datasheet for the SSD1306 controller states in the table at chapter 8.1 that the "CS" pin should be tied low for I2C

My conclusion from all that is that for I2C, the "CS" pin can be high, low or floating.
Maybe if the OP is still on the thread and has the breadboard installation, he could try it just out of curiosity.

I got it to work with CS high and low. but I did not get it to work without CS being connected

OK. I've just checked one of the modules I have with the same controller (SSD1306) from here.
It is the I2C version but physically smaller than yours and with the (apparently) the same 30 pin flexible connector. The "CS" pin (13) is grounded as are the unused pins D3 to D7 (21-25) and R/W (16) and E/RD (17). Pin I2C_SA0 is grounded via an 4.7K resistor giving an I2C address of 0x78.

What parts of these parts could be reused to run 4 displays at the same time? Is it possible to use one set of resistors and capacitors or do I need to use 4 sets of resistors and capacitors for 4 displays. I am looking to save some pcb space. This is how I have it at the moment

btw if anyone have some advice around the pcb as layout I am happy to hear it.

no idea?

What do the SJ's on the diagram stand for????
I'm trying to recreate this schematic in easyeda because LCSC doesent have i2cs for thier oled screens.

Solder Jumper usually.