An easy comparison between Arduino, STM32, Raspberry PI
Tags: arduino, stm32, raspberrypi, microcontroller
Published: 2023-06-19 22:35:42



## Arduino

- **Purpose:** Arduino boards are primarily used for simple and standalone projects, especially in the field of electronics and physical computing.
- **Microcontroller:** Arduino boards are based on microcontrollers, typically from the Atmel AVR family. These microcontrollers have lower processing power and limited capabilities compared to full-fledged microprocessors.
- **Programming Language:** Arduino boards are programmed using the Arduino IDE, which is based on the C/C++ programming language. It provides a simplified and beginner-friendly programming environment.
- **I/O Pins:** Arduino boards have a limited number of digital and analog input/output pins (e.g., Arduino Uno has 14 digital pins and 6 analog pins) for connecting sensors, actuators, and other external devices.
- **Real-time Capabilities:** Arduino boards have real-time capabilities and can be used for tasks that require precise timing or control, such as robotics or automation.
- **Power Consumption:** Arduino boards are designed to be power-efficient, making them suitable for low-power and battery-powered applications.


| Feature           | Arduino Uno   | Arduino Nano  | Arduino Mega | Arduino Due  |
| ----------------- | ------------- | ------------- | ------------ | ------------ |
| Microcontroller   | ATmega328P    | ATmega328P    | ATmega2560   | AT91SAM3X8E   |
| Operating Voltage | 5V            | 5V            | 5V           | 3.3V          |
| Digital I/O Pins  | 14            | 14            | 54           | 54            |
| Analog Input Pins | 6             | 8             | 16           | 12            |
| Flash Memory      | 32KB          | 32KB          | 256KB        | 512KB         |
| SRAM              | 2KB           | 2KB           | 8KB          | 96KB          |
| Clock Speed       | 16MHz         | 16MHz         | 16MHz        | 84MHz         |
| USB Interface     | Yes (Type-B)  | Yes (Mini USB)| Yes (Type-B) | Native USB    |
| Size              | Standard      | Compact       | Large        | Large         |
| Price             | Affordable    | Budget-friendly| Higher-end  | Mid-range     |



## STM32

- **Purpose:** STM32 microcontrollers are commonly used in professional embedded systems and applications that require more processing power and advanced features.
- **Microcontroller:** STM32 microcontrollers are based on the ARM Cortex-M family of microprocessors, offering higher performance and more advanced features compared to Arduino boards.
- **Programming Language:** STM32 microcontrollers can be programmed using various development environments, including the STM32CubeIDE, Keil MDK, and PlatformIO. They support programming languages like C, C++, and assembly.
- **I/O Pins:** STM32 microcontrollers offer a wide range of digital and analog input/output pins, providing more flexibility for connecting external devices and sensors.
- **Real-time Capabilities:** STM32 microcontrollers often have built-in real-time operating systems (RTOS) support and advanced peripherals, making them suitable for real-time applications.
- **Power Consumption:** Power consumption varies depending on the specific STM32 microcontroller, but they generally offer power-saving modes and features for efficient operation.

| Feature           | STM32F103C8T6     | STM32F407VGT6     | STM32F429ZIT6     | STM32F030F4P6     | STM32F767ZIT6     |
| ----------------- | ----------------- | ----------------- | ----------------- | ----------------- | ----------------- |
| Microcontroller   | ARM Cortex-M3      | ARM Cortex-M4      | ARM Cortex-M4      | ARM Cortex-M0      | ARM Cortex-M7      |
| Operating Voltage | 3.3V              | 3.3V              | 3.3V              | 3.3V              | 3.3V              |
| Flash Memory      | 64KB              | 512KB             | 2MB               | 16KB              | 2MB               |
| SRAM              | 20KB              | 192KB             | 256KB             | 4KB               | 512KB             |
| Clock Speed       | 72MHz             | 168MHz            | 180MHz            | 48MHz             | 216MHz            |
| Digital I/O Pins  | 37                | 82                | 168               | 16                | 144               |
| Analog Input Pins | 10                | 16                | 24                | 7                 | 24                |
| USB Interface     | No                | Yes (Full-Speed)  | Yes (High-Speed)  | Yes (Full-Speed)  | Yes (High-Speed)  |
| Size              | Small             | Medium            | Medium/Large      | Small             | Large             |
| Price             | Affordable        | Mid-range         | Higher-end        | Affordable        | Higher-end        |

## Raspberry 

- **Purpose:** Raspberry Pi is a single-board computer designed for a wide range of applications, including desktop computing, IoT projects, media centers, and more.
- **Processor:** Raspberry Pi boards are powered by ARM-based processors, offering higher processing power and capabilities compared to microcontrollers.
- **Operating System:** Raspberry Pi boards run various operating systems, including Linux-based distributions like Raspbian (now called Raspberry Pi OS) and Ubuntu, as well as other specialized operating systems.
- **Programming Languages:** Raspberry Pi supports a wide range of programming languages, including Python, C/C++, Java, and more. It provides a full-fledged computing environment.
- **I/O Pins:** Raspberry Pi boards have general-purpose input/output (GPIO) pins, allowing you to interface with external devices and sensors. The number of GPIO pins varies depending on the specific Raspberry Pi model.
- **Connectivity:** Raspberry Pi boards offer built-in Ethernet, USB ports, Wi-Fi, Bluetooth, and HDMI output, enabling easy connectivity with peripherals and other devices.
- **Power Consumption:** Raspberry Pi boards require a stable power supply, and the power consumption varies depending on the specific model and the peripherals connected.


| Model              | Raspberry Pi Zero W | Raspberry Pi 3 Model B+ | Raspberry Pi 4 Model B |
| ------------------ | ------------------ | ---------------------- | ---------------------- |
| Processor          | ARM11              | Cortex-A53             | Cortex-A72             |
| CPU Speed          | 1 GHz              | 1.4 GHz                | 1.5 GHz                |
| RAM                | 512MB              | 1GB                    | 2GB, 4GB, 8GB          |
| Wireless           | Wi-Fi, Bluetooth   | Wi-Fi, Bluetooth       | Wi-Fi, Bluetooth       |
| Ethernet           | No                 | Yes                    | Yes                    |
| USB Ports          | 1                  | 4                      | 2                      |
| Video Output       | Mini HDMI          | HDMI                   | 2x Micro HDMI          |
| GPIO Pins          | 40                 | 40                     | 40                     |
| Storage            | microSD            | microSD                | microSD                |
| Power Supply       | Micro USB          | Micro USB              | USB-C                  |
| Dimensions         | 65mm x 30mm        | 85mm x 56mm x 17mm     | 88mm x 58mm x 19.5mm   |
| Price              | Affordable         | Mid-range              | Mid-range/Higher-end   |