Supported Hardware
Micro-ROS aims to bring ROS 2 to a wide set of microcontrollers to allow having first-class ROS 2 entities in the embedded world.
The main targets of micro-ROS are mid-range 32-bits microcontroller families. Usually, the minimum requirements for running micro-ROS in an embedded platform are memory constraints. Since memory usage in micro-ROS is a complex matter we provide a complete article describing it and a tutorial on how to tune the memory consuption in the micro-ROS middleware.
In general micro-ROS will need MCUs that have tens of kilobytes of RAM memory and communication peripherals that enable the micro-ROS Client to Agent communication.
The micro-ROS hardware support is divided into two categories:
- Officially supported boards
- Community supported boards
In order to check the most recent hardware support visit the micro_ros_setup repo.
Officially supported boards
The officially supported boards are those which have been carried out or tested officially, and to which LTS is guaranteed.
Renesas EK RA6M5 and e2studio
![](icons/features.png)
- MCU: ARM Cortex M-33 core @ 200 MHz
- RAM: 512 kB
- Flash: up to 2 MB
- Peripherals: Ethernet, SCI, SPI, I2C, I2S, UART, USB, SDIO, CAN, GPIO, ADC/DAC, PWM
![](icons/resources.png)
![](icons/platforms.png)
![](icons/transports.png)
![](imgs/renesas.png)
Espressif ESP32
![](icons/features.png)
- MCU: ultra-low power dual-core Xtensa LX6
- RAM: 520 kB
- Flash: 4 MB
- Peripherals: Ethernet MAC, Wi-Fi 802.11 b/g/n, Bluetooth v4.2 BR/EDR, BLE, SPI, I2C, I2S, UART, SDIO, CAN, GPIO, ADC/DAC, PWM
![](icons/resources.png)
![](icons/platforms.png)
![](icons/transports.png)
![](imgs/esp32.jpg)
Arduino Portenta H7
![](icons/features.png)
- MCU: Dual-core Arm Cortex-M7 and Cortex-M4
- RAM: 8 MB
- Flash: 16 MB
- Peripherals: USB HS, Ethernet, WiFi/BT...
![](icons/resources.png)
![](icons/platforms.png)
- RTOSes: –
- External tools: Arduino
![](icons/transports.png)
![](imgs/portenta.jpg)
Raspberry Pi Pico RP2040
![](icons/features.png)
- MCU: Dual-core Arm Cortex-M0+
- RAM: 264 kB
- Flash: up to 16 MB
- Peripherals: I2C, SPI, PIO...
![](icons/resources.png)
![](icons/platforms.png)
- RTOSes: –
- External tools: Raspberry Pi Pico SDK
![](icons/transports.png)
![](imgs/rpipico.jpg)
ROBOTIS OpenCR 1.0
![](icons/features.png)
- MCU: ARM Cortex-M7 STM32F746ZGT6
- RAM: 320 kB
- Flash: 1024 kB
- Peripherals: 3-axis IMU, Dynamixel ports, SPI, I2C...
![](icons/resources.png)
![](icons/platforms.png)
- RTOSes: –
- External tools: Arduino
![](icons/transports.png)
![](imgs/opencr10.png)
Teensy 3.2
![](icons/features.png)
- MCU: ARM Cortex-M4 MK20DX256VLH7
- RAM: 64 kB
- Flash: 256 kB
- Peripherals: USB, SPI, I2C, CAN, I2S...
![](icons/resources.png)
![](icons/platforms.png)
- RTOSes: –
- External tools: Arduino
![](icons/transports.png)
![](imgs/teensy32.jpg)
Teensy 4.0/4.1
![](icons/features.png)
- MCU: ARM Cortex-M7 iMXRT1062
- RAM: 1024 kB
- Flash: 2048 kB
- Peripherals: USB, PWM, SPI, I2C, CAN, I2S, SDIO,...
![](icons/resources.png)
![](icons/platforms.png)
- RTOSes: –
- External tools: Arduino
![](icons/transports.png)
![](imgs/teensy41.jpg)
Crazyflie 2.1 Drone
![](icons/features.png)
- MCU: ARM Cortex-M4 STM32F405
- RAM: 192 kB
- Flash: 1 MB
- Peripherals: 3 axis IMU, pressure sensor, SPI, I2C, UART, nRF51822 radio...
![](icons/resources.png)
![](icons/platforms.png)
- RTOSes: FreeRTOS
- External tools: –
![](icons/transports.png)
![](imgs/3.jpg)
STM32L4 Discovery kit IoT
![](icons/features.png)
- MCU: ARM Cortex-M4 STM32L4
- RAM: 128 kB
- Flash: 1 MB
- Peripherals: Bluetooth, low-power RF module, 802.11 b/g/n, NFC, 2 digital microphone, temperature/humidity sensor, 3 axis IMU, ToF sensor...
![](icons/resources.png)
![](icons/platforms.png)
![](icons/transports.png)
![](imgs/2.jpg)
Olimex LTD STM32-E407
![](icons/features.png)
- MCU: STM32F407ZGT6 Cortex-M4F
- RAM: 196 kB
- Flash: 1 MB
- Peripherals: USB OTG, Ethernet, SD Card slot, SPI, CAN, I2C...
![](icons/resources.png)
![](icons/platforms.png)
![](icons/transports.png)
Note: Only RTOS initials used for convenience.
![](https://www.olimex.com/Products/ARM/ST/STM32-E407/images/STM32-E407-02.jpg)
Community supported boards
The micro-ROS community supported boards are contributions of micro-ROS’ users and community, and are not guaranteed to be officially supported.
Arduino Due
![](icons/features.png)
- MCU: ARM Cortex-M3 AT91SAM3X8E
- RAM: 96 kB
- Flash: 512 kB
![](icons/resources.png)
![](icons/platforms.png)
- RTOSes: –
- External tools: Arduino
![](icons/transports.png)
![](imgs/arduinodue.jpg)
Arduino Zero
![](icons/features.png)
- MCU: ARM Cortex-M0+ ATSAMD21G18
- RAM: 32 kB
- Flash: 256 kB
![](icons/resources.png)
![](icons/platforms.png)
- RTOSes: –
- External tools: Arduino
![](icons/transports.png)
![](imgs/arduinozero.jpg)
ST NUCLEO-F446ZE
![](icons/resources.png)
![](icons/platforms.png)
- RTOSes: FreeRTOS
- External tools: STM32CubeMX
![](icons/transports.png)
![](imgs/NUCLEO-F446ZE.jpg)
ST NUCLEO-F746ZG
![](icons/resources.png)
![](icons/platforms.png)
- RTOSes: FreeRTOS
- External tools: STM32CubeMX
![](icons/transports.png)
![](imgs/NUCLEO-F746ZG.jpg)
ST NUCLEO-H743ZI
![](icons/resources.png)
![](icons/platforms.png)
- RTOSes: FreeRTOS
- External tools: STM32CubeMX
![](icons/transports.png)
![](imgs/NUCLEO-H743ZI.jpg)
- Previous
- Next