Author Topic: Help with SSD1306 OLED on custom PCB [solved]  (Read 426 times)

0 Members and 1 Guest are viewing this topic.

Offline replaysMikeTopic starter

  • Newbie
  • Posts: 5
  • Country: ca
Help with SSD1306 OLED on custom PCB [solved]
« on: July 20, 2024, 10:11:43 pm »
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 this https://www.eevblog.com/forum/beginners/cant-get-ssd1306-oled-working-on-custom-pcb/ and this https://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.

« Last Edit: July 23, 2024, 02:18:09 am by replaysMike »
 

Offline DavidAlfa

  • Super Contributor
  • ***
  • Posts: 6145
  • Country: es
Re: Help with SSD1306 on custom PCB
« Reply #1 on: July 21, 2024, 07:20:03 am »
Try a different display, maybe it got damaged somehow.
Hantek DSO2x1x            Drive        FAQ          DON'T BUY HANTEK! (Aka HALF-MADE)
Stm32 Soldering FW      Forum      Github      Donate
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1662
  • Country: gb
Re: Help with SSD1306 on custom PCB
« Reply #2 on: July 21, 2024, 07:25:25 pm »
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.
 

Offline 807

  • Frequent Contributor
  • **
  • Posts: 276
  • Country: gb
Re: Help with SSD1306 on custom PCB
« Reply #3 on: July 21, 2024, 08:25:50 pm »
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.
 

Offline replaysMikeTopic starter

  • Newbie
  • Posts: 5
  • Country: ca
Re: Help with SSD1306 on custom PCB
« Reply #4 on: July 22, 2024, 08:44:19 pm »
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.

Yes, 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.
 

Offline replaysMikeTopic starter

  • Newbie
  • Posts: 5
  • Country: ca
Re: Help with SSD1306 on custom PCB
« Reply #5 on: July 22, 2024, 08:52:36 pm »
Given that the LEDs are backwards in your schematic, leads me to believe there maybe some things that are different between the schematic

OH 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
 

Offline DavidAlfa

  • Super Contributor
  • ***
  • Posts: 6145
  • Country: es
Re: Help with SSD1306 on custom PCB
« Reply #6 on: July 22, 2024, 11:02:06 pm »
I noticed SDA/SCL were shorted
Everything else on the board seems to work fine.
Well if you had tested everything else, including the other I2C devices, you would have quickly noticed there was a problem in your I2C bus!
« Last Edit: July 22, 2024, 11:15:54 pm by DavidAlfa »
Hantek DSO2x1x            Drive        FAQ          DON'T BUY HANTEK! (Aka HALF-MADE)
Stm32 Soldering FW      Forum      Github      Donate
 

Offline replaysMikeTopic starter

  • Newbie
  • Posts: 5
  • Country: ca
Re: Help with SSD1306 on custom PCB
« Reply #7 on: July 23, 2024, 01:34:58 am »
Well if you had tested everything else, including the other I2C devices, you would have quickly noticed there was a problem in your I2C bus!

Indeed, 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).
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf