Learn to code

Arduino Home

Lessons 1
Arduino - Getting Started
Lessons 2
Arduino - Basics
Lessons 3
Arduino - Serial Communication
Lessons 4
Arduino - Digital / Analog
Lessons 5
Arduino - Visual Output
Lessons 6
Arduino - Motor Control
Lessons 7
Arduino -LCD Displays
Lessons 8
Arduino -LCD Displays

Choosing an Arduino Board

in Arduino Getting Started

There are many Arduino and Arduino-compatible boards. So what is the best Arduino Board to get? To determine the best Arduino Board for your project, you will need to consider the requirements derived from your project. The boards described below are not all the boards available on the market. The goal here is to show which elements essential are for the choice of an Arduino board.

The first things you should consider before picking an Arduino board are:

  • Is the Arduino Board compatible with my other components?
  • Does the Arduino Board operate at the same voltage level as my components?
  • How many input or output pins do you need for the project?
  • How does the board need to communicate (USB, Bluetooth, WiFi, USB, etc.)

Before we can compare some Arduino Boards, it is wise to highlight some important terms.

Terminology

Before continuing with this guide, you may want to check out any topics from the list below that sound unfamiliar.

Microcontroller (MCU): The microcontroller is the heart (or, more appropriately, the brain) of the Arduino board. The Arduino development board is based on AVR microcontrollers of different types, each with various functions and features.

Input Voltage: This is the suggested input voltage range for the board. The board may be rated for a slightly higher maximum voltage, but this is the safe operating range. A handy thing to keep in mind is that many of the Li-Po batteries we carry are 3.7V, meaning that any board with an input voltage, including 3.7V can be powered directly from one of our Li-Po battery packs.

System Voltage: This is the system voltage of the board, i.e., the voltage at which the microcontroller is running. This is a crucial factor for shield-compatibility since the logic level is now 3.3V instead of 5V. You always want to be sure that whatever outside system you’re trying to communicate can match your controller’s logic level.

Clock Speed: This is the microcontroller’s operating frequency and is related to the speed at which it can execute commands. Although there are rare exceptions, most ATmega microcontrollers running at 3V will be clocked at 8MHz, whereas most running at 5V will be clocked at 16MHz. The clock speed of the Arduino can be divided down for power savings with a few tricks if you know what you’re doing.

Digital I/O: This is the number of digital input/output (I/O) pins that are broken out on the Arduino board. Each of these can be configured as either an input or an output. Some are capable of PWM, and some double as serial communication pins.

Analog Inputs: This is the number of analog input pins that are available on the Arduino board. Analog pins are labeled “A” followed by their number. They allow you to read analog values using the analog-to-digital converter (ADC) in the ATMega chip. Analog inputs can also be configured as more digital I/O if you need it!

PWM: This is the number of digital I/O pins that are capable of producing a Pulse-width modulation. (PWM) signal. A PWM signal is like an analog output; it allows your Arduino to “fake” an analog voltage between zero and the system voltage.

UART: This is the number of separate serial communication lines your Arduino board can support. On most Arduino boards, digital I/O pins 0&1 double as your serial send and receive pins and are shared with the serial programming port. Some Arduino boards have multiple UARTs and can support multiple serial ports at once. All Arduino boards have at least one UART for programming, but some aren’t broken out to pins that are accessible.

Flash Space: This is the amount of program memory that the chip has available for you to store your sketch. Not all of this memory is available as a tiny portion is taken up by the bootloader (usually between 0.5 and 2KB).

Programming Interface: This is how you hook up the Arduino board to your computer for programming. Some boards have a USB jack on-board, so that all you need to do is plug them into a USB cable. Others have a header available so that you can plug in an FTDI Basic breakout or FTDI Cable. Like the Mini, other boards break out the serial pins for programming but aren’t pin-compatible with the FTDI header. Any Arduino board with a USB jack on-board also has some other hardware that enables the serial to USB conversion. Some boards, however, don’t need additional hardware because their microcontrollers have built-in USB support.

Boards used on this website

Arduino Uno: the Arduino Uno board is the “baseline” board. This is the board that we compare every board. If you are a beginner, this is the board to start with. The Arduino board is a microcontroller board based on the ATmega328P. It has 14 digital input-output pins, 6 analog inputs, a USB connection, a power jack, an ICSP header, and a reset button. It contains everything you need to start with microcontrollers. Below is a picture with all the key elements of the Arduino Uno Board. We will discuss all of these elements in this tutorial.

With the Arduino Uno board, you can do almost every tutorial on this website. You can always choose a faster and more capable processor than the Uno.

You can also buy a development Arduino board. That is a board without headers. This is useful for permanent projects or projects that require you to have very steady connections.

3.3V versus 5V boards

Many microcontroller boards like the Arduino Uno board operate on 5V. However, many newer boards operate on 3.3V instead. Some old components require 5V to operate, while newer components operate on 3.3V.

You have to decide which voltage you require in your circuit. If you need to have both voltage outputs in one circuit you can use a level shifter. Logic level shifting is when you transform a 5v signal to a 3.3v signal and vice versa.

Compare Arduino Boards

Board NameMicrocontrollerOperating voltage (V)Digital PinsPWM enabled PinsAnalog PinsDC per pin (mA)Network SupportEntry Level
Arduino Uno R3Atmega3285V146620NONEBeginner
Arduino NanoAtmega3285V226840NONEBeginner
Arduino LeonardoAtmega32u45V2071240NONEBeginner
Arduino MicroAtmega32u45V2071240NONEBeginner
Arduino Nano 33 BLESAMD21 Cortex®-M0+ 32bit low power ARM MCU3.3V
1414815BluetoothAdvanced
Arduino DueAtmel SAM3X8E ARM Cortex-M33.3V541212130NONEAdvanced
Arduino Mega 2560Atmega25605V54151620NONEAdvanced
Arduino ZeroATSAMD21G18, 32-Bit ARM Cortex M0+3.3V 20617Advanced
Arduino Uni Wifi Ref2ATmega4809 5V145620WiFi / Bluetooth
Arduino Nano 33 IOTArm® Cortex®-M0 32-bit SAMD213.3V141187WiFi / BluetoothInternet of things
ARDUINO MKR GSM 1400
SAMD21 Cortex®-M0+ 32bit low power ARM MCU3.3V
81377GSM / 3G
ARDUINO MKR1000 WIFI
SAMD21 Cortex-M0+ 32bit low power ARM MCU
3.3V
81277WiFi
Previous Post
Understanding basic electronics and resistance for Arduino
Next Post
Arduino Pin Functions
You must be logged in to post a comment.
Menu