Basic question - how do I find the documentation for a library I'm using?

I'm looking for additional documentation on a library named, "LiquidCrystal_I2C.h", and there are way too many out there! It seems everyone has created something like this, and the compatibility appears to be low...
Are there any tips or tricks on how to reverse engineer a working sketch so I can better understand the variables available to me?

By way of example, the one successful "tutorial" I've found that works for me (or, with my set up) is on at:

In order to make this work, I installed the linked library in that instructable, but it doesn't SEEM to link to anything on

Thanks in advance for any guidance!


Honestly, the best way is to open up the .h file to see what objects and functions it defines for you.

If you need more information on how it works, open up the .cpp file.

Whilst the code is the ultimate documentation, Many libraries come with examples as well. Would suggest to study those. Also a quick google on the library or component name would probably lead to many post on the internet or here discussing use cases

If you look in the library folder you find a file named, which contains, among other helpful information, this:

How do I get set up?

  • Please refer to the project's wiki

So that is a bit helpful.

You also may notice that folder contains some files that start with "doxygen". doxygen is a tool that automatically generated documentation from comments in the source code. So that's a clue that somewhere in the folder structure you will probably find the generated documentation. Sure enough, with some digging we find LiquidCrystal_I2C/utility/docs/html. Open the file LiquidCrystal_I2C/utility/docs/html/index.html and the complete documentation will open in your browser. The most useful content is found under the Classes tab.

As J-M-L said, you also can find a lot of example sketches in the Arduino IDE at File > Examples > LiquidCrystal_I2C.

So that's the specific answer but the general answer is that it's going to be different with every library. The only thing you are sure of is the source files. Sometimes you will find information in the comments in the source code that lead you to a website with more information. Some will put documentation in the (or similar) file. Some will put it in a wiki, often times which is not mentioned anywhere in the readme, you just have to find the library's repository and click the Wiki tab. Some use doxygen. Some don't bother with any documentation at all. You just have to put on your Sherlock Holmes hat and do some sleuthing. Luckily in this case there was plenty of information included with the library but sometimes that is not the case and when there are multiple libraries of the same name that get confusing because you need to figure out which of the libraries it is. Ideally the place you downloaded the library from would provide that information but you'll find things like this Instructable where they don't bother to provide any information about where they got the library from. If you installed the library using the Arduino IDE Library Manager (Sketch > Include library > Manage Libraries...) you will usually notice a "More info" link in the library entry that may lead to information.

Thanks guys- this is what I meant about multiple libraries with the same names...the one linked from F.Malipartida isn't the one I'm using, but I will try to switch since it has better documentation. The one I'm using lists in Github the possible functions that are defined, but doesn't state what they do. I further found that someone opened an issue on it stating that documentation was lacking! Hey, that's progress! But it was back in 2010, and nothing has been done.
SO, building on what you've shared, I should just roll up my sleeves and begin playing with it to figure out what happens...fair enough!

Thanks again,