I ordered 2 of these (LCD-13722) back in September and configured one for use with I2C. The back of the board looks exactly like the “hookup guide” picture, for address 0x3D, and the jumper settings were confirmed with a multimeter. Micropython cannot find it with its i2c.scan() method, whereas it can find its earlier model, LCD-14532, just fine (which also happens to be configured for the same address). Both were tested on the same Qwiic port on the same custom ESP32-S3 based motherboard. I either case I only have the 4 basic Qwiic connections (GND, 3.3V, SDA, SCL).
However, I noticed the Arduino source states a RESET pin connection is required but all that code does is cycle that pin, presumably once at startup. Is that necessary before it will be visible on the I2C bus? There is nothing in the Hookup Guide that indicates that is necessary? Plus it’s not something that any other I2C device I’ve encountered needs.
I’ve check the connections numerous times and the module does have power (GND and 3.3V at the board). It seems to me like maybe the board was DOA out of the box?
I want to avoid changing the jumpers on the second unit I purchased because I want to keep that for SPI use.
Is it the only i2c device on the bus? The only other thing I can think of is maybe try disabling the i2c pull-ups on the new one as well and see if it appears on the bus, otherwise it is likely DoA [less likely if the other new one shows the same behavior…but if that one is fine: Was it purchased from us? If so head over to Return Policy - SparkFun Electronics (contact vendor if purchased elsewhere) and we’ll get ya squared away]
I believe that schematic is for the “earlier version Micro OLED” module that I referred to, and which works just fine. I am talking about the “newer” version with headers. The schematic for that newer version would presumably have two 8-pin headers and no Qwiic connectors, which the schematic you linked to does NOT have those headers but does have the Qwiic connectors.
Moreover, I notice that the schematic has an RC delay circuit which appears from the note on the schematic to be something to do with getting it to work with just the standard 4-pin Qwiic connector, which is exactly what I am trying to do. To test that with my custom motherboard I used a breadboard to form the 4 connections from the Qwiic connector on my motherboard to the OLED module…but w/o any such delay circuit. So maybe that’s why it didn’t work whereas the “earlier” version, which does have the delay circuit, does work.
I’ll try to add the delay circuit to the breadboard and see if that solves it. I’ll let you know the results.
That worked! i2c.scan() lists the correct address, 61 (0x3D).
May I suggest you add that note to the “Hookup Guide”? After all, someone (like me) who buys the version with headers does that because they want to plug the board into a breadboard or (like me) into a custom motherboard.
It’s most unfortunate I did not know that because now I have to have another custom board re-fabricated with that addition on it, which not only will cost me about $50 but also I’ll have to wait a couple of weeks.
I’d recommend adding the RC circuit even if you are using SPI.
The SSD1306 needs to be reset correctly when you power it up.
With the header version, you have direct access to the !RESET pin. You can reset it manually via a GPIO pin after power up. Pull it low briefly, then pull high.
For the Qwiic version, you don’t have access to the !RESET pin. Instead, the RC circuit holds RESET low at power on. It goes high when the capacitor is charged.
The same is true for I2C, SPI and Parallel modes. You still need to reset the chip correctly.