Last edited · 1 revision  


Jack, W8TEE writes....  19 April 2017


First, once you have a library installed properly, there is no reason to delete it. Libraries are only loaded into a program when that library's code is needed. 

Second, I find it useful to install any newer version of the Arduino IDE in its own directory. For example, I use drive E for all my programs, so the latest release on my system is:


As it is right now, I have 17 installed versions and can go back to release 1.05 if I need to. In the past, hiccups in a new version allows me to easily revert to the previous version.

If you have trouble installing libraries, keep these things in mind:

   1. Libraries need to be installed in the libraries subdirectory. For me, that means they must end up in:


   2. The new library name MUST share the same name as the *.h file in that library. Many new libraries are downloaded as a ZIP

       file and when installed you end up with something like Rotary_master.ZIP expanding to a subdirectory named Rotary_master. 

       If you look inside Rotary_Master, you see:

                  Examples              // A subdirectory

                  Keywords.txt         // A file of keywords use for highlighting in the IDE

                // Info about the library

                  rotary.cpp             // The C++ source code for the library

                  rotary.h                 // The header file for the library

      Therefore, this library MUST be named rotary and be located as:

           E:\Arduino1.8.2\libraries\rotary\Examples              // A subdirectory

                                                             Keywords.txt         // A file of keywords use for highlighting in the IDE
                                                           // Info about the library
                                                             rotary.cpp             // The C++ source code for the library
                                                             rotary.h                 // The header file for the library

   3. Any header file used in the program as:  #include <rotary.h> is going to look in the E:\Arduino1.8.2\libraries subdirectory for 

       that header file. If you use: #include "rotary.h" (note the quotes instead of brackets) in your code, it will look in the directory

       where the program's *.INO file is first to find that header file. If it can't find it there, only then will it look in the default libraries

       directory. Keep in mind that C is case-sensitive, so <rotary.h> is not the same as <Rotary.h> (note the uppercase 'R').

   4. Unfortunately, some new Arduino libraries that are functionally different "reuse" the same name of existing libraries. The

       Liquid_Crystal library is an example. Sometimes you just have to experiment until you find the one you need.

Finally, Release 1.8.2 of the IDE generates a lot of warning messages, especially for libraries. As a general rule, if the IDE compiles and uploads the code to your controller, you can ignore the warnings. If it can't upload the program, there is an error rather than a warning and it needs to be fixed.