I2C Connection not registering

I recently bought 6 batches of OLED devices from 6 different vendors on EBay and none of them had pull ups.

Please provide all six Ebay links.

David.

@gazorpazorp625 My apologies, but I have no clue what the problem could be and neither have the others. Thank you for trying all the things we asked and providing photos and trying pullup resistors. My advice is to let this rest, and buy a multimeter and an other module for the I2C bus, for example a sensor. It is not a satisfying advice, I know.

Adafruit has better quality modules and tutorials. That is a good start for a beginner.

Hi, @Koepel
I would not be so defeatist, a lot of posts have occurred since we last saw @gazorpazorp625, we need to give the timezones a chance to reply to all our remarks.

Tom.. :smiley: :+1: :coffee: :australia:

Likewise, I would not give up so easily.

First off: Simplify the wiring as in #16.
Install hd44780 via the IDE Library Manager.

The diagnostic is called I2CexpDiag.ino
File->Examples->hd44780 and select ioClass\hd44780_I2Cexp\I2CexpDiag

The diagnostic is designed for LCD backpacks but it will print interesting information about your I2C wiring.

I would expect your display to "work out of the box".
If it feels hot it is broken.
If you have wired VCC, GND backwards in the past it is probably broken.

David.

Thanks everyone for your responses.

  1. I ordered a voltmeter off amazon and it will come in tomorrow, so hopefully that will help.

  2. That was my original setup before I tried the pullup resistors and that didn't work either

  3. I ran the code, here was the response:

I2C scanner. Scanning ...
Done.
Found 0 device(s).
I⸮⸮V⸮

I don't think the problem is a software issue because the software was working before and it said that my address was 0x3C

  1. I ran the hd44780 code and here is what I got:
********************************************************************
Serial Initialized
--------------------------------------------------------------------
I2CexpDiag - i2c LCD i/o expander backpack diagnostic tool
--------------------------------------------------------------------
hd44780 lib version: 1.3.2
--------------------------------------------------------------------
Reported Arduino Revision: 1.8.15
CPU ARCH: AVR - F_CPU: 16000000
--------------------------------------------------------------------
SDA digital pin: 18 A4
SCL digital pin: 19 A5
--------------------------------------------------------------------
Checking for required external I2C pull-up on SDA - YES
Checking for required external I2C pull-up on SCL - YES
Checking for I2C pins shorted together - Not Shorted
--------------------------------------------------------------------
Scanning i2c bus for devices..
Total I2C devices found: 0
No I2C devices found

It did work earlier with the simple four-wire setup you suggested. It's not hot, but there is a chance that I wired them backwards on accident and I don't remember.

The diagnostic report is very useful.

Please replace the black GND wire. Run the hd44780 diagnostic again.
Please swap SDA, SCL wires. Run the hd44780 diagnostic again.

David.

I didn't use the pull up resistors, but I put the diagnostics down below. They are the same thing though.

Replacing GND:

Serial Initialized
--------------------------------------------------------------------
I2CexpDiag - i2c LCD i/o expander backpack diagnostic tool
--------------------------------------------------------------------
hd44780 lib version: 1.3.2
--------------------------------------------------------------------
Reported Arduino Revision: 1.8.15
CPU ARCH: AVR - F_CPU: 16000000
--------------------------------------------------------------------
SDA digital pin: 18 A4
SCL digital pin: 19 A5
--------------------------------------------------------------------
Checking for required external I2C pull-up on SDA - YES
Checking for required external I2C pull-up on SCL - YES
Checking for I2C pins shorted together - Not Shorted
--------------------------------------------------------------------
Scanning i2c bus for devices..
Total I2C devices found: 0
No I2C devices found

Swapping SCL and SDA:

********************************************************************
Serial Initialized
--------------------------------------------------------------------
I2CexpDiag - i2c LCD i/o expander backpack diagnostic tool
--------------------------------------------------------------------
hd44780 lib version: 1.3.2
--------------------------------------------------------------------
Reported Arduino Revision: 1.8.15
CPU ARCH: AVR - F_CPU: 16000000
--------------------------------------------------------------------
SDA digital pin: 18 A4
SCL digital pin: 19 A5
--------------------------------------------------------------------
Checking for required external I2C pull-up on SDA - YES
Checking for required external I2C pull-up on SCL - YES
Checking for I2C pins shorted together - Not Shorted
--------------------------------------------------------------------
Scanning i2c bus for devices..
Total I2C devices found: 0
No I2C devices found

Well, clearly the display is either not connected or not functional.

Have all the jumper wires been tested?


I think I need to write a tutorial about testing them.

The general suggestion is that when you get a pack, you take a MB102 and plug the first jumper between one end and halfway along (the columns, that is :grin:). Then the next between the end of the first and the second column, the next between that second column and the one just beyond the halfway and so on. So you zigzag them all into a big chain until you have just a couple left which you (first test then) use to connect to ground on one end and a LED and series resistor to your 5 V at the other.

If the LED lights and does not flicker when you stroke the bundle of wires, all good!

If not, you figure out the halfway point in the chain and test each half, breaking the chain up and disassembling sub-chains which actually work (and at any point of course, neither sub-chain may work) until you find the culprit(s) which frankly, you can chop into minuscule pieces before binning :rofl:

I got a multimeter and the voltages of the VCC, SCL, and SDA pins were 3.7 V (I plugged it into the 3.3 V pin), 4.2 V, and 4.2V respectively. So I don't think it has anything to do with the wires.

Quite honestly you seem to have done everything correctly. i.e. 4 wires.
The diagnostic detects the on-module external pullups.

It may be that you have a "historic" SSD1306 which does not ACK properly.
Look at this thread: https://forum.arduino.cc/t/i2c-connection-not-registering/885984

I suggest that you try u8g2lib SW constructor before giving up.

The "no-ACK" displays were sold about 6 or 8 years ago.
I would not expect a modern purchase to not ACK properly. But hey-ho, Ebay and Amazon have some unscrupulous vendors !!

David.

1 Like

I think you linked to the wrong thread. Did you mean this one by any chance? Problem with oled 1,3" U8G2 lib

I think it was a hardware problem, I ordered new I2C OLED Displays and they work.

Thank you for sharing. I'm glad it is working. That was a bad problem. I think @david_prentice is right and those were very old OLED displays.

I hope you still are enthusiastic about Arduino. There are good sellers that sell good quality products (in the Arduino store and at Adafruit). That will avoid these disappointments.

As you can see, we don't always agree when answering questions. You have to see through the differences and make your own choices.