Lesson 2 / 25

The Arduino Ecosystem

Boards, cores, IDE and arduino-cli.

Boards, cores and tools

Arduino is an open hardware and software ecosystem. Popular boards include the Uno (classic Uno R3 uses the ATmega328P at 5 V), the small Nano family, and many third-party boards such as the ESP32 family (3.3 V logic, built-in Wi-Fi). Each board family is supported by a core: a package containing the compiler toolchain, the Arduino API implementation (digitalWrite, Serial and so on) and upload tools. You write code in the Arduino IDE or with arduino-cli, a command-line tool that is handy for scripting and CI. Boards are identified by a FQBN (fully qualified board name) such as arduino:avr:uno. Third-party cores like ESP32 are installed by adding the vendor's board-manager URL; check the vendor's documentation for the current URL.

Installing a core with arduino-cli

Commands shown for reference; flags can change between versions, so check arduino-cli help.

# refresh the list of available cores and install the AVR core (Uno, Nano)
arduino-cli core update-index
arduino-cli core install arduino:avr

# see which boards are connected and their ports
arduino-cli board list

# search for and install a library
arduino-cli lib search "Servo"
arduino-cli lib install "Servo"

Mind the logic voltage

An Uno R3 uses 5 V logic, while ESP32 boards use 3.3 V and their pins are generally not 5 V tolerant. Always check your board's datasheet/pinout before connecting a sensor or module.

Quick check: What is an Arduino "core"?

  • A package with the toolchain, Arduino API implementation and upload tools for a board family
  • The CPU chip soldered on the board
  • A cloud service that runs your sketch
  • A type of breadboard
Answer

A package with the toolchain, Arduino API implementation and upload tools for a board family — Installing the right core lets the same Arduino API compile for different chips.