Installing and Managing Arduino Board Definitions with the Arduino IDE

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: "", Boards Manager…. Upon opening the Boards Manager, a list of installed and available Arduino cores will be displayed. The initial download of the index file may take some time, after which the list will appear. Users can search for specific board definitions by entering the microcontroller family or a relevant keyword, such as “avr” or “samd,” into the search bar.

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.

Sources

  1. Installing Board Definitions in the Arduino IDE

Previous post: Generac Automatic Standby Generators: Installation, Maintenance, and Safety Guidelines

Next Post: Constructing Durable Retaining Walls: A Step-by-Step Guide

Related Posts