Installing Board Definitions in the Arduino IDE
Getting Started with the Arduino Board Manager
Starting from the Arduino Software (Integrated Development Environment or IDE) version 1.6.2, all Arduino AVR boards are installed with the Arduino IDE, by default. Some development boards, require an additional core to be installed; therefore Arduino implemented the Boards Manager as a tool to add cores to your Arduino IDE.
What is a Core?
The cores are necessary to make new microcontrollers compatible with your Arduino IDE and, possibly, the existing sketches and libraries. Arduino develops the cores for the microcontrollers used on their boards, but anyone may develop a core for their own boards following the rules and requirements laid out by Arduino.
The Arduino website also has great instructions on installing Arduino cores. For more information on using the Arduino IDE Boards Manager, check out their tutorial or click the button, below:
What is a Board Definition?
A board definition is the associated variants and pin configuration files in a core, that are provided to integrate a board's microcontroller into the Arduino IDE and board's pin layout with available methods for each pin's functionality. For more details, check out the documentation for the platform specifications
Suggested Reading
For more basics on Arduino, check out our tutorials below:
Installing an Arduino Library
What is an Arduino?
Installing Arduino IDE
Choosing an Arduino for Your Project
Installing an Arduino Board Definition
Starting from the Arduino Software (IDE) version 1.6.2, all Arduino AVR boards are installed by default. Some Arduino boards require an additional core to be installed, therefore they implemented the Boards Manager as the preferred tool to add cores to your Arduino Software (IDE). It is found in the Tools
menu under Board: "<Selected Board>"
, Boards Manager...
When the Boards Manager is opened, a list of installed and available Arduino cores will appear. (*The download of the index file could take some time and the list appears at the end of this process; please be patient.)
To find a specific board definition, search for the microcontroller family or use a keyword such as avr
or samd
, and the related Arudino core should show up. Click on the desired Arduino core and an Install button will appear in the lower, right-hand corner.
Click the Install button, and the Arduino core should install automatically.
Once the installation is complete, the version of the Arduino core and an INSTALLED
tag will appear next to the name of the core.
Now with the Arduino core is installed, the board definitions can be accessed from the Board: "<Selected Board>"
, drop down menu.
Updating an Arduino Core
Once installed, the core will be updated as more board definitions are added into the core. Occasionally, the installed Arduino core may need to updated from time to time. In most cases, a board definition won't be listed in the associated Arduino core or the upload/verify process results in a compilation error. To check for updates, open up the Boards Manager and locate the associated Arduino core.
Click on the desired Arduino core and if an update is available, an Update button will appear in the lower, right-hand corner. To update the core, click on the Update button.
Installing a Third-Party Board Definition
For cores developed by third-party manufactures, Arduino has an extra installation process. Without which, a search for sparkfun
in the boards manager, will yield no results:
sparkfun
. The process requires a specific file, written in JSON format, that must be entered into the Additional Board Manager URLs field, inside of the Arduino IDE Preferences. This file provides the index of the Boards Manager with information about the third-party core, so that it can be linked and displayed accordingly.
The Arduino IDE Preferences is accessed from the File
drop down menu, users can also use the Ctrl + , shortcut:
SparkFun maintains the Arduino cores for most or our development boards. Below, are each of the *.json
files for the associated cores to be entered into the Additional Board Manager URLs field:
- SparkFun's AVR and SAMD Boards:
https://raw.githubusercontent.com/sparkfun/Arduino_Boards/main/IDE_Board_Manager/package_sparkfun_index.json
- SparkFun's Apollo3 and Artemis Boards:
https://raw.githubusercontent.com/sparkfun/Arduino_Apollo3/main/package_sparkfun_apollo3_index.json
- Espressif's ESP8266 Boards:
https://arduino.esp8266.com/stable/package_esp8266com_index.json
- Espressif's ESP32 Boards:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
We have since handed over maintenance of the Arduino core for our ESP line of microcontroller products, over to Espressif Systems. This was primarily due to changes in the Arduino IDE that caused conflicts in the compilation for MCUs hosted by separate parties.
There are a select number of boards in our catalog that may require a (different) .json
file, to an separate Arduino core that is maintained by another manufacturer. For those boards, please refer to the datasheet and/or associated hookup guide for the link to their file or installation instructions.
To enter multiple .json
files, users can click on the small, multi-window icon to the right of the field. A window will open, with a field for multiple URLs entries; make sure to separate each file with a ,
or new line (i.e. carriage return).
Use the COPY CODE button below to copy all of the files at once, instead of copying each file individually:
https://raw.githubusercontent.com/sparkfun/Arduino_Boards/main/IDE_Board_Manager/package_sparkfun_index.json
https://raw.githubusercontent.com/sparkfun/Arduino_Apollo3/main/package_sparkfun_apollo3_index.json
https://arduino.esp8266.com/stable/package_esp8266com_index.json
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
After this procedure, the new cores will be available for install in the Boards Manager; common keywords are the board manufacturer, microcontroller family, or board name. Try searching for sparkfun
in the boards manager:
ESP
as the keyword in the search bar.To complete the installation process, users only need to click the INSTALL button that appears for the selected core, as in the previous section. For other, third-party cores, not maintained directly by SparkFun, please refer to the information provided by the core's author to get more specific instructions.
Resources and Going Further
Now that you have your board definitions installed, you can start programming your board. Here are some further readings that may help you along in learning more about the world of electronics.
Looking for the right Arduino?
Check out our Arduino Comparison Guide! We've compiled every Arduino development board we carry, so you can quickly compare them to find the perfect one for your needs.
SparkFun Tutorials
Installing an Arduino Library
What is an Arduino?
Installing Arduino IDE
Efficient Arduino Programming with Arduino CLI and Visual Studio Code
Installing Board Definitions in the Arduino IDE
Arduino Tutorials
Arduino Board Comparison Guides
Choosing an Arduino for Your Project
Standard Arduino Comparison Guide
RedBoard vs. Uno
Getting Started with Arduino Shields
Arduino Shields v2
Other Arduino Shield Related Tutorials
MicroSD Shield and SD Breakout Hookup Guide
Photon IMU Shield Hookup Guide
Click the buttons above for tutorials relating to the board functionality based on topic difficulty.
Beginner
Serial Communication
Analog to Digital Conversion
Analog vs. Digital
Data Types in Arduino
How to Work with Jumper Pads and PCB Traces
Intermediate
Serial Peripheral Interface (SPI)
Processor Interrupts with Arduino
Advanced
Installing an Arduino Bootloader
Integrated Circuits
Reading and Writing Serial EEPROMs
What is a Circuit?
Voltage, Current, Resistance, and Ohm's Law
How to Use a Breadboard
What is Electricity?
Electric Power
Polarity
How to Use a Multimeter
How to Install FTDI Drivers
How to Install CH340 Drivers
Arduino Cores
For more information regarding Arduino cores and contributing third-party cores, check out the resources below:
Issues with an Arduino Core?
For filing GitHub issues for common Arduino Cores, check out the links below: