Starting with version 1.6.2, the Arduino Integrated Development Environment (IDE) includes built-in support for Arduino AVR boards. However, many development boards require additional “cores” to function correctly within the Arduino IDE, and to enable compatibility with existing sketches and libraries. To facilitate the addition of these cores, Arduino implemented the Boards Manager. This tool allows users to install and update cores directly within the Arduino IDE. A board definition contains the variant and pin configuration files necessary to integrate a board’s microcontroller and pin layout with the Arduino IDE.
What are Cores and Board Definitions?
A core is essential for making new microcontrollers compatible with the Arduino IDE. Arduino develops cores for microcontrollers used in its own boards, but third parties can also develop cores for their boards, adhering to Arduino’s specifications. These cores are installed as separate Arduino cores, often requiring a specific file to be added to the Arduino IDE.
A board definition, contained within a core, provides the necessary information for the IDE to recognize and configure a specific board. This includes details about the board’s microcontroller and the functionality available for each pin. The documentation specifies that a board definition integrates a board’s microcontroller into the Arduino IDE and its pin layout with available methods for each pin’s functionality.
Accessing and Using the Boards Manager
The Boards Manager is accessed through the Arduino IDE’s Tools menu, specifically under Board: "
Installing and Updating Cores
Once a desired core is located, users can install it by clicking the “INSTALL” button. If an update is available for an already installed core, an “Update” button will appear in the lower right-hand corner. Clicking this button will update the core to the latest version. The process for installing a third-party board definition differs slightly, as described in the following section.
Installing Third-Party Board Definitions
Cores developed by third-party manufacturers often require an additional installation step. Without this step, searching for a specific manufacturer, such as SparkFun, in the Boards Manager may yield no results. This process involves adding a specific file, in JSON format, to the “Additional Board Manager URLs” field within the Arduino IDE Preferences. This file provides the Boards Manager with information about the third-party core, allowing it to be linked and displayed correctly.
The Arduino IDE Preferences are accessed from the File menu, or by using the shortcut Ctrl + ,. The following URLs are provided as examples for adding to the Additional Board Manager URLs field:
- https://raw.githubusercontent.com/sparkfun/ArduinoBoards/main/IDEBoardManager/packagesparkfun_index.json
- https://raw.githubusercontent.com/sparkfun/ArduinoApollo3/main/packagesparkfunapollo3index.json
- https://arduino.esp8266.com/stable/packageesp8266comindex.json
- https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/packageesp32index.json
- https://www.pjrc.com/teensy/packageteensyindex.json
These URLs should be entered on separate lines within the Additional Board Manager URLs field. It is recommended to use the “COPY CODE” button to copy the URLs to avoid errors. After adding the URLs, the new cores will become available for installation in the Boards Manager. Common keywords for searching include the board manufacturer, microcontroller family, or board name. For example, searching for “sparkfun” will now yield results if the SparkFun index URL has been added.
Specific Board Considerations: Teensy
The Teensy development boards present a specific case. While SparkFun now handles the manufacturing of Teensy boards, PJRC continues to provide the software development through Teensyduino. To program these boards with the Arduino IDE, users must utilize the Teensyduino software add-on.
The documentation notes that the Teensyduino software is automatically installed when users install the Teensy Arduino core using the Arduino IDE’s Board Manager. However, for legacy versions of the Arduino IDE (1.8.x), manual download and installation of the Teensyduino software add-on may be required. Specifically, PJRC supports Arduino versions 1.8.5, 1.8.9, 1.8.13, 1.8.15, 1.8.16, and 1.8.19 with Teensyduino (v1.59) as of 2025.
Troubleshooting and Further Resources
For cores not directly maintained by SparkFun, users should consult the documentation provided by the core’s author for specific installation instructions. Once board definitions are installed, users can begin programming their boards. Additional resources and tutorials are available from SparkFun, including guides on installing Arduino libraries and understanding the basics of Arduino.
Conclusion
The Arduino Boards Manager provides a streamlined method for installing and managing board definitions within the Arduino IDE. By understanding the roles of cores and board definitions, and following the appropriate installation procedures, users can expand the compatibility of their Arduino IDE to support a wide range of development boards. The process for third-party boards requires adding a JSON index URL to the Arduino IDE Preferences, enabling the Boards Manager to locate and install the necessary files. Specific boards, such as Teensy, may require additional software, like Teensyduino, to function correctly.

