hd44780_I2Cexp > I2CexpDiag tells "No I2C devices found"

This is my first attempt with an I2C device. I was struggling to select wich I2C LCD library to use due to the many apparently similar options, and the multiple issues users reported almost made me give up using the display. Lack of documentation is critical. Fortunately I found a reference to a sound, well documented library. @bperrybap package is much more than a simple library, this one is so good it even has a diagnostic tool sketch. Cool.

It pointed out a problem even before I start to code, but I couldn't go beyond the error message. Follows the diagnostic output:

--------------------------------------------------------------------
Serial Initialized
--------------------------------------------------------------------
I2CexpDiag - i2c LCD i/o expander backpack diagnostic tool
--------------------------------------------------------------------
hd44780 lib version: 1.3.2
--------------------------------------------------------------------
Reported Arduino Revision: 1.8.9
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

I did most usual checks like power voltage (5.01V), common grounds (OK), continuity of connection wires (OK) and searched all similar topics for some clues with no success. Any idea on what else can I check?

Yes, your power and data connections to the I2C "backpack".

Is the backlight on? What is showing on the display (which is to say is the contrast control set)? Which backpack is it in any case? Which Arduino is it (sounds like a Mega 2560)?

How about a photo taken with a good camera in daylight of your whole assembly?

Well, daylight pictures only tomorrow, the Sun set an hour ago.

But it is a Nano on a protoboard connected to the backpack via SDA->A4 and SCL->A5 as shown in the diagnostic printing above. I don't know wich backpack it is but it has an IC that reads PCF8574T, tomorrow I post a picture. Both the Arduino and the 20x4 LCD/backpack power wires are connected to the protoboard +5V and Ground. I took the backlight jumper off to keep the LED from lighting while I check the basics first. Placing it again the display shows nothing, all pixels are off compared to the state prior to script execution when all pixels are on. Backlight keeps on while the jumper is set.

I'm not very active on this new crazy forum anymore. IMO it is big step backwards in usability. It does have some new capabilities, and is likely a big benefit to the ones that maintain the forum s/w on the server, but so much of the way it works, makes It painful to use for those that actually responded to technical questions.
Not to mention the vast amount of wasted screen real estate.
IMO, likes and badges may be cute and fun on a social discussion board but are total unnecessary BS for a technical forum.

But apparently, the new forum detects @username as a reference and I have reference notifications enabled.
So I saw this post.

The key thing to notice in this output is:

The PCF8574 chip on the backpack is not being seen.
There are only 4 wires to make this work. It is likely they are not hooked up properly.
The serial output tells you where SDA and SCL should be connected.
SDA to A4 and SCL to A5
I would recommend that you check all 4 connections.

--- bill

So what is the meaning of the "18" and "19" in this:

Also when it says that pull-ups were found, what does that exactly signify? Does it not suggest that the I2C lines are indeed connected?

I agree. In addition to the huge profusion of libraries dedicated to LCD displays, which confuses more than help, most of them have poor ducommentation, when they do. Your's was like finding an oasis in the middle of the desert. Too bad there are not many more competent people like you on this forum. I was lucky you still got notifications.

When I saw the diagnosis output, I thought it had been discovered by the diagnosis itself and I didn't check it; you are absolutely right: they were reversed.

Now working 100%, thank you very much!

It is reporting the Arduino pins use by each I2C signal.
i.e.
SDA is Arduino digital pin 19 and also Arduino pin A5
i.e. Arduino pin 19 and Arduino pin A5 are the same pin.

--- bill

I had a mind to question that - one pretty obvious mistake. :grin:

Ah yes, I wasn't thinking of that. :sunglasses:

Well, I think this is the way of the world now.
Mediocrity has invaded nearly all disciplines not just s/w.
More and more people just phoning it in, so they can get back to staring at their smartphone screen.

BTW, IMO, the hd44780 library documentation is only barely passable, if that.
It isn't nearly where I want it to be or as good as what I provided with the openGLCD library.

I laugh now when I hear people refer to themselves as a "coder". I just chuckle and think to myself "I bet you are". 30 years ago, that would have been an insult as coding was just a small somewhat boring piece of a s/w project and it was a task that could and sometimes was outsourced to lower paid, less skilled, less experienced people, perhaps even in foreign countries.
It was the upfront architecture & design along with documentation and testing and project management like using source control and issue tracking that really makes a project/product.
Those areas seem to no longer get much attention.

These days I see so much re-invention as the up coming generations are re-learning lots of things and often after snubbing certain things and then after stumbling around claim to have suddenly invented something or some new way of doing things that already existed.
In some cases it might even be something that they had previously chosen to ignore thinking that they could do it better.

I don't think it was this bad 20,30, or 40 years ago or at least not as so widespread and obvious across so many disciplines.
But maybe seeing all this happening is just part of living longer, long to enough to see the cycles, and getting old.

--- bill

1 Like

I'm almost 70, and getting used to make such dumb errors... I was more attentive when programming the Intel4004.

This topic was automatically closed after 120 days. New replies are no longer allowed.