A useless discussion about how a working sketch can't possibly work

bperrybap:
So at some point in time, you installed something

and then deleted it (or tried to), probably.

bperrybap:
edited something in some version of an i2c LCD library installed in one of the several possible libraries directories on your system to make it work and forgot about.

For the xteenth time. I made no edits directly to any libraries. It has been so long since I worked that way, I don't remember the last time I did.

bperrybap:
What do you mean by "does not include a path (like hd44780 requires)" ?
The hd44780 library works just like any other library with respect header files in the sketch.
i.e.

#include <hd44780.h>                       // main hd44780 header

#include <hd44780ioClass/hd44780_I2Cexp.h> // i2c expander i/o class header



are not specifying a path or where the header files live.

I see a path in the code quote you posted. Allow me to place it in bold. #include <**hd44780ioClass/**hd44780_I2Cexp.h> Which in all my years of C programming mean to use that include file and not the blahblahblah/hd44780_I2Cexp.h named file. You can still run into problem if there are to directories that both include the same subdirectory. Been through that too (I wasn't the nincompoop that created the secondary same named directory).

bperrybap:
This isn't an issue of switching to a new version of newLiquidCrystal that breaks your code, it is a case of you doing some things, including some manual manipulations of your libraries that you don't remember - which supposedly got things to work.
Then later you did some things which includes updating the newLiquidCrystal library, which you also can't fully remember which broke your supposedly working system.

I love how you combine items into a tangle to try to make an pivot point.
I never said updating to the new library was the issue. I suspected it was part of or related to the issue. Nothing updated now and then more updated later. All the libraries one after the other. Said that all along. Had IDE 1.8.4, updated all libraries. Worked before, broke after. Cleaned house, installed 1.8.5 and the current libraries. Still broke.

bperrybap:
You can't remember what you did, nor have you been able to show us any i2c LCD library code that works the way you say the code works for you.

If someone had asked this early on, before I removed v1.8.4 then we could have pursued files in the Arduino directory. But alas that was my primary suspect due to have to delete things to install fm's library.

Besides that, how am I supposed to show you a working file set when it is broke and I don’t know why. What I have provided is what was working or from what was working. This is like you asking to show you that my broke down car can go 100mph. I can't it's broke. But I have the speeding ticket to show it used to.

bperrybap:
Given all these unknowns and conflicting information there is no way I can help you and am not going to waste any more of my time on this.

Conflicting? Contradicting? I do not see any two statements that say I did this and then say I did that. May be short on information, mostly that I don't know and/or cannot now find. But neither conflicting nor contradicting.