Supported Hardware

micro-ROS targets mid-range and high-performance 32-bits microcontrollers families. For now, most of the ports are based on the STM32 series from ST. These kinds of MCU feature ARM Cortex-M processors with many peripherals such as GPIO, communication or coprocessors. By default, micro-ROS uses NuttX RTOS, but it also has ports for FreeRTOS and Zephyr. These RTOSes have a big variety of supported MCUs and development boards. The following list shows some of them:

  • MicroChip PIC32MX Family
  • Atmel SAMA5Dx
  • STM32F1/2/3/4 and STM32L1/4, that includes many Nucleo board support.
  • Renesas M16C/26
  • NXP/Freescale i.MX1/6 and i.MX RT
  • Silicon Labs EFM32 Gecko and Giant Gecko
  • XTENSA board, that includes ESP32
  • RISC-V boards

Please check this link to see the complete list and the status of each board. In case you are interested in porting new boards or MCUs, please check the next link.

Even though many development boards could be used, we have chosen two of them as references. This page lists the hardware platforms that we use to test and develop micro-ROS, and also accessories that we frequently refer to, such as add-on boards, and JTAG probes.

For the ease of use, micro-ROS provides a ready to use example for some development boards. These out-of-the-box examples aim to show micro-ROS capabilities and they are also a starting point for developing embedded ROS 2 applications.

Reference Platforms

This section describes the main characteristic of the selected boards.

Olimex LTD STM32-E407

Olimex

The Olimex LTD STM32-E407 is an open-hardware low-cost entry board for developing custom applications with the STM32F407ZGT6 Cortex-M4F microcontrollers from STMicroelectronics.

It contains 196KB of RAM and 1MB of Flash. It is a very complete board thanks to the wide variety of communication interfaces it offers: USB OTG, Ethernet, SD Card slot, SPI, CAN or I2C buses are exposed. The board contains various expansion options available: Arduino-like headers for attaching daughter boards, many pins exposed, as well as a UEXT connector. This connector is a custom pin-out bus and is used to attach sensor breakouts that manufacturer sells.

Ports for micro-ROS on all supported RTOS are available for this board. Please see our First micro-ROS Application on an RTOS tutorial for how to start developing with this board.

Development tools

In order to flash and debug the board, it is required to get a JTAG probe. We recommend getting one of the following JTAG probes:

Resources

STM32L1 Discovery

The (STM32L1 Discovery Kit)[https://www.st.com/en/evaluation-tools/32l152cdiscovery.html] is an open hardware design, ultra low power and low-cost entry board for developing custom applications. It contains an STM32L152RCT6 Cortex-M3 microcontroller manufactured by ST Microelectronics. This part number contains 32KB of RAM and 256KB of flash memory. It also includes an ST-Link in-circuit debugger that allows flashing and debugging the target microcontroller.

Resources

STM32L4 Discovery kit IoT

The ST B-L475E-IOT01A evaluation board is a ready to use IoT kit. This board supports an out-of-the-box micro-ROS + Zephyr port.

The STM32L4 Discovery kit IoT enables a wide diversity of applications by exploiting low-power communication, multiway sensing and Arm Cortex M4 core-based STM32L4 Series features. The support for Arduino and PMOD connectivity provides unlimited expansion capabilities with a large choice of specialized add-on boards.

This board features a STM32L475E MCU with 1 MB of Flash memory and 128 KB of RAM. In addition to the MCU peripherals, the board includes:

  • 64 Mb SPI Flash memory
  • Bluetooth V4.1 module (SPBTLE-RF)
  • 915 MHz low-power RF module (SPSGRF-915)
  • 802.11 b/g/n module (ISM43362-M3G-L44)
  • NFC tag based on M24SR with printed antenna
  • 2 digital microphones (MP34DT01)
  • relative humidity and temperature digital sensor (HTS221)
  • 3-axis magnetometer (LIS3MDL)
  • 3-axis accelerometer and gyroscope (LSM6DSL)
  • digital barometer (LPS22HB)
  • Time-of-Flight and gesture-detection sensor (VL53L0X)
  • programmable push-buttons
  • USB OTG FS with Micro-AB connector
  • on-board ST-LINK/V2 debugger and programmer

Examples on how to start developing with this board are available here.

Crazyflie 2.1 Drone

As an integration example, the open-source Crazyflie 2.1 platform has its own micro-ROS + FreeRTOS port.

The Crazyflie 2.1 is a versatile open-source flying development platform that only weighs 27g and fits in the palm of your hand. Crazyflie 2.1 is equipped with multiple inertial sensors and low-latency/long-range radio as well as Bluetooth LE.

This little drone features a STM32F405 ARM Cortex-M4 MCU running up to 168 MHz with 1 MB of Flash and 192 KB of RAM. It also features the following sensors and coprocessors:

  • nRF51822 radio and power management MCU (Cortex-M0, 32Mhz, 16kb SRAM, 128kb flash)
  • USB
  • LiPo battery charger
  • 8KB EEPROM
  • 3-axis accelerometer and gyroscope (BMI088)
  • pressure sensor (BMP388)
  • headers with peripheral access: SPI, I2C, UART, 1-wire and GPIO

Examples on how to start developing with this board are available here.