Installing Board Definitions in the Arduino IDE

Pages
Contributors: santaimpersonator
Favorited Favorite 3

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.

boards manager

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

How do I install a custom Arduino library? It's easy! This tutorial will go over how to install an Arduino library using the Arduino Library Manager. For libraries not linked with the Arduino IDE, we will also go over manually installing an Arduino library.

What is an Arduino?

What is this 'Arduino' thing anyway? This tutorials dives into what an Arduino is and along with Arduino projects and widgets.

Installing Arduino IDE

A step-by-step guide to installing and testing the Arduino software on Windows, Mac, and Linux.

Choosing an Arduino for Your Project

Examining the diverse world of Arduino boards and understanding the differences between them before choosing one for a 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...

Board manager from tools menu
Navigating to the Boards Manager in the Arduino IDE (v1.8.5).

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.)

boards manager
The Boards Manager in the Arduino IDE (v1.8.5).

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.

Search for an arduino core
Arduino core for the Arduino SAMD Boards, ready to be installed.

Click the Install button, and the Arduino core should install automatically.

Install arduino core
Arduino SAMD core being installed.

Once the installation is complete, the version of the Arduino core and an INSTALLED tag will appear next to the name of the core.

installtion complete
Completed installation of the Arduino SAMD core.

Now with the Arduino core is installed, the board definitions can be accessed from the Board: "<Selected Board>", drop down menu.

Board manager with SAMD board definitions listed
Board definitions for the Arduino SAMD Boards.

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.

Updating a 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:

no results
No results when searching for 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:

File drop down menu
File drop down menu in the Arduino IDE.

Preferences
Additional Board Manager URLs field in the Arduino IDE Preferences menu.

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:

Note:

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).

Additional Board Manager URLs window
Text field for the Additional Board Manager URLs window.

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:

Sparkfun's boards listed
SparkFun's cores listed in the Boards Manager.

Note: To search for the ESP32 and ESP8266 board definitions from Espressif Systems, use 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.

Take me there!

SparkFun Tutorials

Installing an Arduino Library

How do I install a custom Arduino library? It's easy! This tutorial will go over how to install an Arduino library using the Arduino Library Manager. For libraries not linked with the Arduino IDE, we will also go over manually installing an Arduino library.

What is an Arduino?

What is this 'Arduino' thing anyway? This tutorials dives into what an Arduino is and along with Arduino projects and widgets.

Installing Arduino IDE

A step-by-step guide to installing and testing the Arduino software on Windows, Mac, and Linux.

Efficient Arduino Programming with Arduino CLI and Visual Studio Code

How to eschew the Arduino IDE for a combination of and Arduino command-line tool (Arduino CLI) and a professional code editor (Visual Studio Code).

Installing Board Definitions in the Arduino IDE

How do I install a custom Arduino board/core? It's easy! This tutorial will go over how to install an Arduino board definition using the Arduino Board Manager. We will also go over manually installing third-party cores, such as the board definitions required for many of the SparkFun development boards.

Arduino Tutorials

Arduino Board Comparison Guides

Choosing an Arduino for Your Project

Examining the diverse world of Arduino boards and understanding the differences between them before choosing one for a project.

Standard Arduino Comparison Guide

Arduino Comparison Guide Uno or Pro Mini? Bluetooth or wireless? When it comes to Arduinos, there are a lot of choices. We've compiled every Arduino developmentā€¦

RedBoard vs. Uno

In this tutorial we discuss the differences and similarities between the RedBoard and the Arduino Uno (SMD and PTH). The development platforms

Getting Started with Arduino Shields

Arduino Shields v2

An update to our classic Arduino Shields Tutorial! All things Arduino shields. What they are and how to assemble them.

Other Arduino Shield Related Tutorials

MP3 Player Shield Hookup Guide V15

How to get your Arduino groovin' using the MP3 Player Shield.

CAN-BUS Shield Hookup Guide

A basic introduction to working with the CAN-Bus shield.

SparkFun ESP32 DMX to LED Shield

Learn how to utilize your DMX to LED Shield in a variety of different ways.

SparkFun Qwiic Shield for Thing Plus Hookup Guide

A short guide for assembling and using the SparkFun Qwiic Shield for Thing Plus.
Beginner

Click the buttons above for tutorials relating to the board functionality based on topic difficulty.

Beginner

Serial Communication

Asynchronous serial communication concepts: packets, signal levels, baud rates, UARTs and more!

Analog to Digital Conversion

The world is analog. Use analog to digital conversion to help digital devices interpret the world.

Logic Levels

Learn the difference between 3.3V and 5V devices and logic levels.

Analog vs. Digital

This tutorial covers the concept of analog and digital signals, as they relate to electronics.

Data Types in Arduino

Learn about the common data types and what they signify in the Arduino programming environment.

How to Work with Jumper Pads and PCB Traces

Handling PCB jumper pads and traces is an essential skill. Learn how to cut a PCB trace, add a solder jumper between pads to reroute connections, and repair a trace with the green wire method if a trace is damaged.

Intermediate

Serial Peripheral Interface (SPI)

SPI is commonly used to connect microcontrollers to peripherals such as sensors, shift registers, and SD cards.

I2C

An introduction to I2C, one of the main embedded communications protocols in use today.

Processor Interrupts with Arduino

What is an interrupt? In a nutshell, there is a method by which a processor can execute its normal program while continuously monitoring for some kind of event, or interrupt. There are two types of interrupts: hardware and software interrupts. For the purposes of this tutorial, we will focus on hardware interrupts.

Advanced

Installing an Arduino Bootloader

This tutorial will teach you what a bootloader is and why you would need to install or reinstall it. We will also go over the process of burning a bootloader by flashing a hex file to an Arduino microcontroller.

Integrated Circuits

An introduction to integrated circuits (ICs). Electronics' ubiquitous black chips. Includes a focus on the variety of IC packages.

Reading and Writing Serial EEPROMs

EEPROM is a great way to add extra memory to your microcontroller project. Wait 'til you see how easy it is to use!

What is a Circuit?

Every electrical project starts with a circuit. Don't know what a circuit is? We're here to help.

Voltage, Current, Resistance, and Ohm's Law

Learn about Ohm's Law, one of the most fundamental equations in all electrical engineering.

How to Power a Project

A tutorial to help figure out the power requirements of your project.

Working with Wire

How to strip, crimp, and work with wire.

How to Use a Breadboard

Welcome to the wonderful world of breadboards. Here we will learn what a breadboard is and how to use one to build your very first circuit.

What is Electricity?

We can see electricity in action on our computers, lighting our houses, as lightning strikes in thunderstorms, but what is it? This is not an easy question, but this tutorial will shed some light on it!

Electric Power

An overview of electric power, the rate of energy transfer. We'll talk definition of power, watts, equations, and power ratings. 1.21 gigawatts of tutorial fun!

Polarity

An introduction to polarity in electronic components. Discover what polarity is, which parts have it, and how to identify it.

How to Use a Multimeter

Learn the basics of using a multimeter to measure continuity, voltage, resistance and current.

LilyPad Basics: E-Sewing

Learn how to use conductive thread with LilyPad components.
Don't forget to install any drivers required for your board:

How to Install FTDI Drivers

How to install drivers for the FTDI Basic on Windows, Mac OS X, and Linux.

How to Install CH340 Drivers

How to install CH340 drivers (if you need them) on Windows, Mac OS X, and Linux.

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: