8-bit microcontroller might not be able to read
sensors, analyze data, make decisions, and
output control signals fast enough.
WHICH IS BETTER?
Depends what you’re trying to do. Generally
speaking, AVR-based systems will be less
expensive and simpler to design and program. If
you’re just getting started, you almost certainly
should start with AVR Arduino boards.
On the other hand, if you feel comfortable with
Arduino circuits and programs, and need special
features like wireless networking or complex
mathematical calculations, then an ARM Arduino
is probably more suitable because the increased
word size, processing speed, and memory
are better able to handle larger, faster, more
complex programs.
THE ARDUINO ARM BOARDS
The ARM family of Arduino boards have used
three variations of the ARM core: Cortex M0,
M0+, and M4. The Cortex M0 core was optimized
for low cost as a 32-bit replacement for 8-bit
microcontrollers. The Cortex M0+ was further
optimized to reduce power and add new features.
The Cortex M4 is a much more powerful core
with a range of new features designed to support
industries such as motor control, automotive,
power management, embedded audio, and
industrial automation with the addition of DSP
(digital signal processing) instructions and optional
FPU (floating point unit) that make mathematical
operations extremely fast.
You can compare the current lineup of ARM
Arduinos in the table on the following page.
SPECIAL FEATURES
Some of these boards have other special features:
• The Arduino MKR Zero has an SD card socket
and I2S port, so it can play and analyze audio
files and connect directly to I2S digital audio
devices.
• The Arduino MKR Vidor 4000 adds a field-
programmable gate array (FPGA) that basically
allows you to design integrated circuits.
Because your design is implemented in
hardware, as opposed to software, a project
implemented on an FPGA is incredibly fast. The
99
make.co
The original Arduino family of boards was based
on Atmel AVR 8-bit microcontrollers. They’re
excellent in terms of price, flexibility, and ease of
use, but their limited processing speed and small
memory size make it difficult to support modern
networking protocols like Bluetooth, Wi-Fi, and
GSM cellular. So Arduino has taken advantage of
the availability of low-cost 32-bit microcontrollers
based on the ARM architecture to create a family
of dramatically more powerful and flexible boards.
WHAT’S THE DIFFERENCE?
Both AVR and ARM refer to families of
microprocessors. The ARM architecture was
developed by the ARM company and is licensed
to other companies, while the AVR architecture
was developed by Atmel and pretty much stayed
within Atmel (now owned by Microchip).
The AVR-based microcontroller line started
with relatively simple and slow 8-bit processors,
and the product line has since grown to include
16- and 32-bit processors. Designed from the
start to be the core of a microcontroller, the
AVR processor has efficient commands for
manipulating individual bits in input-output ports,
while the more generic ARM processor might
lack these features.
ARM-based microcontrollers, on the other hand,
are typically 32-bit devices with more complex
peripherals and substantially more memory,
running at speeds greater than AVR devices.
WHY 32 BITS?
The phrases “8 bits,” “32 bits,” and “64 bits”
are seen frequently, but what do they really
mean? They mean the microcontroller’s internal
pathways can carry that many bits of data at the
same time. So when a 32-bit microcontroller
wants to get information from memory, it can
get 4 times as much as an 8-bit microcontroller
could in the same amount of time, just as a 32-
lane highway could carry 4 times as many cars
as an 8-lane highway. It also means that most of
the internal processing, such as mathematical
calculations, work on 32 bits at a time, so those
calculations are much faster. This 32-bit word
size, coupled with the faster clock speed, makes
these boards practical for larger programs
and more complex calculations where an
M81_098-100_GSWarduinoBook_F1.indd 99M81_098-100_GSWarduinoBook_F1.indd 99 4/12/22 12:36 PM4/12/22 12:36 PM