Help with SSD1306 OLED on custom PCB [solved] - Page 1
Forum section: electronics / beginners

author: replaysMike
author_rank: Newbie
timestamp: July 20, 2024, 10:11:43 pm
content: Hi all,I'm having some trouble finding what's wrong with my circuit to drive an OLED SSD1306 using an ESP32 on a custom PCB.I have an SSD1306 module I bought which worked fine on a breadboard. I've been staring at the manufacturers datasheet for the OLED's I purchased directly from the manufacturer. I based my design on their datasheet as well as some examples I came across on how to use it on the internet. For some reason that I can't find I can't find it on the i2c bus and it just doesn't work.My experience level is amateur at best, so I've likely misinterpreted the datasheet but I can't spot it. I inferred some additional information from thishttps://www.eevblog.com/forum/beginners/cant-get-ssd1306-oled-working-on-custom-pcb/and thishttps://vivonomicon.com/2018/04/20/diy-oled-display-boards-ssd1306-and-ssd1331/.I've configured the SSD1306 for i2c and using the internal dc/dc circuit (page 29). In my design SCL/SDA is pulled up using 10K resistors, D/C is pulled down so that should result in an i2c address of 0x78. VDDB/VDD are tied to 3.3v, and RES is using the recommended reset circuit.Also included a pic of the board, I tried introducing a 0.1uf cap between VDDB/GND and changed R21 from 910k to 390k (IREF). Everything else on the board seems to work fine.

author: DavidAlfa
author_rank: Super Contributor
timestamp: July 21, 2024, 07:20:03 am
content: Try a different display, maybe it got damaged somehow.

author: Buriedcode
author_rank: Super Contributor
timestamp: July 21, 2024, 07:25:25 pm
content: Given that the LEDs are backwards in your schematic, leads me to believe there maybe some things that are different between the schematic, the PCB, and whats soldered on it, making debuging harder. And the fact the LED is lit means you've clearly soldered it correctly, but it does create doubt.I did a quick google of SSD1306 board schematics and yours and they look identical. The obvious thing to check is runa multimeter across every LCD connection to make sure its as it should be, they it would be running a logic analyzer on the I2C lines, or better a scope, just to see what the edges are like.

author: 807
author_rank: Frequent Contributor
timestamp: July 21, 2024, 08:25:50 pm
content: I've used a few of those SSD1306 displays & despite the address jumper on the back saying 0x78/0x7A, the actual address has been 0x3C.

author: replaysMike
author_rank: Newbie
timestamp: July 22, 2024, 08:44:19 pm
content: Quote from: 807 on July 21, 2024, 08:25:50 pmYes, I found that as well. My breadboard prototype used 0x3C despite saying 0x78 on the device. I did try that, as well as using an i2c address scanner but it came back with nothing.I suspect the issue is SDA and SCL were shorted on a continuity test. I couldn't find where it was shorted, maybe underneath the esp32 chip because I spent over an hour trying to find it. Removed the INA219, BME280 and OLED, yet still shorted. Building another board to see if it was a bad reflow.

author: replaysMike
author_rank: Newbie
timestamp: July 22, 2024, 08:52:36 pm
content: Quote from: Buriedcode on July 21, 2024, 07:25:25 pmOH lol nice catch - I have no idea how that happened. Very strange the ERC didn't catch that! They were all functioning just fine, maybe I happened to reverse all of them during assembly which is hilarious.Trying a new board assembly, and will stick a scope and logic analyzer on the i2c bus and see what's going on. I mentioned it above in my comment, but I noticed SDA/SCL were shorted and I suspect its under the esp32 and happened during reflow. Will know shortly

author: DavidAlfa
author_rank: Super Contributor
timestamp: July 22, 2024, 11:02:06 pm
content: Quote from: replaysMike on July 22, 2024, 08:52:36 pmQuote from: replaysMike on July 20, 2024, 10:11:43 pmWell if you had tested everything else, including the other I2C devices, you would have quickly noticed there was a problem in your I2C bus!

author: replaysMike
author_rank: Newbie
timestamp: July 23, 2024, 01:34:58 am
content: Quote from: DavidAlfa on July 22, 2024, 11:02:06 pmIndeed, I forgot to take the dummy out of the equation. Soldering up a new board did fix the issue, not sure how I managed to accomplish that (too much solder paste maybe).