enjoyneering:
Thank you Bill for you explanation. You are absolutely right. I also believe that turning display off is not necessary, but decided to follow the procedure.
I haven't seen any build-in LiquidCrystal_I2C library in Arduino IDE. Where is it?
In the IDE library manager with all the other MANY libraries available.
Unfortunately, the way the arduino.cc library manager works is a train wreck in progress.
It updates into the sketchbook/libraries area. That in itself isn't that bad. The bad part is that it is all one naming space so all library names must be unique.
And then the REALLY REALLY bad part is that the IDE itself has not started to use this mechanism tol update its bundled libraries into that same area.
The problem with that is a bundled library will stomp on a custom version you have created in your sketchbook/libraries area.
Also, since the sketchbook is shared across all IDE versions, if you have a recent IDE that updates a bundled library it will install that into the sketchbook/libraries area and it can potentially break for older versions of IDEs.
I have more than 19 different IDEs installed that I do testing on for my libraries, and this is a big problem.
(I never update any IDE bundled libraries, and make sure the auto udpate option is disabled)
I've been trying to get them to change this for years.
IMO, the ideal way would be for libraries to update "in place" and each library has its own .jason file (or it could be done through their .properties file) as to where its repo lives.
That way there is no single naming space and the names no longer have to be unique. And once a library is installed into one of the library areas, the library manager could update it based on where that library says its repository is.
And each version of the IDE installed could update its libraries separately without impacting another IDEs bundled libraries.
The way it works now, the initial setup is totally manual. You have to create an arduino github issue asking somebody at arduino to add your library to "the list" of known libraries. Each library has to have a unique name and it must live on github and follow the library 1.5 library spec in terms of naming and .properties file.
Then once per hour, there is a daemon that scans all the repos of all the libraries in "the list" looking for new tags. If it finds a new tag in the correct version format for a library, it copies the files for that version to its server and then adds that to the list of available versions for that library and the IDE library manager will display it.
If you ignore how it all works under the hood, and the potential issues that it sometimes creates, it is a very cool feature that makes installing libraries super easy.
Since the name you selected is already in use, you would not ever be able to add it to the library manager so that users can install it with just a few clicks from the IDE.
--- bill