When it comes to microcontrollers and microprocessors for embedded systems and IoT devices, two of the most popular options are ARM Cortex processors and Arduino boards. Both have their advantages and disadvantages, and the right choice depends on the specific needs of your project.
The key differences between ARM Cortex and Arduino boil down to the following:
- ARM Cortex refers to the core CPU architecture and designs licensed by ARM Holdings, while Arduino is an open-source microcontroller development platform using simple AVR 8-bit RISC chips.
- ARM offers just the intellectual property cores and architectures, while Arduino offers full microcontroller boards with GPIOs.
- ARM designs are much more powerful, faster and energy-efficient than 8-bit AVR chips used in Arduinos.
- Arduino is more beginner friendly and offers a thriving ecosystem of add-on boards and libraries.
In the rest of this article, we’ll explore these differences in more detail.
ARM Cortex Architecture Overview
ARM Cortex refers to range of proprietary 32-bit and 64-bit RISC CPU cores designed and licensed by ARM Holdings. ARM licenses the CPU architectures and designs to many semiconductor companies, who in turn fabricate the ARM cores and integrate them into full System-on-Chips (SoCs) with peripherals and interfaces added.
Some of the most popular ARM Cortex CPU cores include:
- Cortex-A Series – Application Profile cores for complex OS and applications
- Cortex-R Series – Real-time Profile cores for real-time embedded tasks
- Cortex-M Series – Microcontroller Profile cores for microcontroller and deeply embedded applications
The Cortex-M series is the most popular for microcontroller and IoT applications, with ultra low power, low cost variants like Cortex-M0, M0+, M3, all the way up to more powerful options like Cortex-M4, M7 and M33. ARM also offers big.LITTLE configurations combining low power and high performance cores.
Compared to 8-bit AVR microcontrollers used on Arduino boards, even the lowest end Cortex-M0+ core runs at speeds of 48-256 MHz, while using less power. The Cortex-M4 can run up to hundreds of MHz, with DSP extensions and floating point unit for more advanced math.
Arduino Architecture Overview
Arduino is not a microprocessor architecture, but rather a microcontroller development platform using simple 8-bit RISC chips like the ATmega328P. It provides a standard hardware specification for the boards, bootloader, core software libraries and IDE.
Some of the most common Arduino boards and their microcontrollers include:
- Arduino Uno – ATmega328P – 8-bit AVR @ 16MHz clock
- Arduino Mega – ATmega2560 – 8-bit AVR @ 16MHz clock
- Arduino Nano – ATmega328P – 8-bit AVR @ 16MHz clock
- Arduino Leonardo – ATmega32U4 – 8-bit AVR @ 16MHz clock
As you can see, most Arduino boards use low power 8-bit RISC chips running at just 16MHz, which is why ARM Cortex vastly outperforms them. However, the simplicity and ease-of-use of Arduino makes it popular for hobbyists and educational use.
Let’s compare some key performance metrics between entry-level ARM Cortex-M0+ processors and the ATmega328P used on Arduino Uno and Nano boards:
- Clock Speed – ATmega328P runs at 16 MHz, while Cortex-M0+ starts at 48 MHz (3x faster).
- Instructions Per Second – ATmega328P can do around 16 MIPS, while Cortex-M0+ does 48-256 MIPS.
- Flash Memory – ATmega328P has 32 KB, compared to 256 KB for Cortex-M0+.
- SRAM – ATmega328P has just 2 KB, compared to 32 KB for Cortex-M0+.
- Architecture – 8-bit AVR vs 32-bit ARM Thumb instruction set. Wider registers and instructions.
- Power Efficiency – Cortex-M0+ can run at lower voltages and draws less power than ATmega328P.
Overall, even the lowest end Cortex-M0+ cores are over 3x faster, have way more memory, better power efficiency and more advanced architecture compared to ATmega328P chips. The gap widens as you go to Cortex-M3, M4 etc.
Use Cases and Applications
Due to its simplicity and large project ecosystem, Arduino is often used by hobbyists, students and educators just getting started with microcontrollers and embedded programming. It allows quick prototyping of basic IoT devices.
However, for commercial embedded products, ARM Cortex-M series dominates. The combination of low power usage, real-time performance, memory size and peripherals make Cortex-M ideal for IoT edge nodes, wearables, home automation, industrial devices, medical devices and more. Their 32-bit architecture also supports modern connectivity standards like BLE, Thread and Zigbee.
Projects that need more processing power, memory and low level control will benefit from upgrading to ARM Cortex-M from Arduino. But Arduino is sufficient for simple IoT sensors, basic robots and LED or motor control.
Arduino provides an easy IDE for programming, with many libraries and examples available. It uses a simplified C/C++ dialect for writing sketch code. Many starter kits and tutorials use Arduino.
For ARM Cortex-M development, you have a few options like Mbed, STM32CubeIDE, NXP Kinetis SDK, Arm Keil MDK. These provide C/C++ compilers, debuggers, software libraries for the MCU peripherals and boards. More complex than Arduino but very powerful.
Recently, Arduino has also started offering more powerful ARM-based boards like Arduino Nano 33 BLE Sense, which houses a Cortex-M4 chip. So the gap between Arduino and ARM is shrinking on the development side.
One of Arduino’s biggest strengths is its large user base, community support, and abundance of expansion boards called shields. There are shields for nearly any application – WiFi, BLE, LoRa, motors etc. Lots of example code and tutorials are available for common projects.
ARM Cortex ecosystem is more fragmented between vendors like STM, NXP, Microchip etc. But their MCUs power Arduino compatibility boards from Adafruit, Sparkfun etc. ARM also maintains its own Mbed community for projects and code examples.
Many Arduino boards can be purchased for $10-$30 which is great for hobbyists. More powerful ARM Cortex development boards cost $30 to $150+ depending on features.
However, for mass production, custom ARM Cortex-M MCUs cost under $2 in high volumes, competitive with 8-bit AVR chips. So ARM Cortex ultimately wins on cost at scale.
To summarize, Arduino and ARM Cortex both have their place, but serve different needs:
- Arduino is great for beginners, hobbyists, and simple low performance projects.
- ARM Cortex offers higher performance, efficiency and capabilities for commercial embedded and IoT products.
For resource constrained applications that need simple sensing and control, 8-bit Arduino boards are sufficient. But for more complex processing, connectivity and real-time control, 32-bit ARM Cortex-M cores are the way to go.