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.

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