The idea behind having two variables for libraries is to allow the improvement of the standard libraries.

  • APP_LIBS_LIST for the libraries provided by the Arduino IDE, and
  • USER_LIBS_LIST for the libraries developed by the end-user.

Actually, calling the libraries provided by the Arduino IDE is done through #include <library.h> while calling the libraries developed by the end-user requires #include "library.h".

Let's say you want to improve the Wire library and use the I²C fast mode.

  • Just make a copy of the original Wire library into the user's libraries folder located on the sketchbook folder.
  • Then, edit the new file and set the speed to 400 kHz.
  • Finally, edit the main makefile to select 
    • either the legacy library with APP_LIBS_LIST = Wire
    • or the newly optimised library with USER_LIBS_LIST = Wire.


This allows great flexibility.


⊞ With embedXcode+, the makefile comes populated with the list of the core, application and user’s libraries. This list is added

during the preparation and for the selected platform of the project.

# List application Arduino/chipKIT/Digispark/Energia/Maple/Microduino/Teensy/Wiring libraries here

# default = 0 = none


# ARDUINO = EEPROM SoftwareSerial SPI Wire SPI Wire Audio Bridge Esplora Ethernet Firmata GSM LiquidCrystal

# Robot_Control Robot_Motor RobotIRremote Scheduler SD Servo SpacebrewYun Stepper Temboo TFT USBHost WiFi



# List user's libraries here

# default = 0 = none


# USER = I2C_Stepper I2C_Thermometer Serial_GPS Serial_LCD




Just copy-paste those you want to use!