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

Key features:
  • 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
Resources: Supported platforms: Supported transports: UDP, UART, USB-CDC

Espressif ESP32

Key features:
  • 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
Resources: Supported platforms: Supported transports: UART, WiFi UDP, Ethernet UDP

Arduino Portenta H7

Key features:
  • MCU: Dual-core Arm Cortex-M7 and Cortex-M4
  • RAM: 8 MB
  • Flash: 16 MB
  • Peripherals: USB HS, Ethernet, WiFi/BT...
Resources: Supported platforms:
  • RTOSes:
  • External tools: Arduino
Supported transports: USB, WiFi UDP

Raspberry Pi Pico RP2040

Key features:
  • MCU: Dual-core Arm Cortex-M0+
  • RAM: 264 kB
  • Flash: up to 16 MB
  • Peripherals: I2C, SPI, PIO...
Resources: Supported platforms: Supported transports: USB, UART

ROBOTIS OpenCR 1.0

Key features:
  • MCU: ARM Cortex-M7 STM32F746ZGT6
  • RAM: 320 kB
  • Flash: 1024 kB
  • Peripherals: 3-axis IMU, Dynamixel ports, SPI, I2C...
Resources: Supported platforms:
  • RTOSes:
  • External tools: Arduino
Supported transports: USB, UART

Teensy 3.2

Key features:
  • MCU: ARM Cortex-M4 MK20DX256VLH7
  • RAM: 64 kB
  • Flash: 256 kB
  • Peripherals: USB, SPI, I2C, CAN, I2S...
Resources: Supported platforms:
  • RTOSes:
  • External tools: Arduino
Supported transports: USB, UART

Teensy 4.0/4.1

Key features:
  • MCU: ARM Cortex-M7 iMXRT1062
  • RAM: 1024 kB
  • Flash: 2048 kB
  • Peripherals: USB, PWM, SPI, I2C, CAN, I2S, SDIO,...
Resources: Supported platforms:
  • RTOSes:
  • External tools: Arduino
Supported transports: USB, UART

Crazyflie 2.1 Drone

Key features:
  • MCU: ARM Cortex-M4 STM32F405
  • RAM: 192 kB
  • Flash: 1 MB
  • Peripherals: 3 axis IMU, pressure sensor, SPI, I2C, UART, nRF51822 radio...
Resources: Supported platforms: Supported transports: Custom Radio Link

STM32L4 Discovery kit IoT

Key features:
  • 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...
Resources: Supported platforms: Supported transports: USB, UART, Ethernet UDP

Olimex LTD STM32-E407

Key features:
  • MCU: STM32F407ZGT6 Cortex-M4F
  • RAM: 196 kB
  • Flash: 1 MB
  • Peripherals: USB OTG, Ethernet, SD Card slot, SPI, CAN, I2C...
Resources: Supported platforms: Supported transports: USB (Z, N), UART (Z, F, N), Ethernet UDP (F, N)
Note: Only RTOS initials used for convenience.

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

Key features:
  • MCU: ARM Cortex-M3 AT91SAM3X8E
  • RAM: 96 kB
  • Flash: 512 kB
Resources: Supported platforms:
  • RTOSes:
  • External tools: Arduino
Supported transports: USB, UART

Arduino Zero

Key features:
  • MCU: ARM Cortex-M0+ ATSAMD21G18
  • RAM: 32 kB
  • Flash: 256 kB
Resources: Supported platforms:
  • RTOSes:
  • External tools: Arduino
Supported transports: USB, UART

ST NUCLEO-F446ZE

Resources: Supported platforms: Supported transports: UART

ST NUCLEO-F746ZG

Resources: Supported platforms: Supported transports: UART

ST NUCLEO-H743ZI

Resources: Supported platforms: Supported transports: UART