Let’s face it, there are a lot of different Arduino boards out there. How do you decide which one you need for your project? In this tutorial, we’ll take a look at the diverse world of Arduino boards. We’ll begin with a tabular overview of the features each board has. Then we’ll delve deeper into each board, examining the pros, cons, and example use cases.
All Arduino boards have one thing in common: they are programmed through the Arduino IDE. This is the software that allows you to write and upload code. Beyond that, there can be a lot of differences. The number of inputs and outputs (how many sensors, LEDs, and buttons you can use on a single board), speed, operating voltage, and form factor are just a few of the variables. Some boards are designed to be embedded and have no programming interface (hardware) which you would need to buy separately. Some can run directly from a 3.7V battery, others need at least 5V. Check the chart on the next page to find the right
Arduino for your project.
|Item||System Voltage||Clock Speed||Digital I/O||Analog Inputs||PWM||UART||Programming
|ATmega328 Boards — 32kB Program Space // 1 UART // 6 PWM // 4-8 Analog Inputs // 9-14 Digital I/O|
|5V||16MHz||14||6||6||1||USB via ATMega16U2||$29.95|
|5V||16MHz||14||6||6||1||USB via ATMega16U2||$29.95|
|5V||16MHz||14||6||6||1||USB via FTDI||$24.95|
|3.3V||8MHz||14||8||6||1||FTDI-Compatible Header or Wirelessly via XBee†||$24.95|
|ATmega32U4 Boards — 32kB Program Space // 1 UART // 5-7 PWM // 12 Analog Inputs // 9-20 Digital I/O|
|ATmega2560 Arduino Mega’s — 256kB Program Space // 4 UARTs // 14 PWM // 16 Analog Inputs // 54 Digital I/O|
|5V||16MHz||54||16||14||4||USB via ATMega16U2||$58.95|
|AT91SAM3X8E Arduino Due — 512kB Program Space // 4 UARTs // 12 PWM (2 DAC) // 12 Analog Input // 54 Digital I/O|
Glossary of Terms:
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 of which have different 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 that 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 actually running. This is an important 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 with which you’re trying to communicate is able to match the logic level of your controller.
Clock Speed: This is the operating frequency of the microcontroller 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 your to store your sketch. Not all of this memory is available as a very small 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. Other boards, like the Mini, break out the serial pins for programming but aren’t pin-compatible with the FTDI header. Any Arduino board that has 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 support for USB.
The Main Event: Arduino Uno
The Arduino Uno is the “stock” Arduino. It’s what we compare every, other, Arduino-compatible board to. If you’re just getting into Arduino, this is the board to start with.
The Uno comes in two flavors, through-hole and SMD, which use either a through-hole or surface-mount ATmega328. The through-hole version (pictured above) is nice because you can take the chip out and swap in a new one (in case the magic, blue smoke is released), but the SMD version has the potential to be more readily available (PTH chips are increasingly being phased out of existence).
The Arduino Uno can be powered through either the USB interface, or an external barrel jack. To connect it to a computer you’ll need a type-B-to-A USB cable (like the USB connector on most printers).
Megas, ARMs, Yúns…Oh My!
Need some extra “beef” in your Arduino? Need more I/O pins, or a faster processor? That’s where Arduino’s like the Mega or the Due come into the picture.
Arduino Mega: The Souped Up Uno
The Arduino Mega is what you might get if you packed four Arduino Uno’s into one board. There are 54 I/O pins, instead of the 14 an Uno gives you. That’s a whole lot of extra LEDs! Instead of one hardware serial port, there are four. And the Mega sports a whopping 256 kB of flash program space. Not to mention 16 analog inputs, and 14 PWM outputs. The Mega just has more of everything.
The brain of the Mega is an ATmega2560, a fully souped up ATmega328. Aside from the massive processor overhaul, the Mega still shares a lot in common with the Arduino Uno. There’s a secondary IC on-board (an ATmega16U2) to convert USB-to-serial to allow USB programming. It runs at the same speed – 16 MHz. All of the pins are broken out in a way that keeps the board shield-compatible. Because of these similarities, the Mega is a good option for Arduino beginners and experts alike.
If your Arduino project is hitting a wall because you don’t have enough I/O, or if you’re running out of program space, consider stepping up to the Mega.
Arduino Due: Arduino Harder
You thought the Mega was powerful? The Arduino Due is a revolutionary take on the Arduino platform. It sports an entirely different processor architecture – ARM instead of AVR. It’s a 32-bit processor, clocks in at 84 MHz, and has native USB support.
This thing sports many unique features that other boards don’t have. Stuff like:
- Two digital-to-analog converters (DACs), which allow the board to output true analog values (instead of PWM). This means you can play audio out it!
- USB on-the-go (OTG) capability allows the Due to act as both a USB device and a host. So you can hook up other USB devices – like flash drives, WiFi modules, or phones – to the Due.
- Direct Memory Access (DMA) allows the microcontroller to offload memory-access tasks, so it can perform other operations at the same time.
There are also some new things to watch out for. The Due’s processor – an ATSAM3X8E – can’t work at 5V, so the board only runs at 3.3V This means it may not be compatible with all shields.
The Due has some amazing functionality, but it’s also a more advanced board. It’s not recommended for beginners, but if you have a project that might take advantage of the Due’s unique characteristics, check it out!
The Arduino Yún has true microprocessor power. It actually runs Linux! It works over WiFi! It’s awesome.
The Yún combines an ATmega32U4 (the same MCU on Leonardos) and an embedded Linux machine running the OpenWRT Linux OS. The two processors are “bridged” together. You program the ATmega32U4, just like you program an Arduino Leonardo, over USB. The 32U4 can send commands to the Linux processor, just as you might send commands to your Linux computer in a terminal.
This board is packed full of all sorts of neat features. It can be programmed over-the-air, as long as your computer is on the same WiFi network. It’s designed to easily interact with the Internet, so if your intend on making an “Internet-of-Things”-type project, the Yún may be the perfect Arduino.