Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion _docs/concepts/rtos/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ By clicking on the logos below, you'll be redirected to the Overview section, wh
<table style="border:none;">
<tr>
<td style="width:33%; text-align:center; vertical-align:bottom; font-weight:bold;"><a href="/docs/overview/rtos/#freertos"><img style="margin-left:auto; margin-right:auto; padding-bottom:5px;" width="263" height="100" src="https://upload.wikimedia.org/wikipedia/commons/4/4e/Logo_freeRTOS.png"><br/>FreeRTOS</a></td>
<td style="width:33%; text-align:center; vertical-align:bottom; font-weight:bold;"><a href="/docs/overview/rtos/#zephyr"><img style="margin-left:auto; margin-right:auto; padding-bottom:5px;" width="220" height="114" src="https://upload.wikimedia.org/wikipedia/commons/2/2d/Zephyr-logo.png"><br/>Zephyr</a></td>
<td style="width:33%; text-align:center; vertical-align:bottom; font-weight:bold;"><a href="/docs/overview/rtos/#zephyr"><img style="margin-left:auto; margin-right:auto; padding-bottom:5px;" width="220" height="114" src="https://www.linuxfoundation.org/wp-content/uploads/zephyr-color.svg"><br/>Zephyr</a></td>
<td style="width:33%; text-align:center; vertical-align:bottom; font-weight:bold;"><a href="/docs/overview/rtos/#nuttx"><img style="margin-left:auto; margin-right:auto; padding-bottom:5px;" width="125" height="125" src="https://upload.wikimedia.org/wikipedia/commons/b/b0/NuttX_logo.png"><br/>NuttX</a></td>
</tr>
</table>
Expand Down
8 changes: 4 additions & 4 deletions _docs/overview/ext_tools/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ permalink: /docs/overview/ext_tools/
}

.extplatitem_description {
width: 65%;
width: 65%;
}

.extplatitem_image img {
Expand Down Expand Up @@ -51,7 +51,7 @@ The modules that exist up to date for integrating into external build systems ar
<li><a href="https://github.com/micro-ROS/micro_ros_espidf_component">micro-ROS component for ESP-IDF on GitHub</a></li>
<li><a href="https://github.com/espressif/esp-idf">ESP-IDF on GitHub</a></li>
<li><a href="https://docs.espressif.com/projects/esp-idf/en/latest/esp32/">ESP-IDF docs</a></li>
</ul>
</ul>
</div>
</div>

Expand All @@ -73,12 +73,12 @@ The modules that exist up to date for integrating into external build systems ar
<li><a href="https://github.com/micro-ROS/micro_ros_zephyr_module">micro-ROS module for Zephyr build system on GitHub</a></li>
<li><a href="https://github.com/zephyrproject-rtos/zephyr">Primary GitHub repository for the Zephyr Project</a></li>
<li><a href="https://github.com/zephyrproject-rtos/zephyr">Zephyr Project official webpage</a></li>
</ul>
</ul>
</div>
</div>

<div class="extplatitem_image">
<img src="https://upload.wikimedia.org/wikipedia/commons/2/2d/Zephyr-logo.png">
<img src="https://www.linuxfoundation.org/wp-content/uploads/zephyr-color.svg">
</div>
</div>

Expand Down
Binary file added _docs/overview/hardware/imgs/renesas.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
87 changes: 60 additions & 27 deletions _docs/overview/hardware/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,21 +20,23 @@ permalink: /docs/overview/hardware/
}

.hardwareitem_description {
width: 60%;
width: 60%;
}

.hardwareitem_image img {
max-width: 100%;
max-height: 80%;

}
</style>

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](/docs/concepts/benchmarking/benchmarking/) describing it and a tutorial on [how to tune the memory consuption](../../tutorials/advanced/microxrcedds_rmw_configuration/) in the micro-ROS middleware.
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](/docs/concepts/benchmarking/benchmarking/) describing it and a tutorial on [how to tune the memory consuption](../../tutorials/advanced/microxrcedds_rmw_configuration/) 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](../features/).

The micro-ROS hardware support is divided into two categories:
The micro-ROS hardware support is divided into two categories:
- Officially supported boards
- Community supported boards

Expand All @@ -44,6 +46,37 @@ The micro-ROS hardware support is divided into two categories:

The officially supported boards are those which have been carried out or tested officially, and to which LTS is guaranteed.

<div class="hardwarecontainer">
<div class="hardwareitem_description">
<h3><b>Renesas EK RA6M5</b> and <b>e2studio</b></h3>
<div>
&#10004; <b>Key features:</b>
<ul>
<li>MCU: ARM Cortex M-33 core @ 200 MHz</li>
<li>RAM: 512 kB</li>
<li>Flash: up to 2 MB</li>
<li>Peripherals: Ethernet, SCI, SPI, I2C, I2S, UART, USB, SDIO, CAN, GPIO, ADC/DAC, PWM</li>
</ul>
&#127758; <b>Resources:</b>
<ul>
<li><a href="https://www.renesas.com/us/en/products/microcontrollers-microprocessors/ra-cortex-m-mcus/ek-ra6m5-evaluation-kit-ra6m5-mcu-group">Official website</a></li>
<li><a href="https://www.renesas.com/us/en/products/microcontrollers-microprocessors/ra-cortex-m-mcus/ra6m5-200mhz-arm-cortex-m33-trustzone-highest-integration-ethernet-and-can-fd">Datasheet</a></li>
<li><a href="https://www.renesas.com/us/en/application/technologies/robotics">HW support information</a></li>
</ul>
&#9881; <b>Supported platforms:</b>
<ul>
<li><b>RTOSes:</b> <a href="https://www.freertos.org/">FreeRTOS</a>, <a href="https://docs.microsoft.com/en-us/azure/rtos/threadx/">ThreadX</a> and Bare-metal</li>
</ul>
&#128268; <b>Supported transports:</b>
UDP, UART, USB-CDC
</div>
</div>

<div class="hardwareitem_image">
<img src="imgs/renesas.png">
</div>
</div>

<div class="hardwarecontainer">
<div class="hardwareitem_description">
<h3><b>Espressif ESP32</b></h3>
Expand All @@ -54,7 +87,7 @@ The officially supported boards are those which have been carried out or tested
<li>RAM: 520 kB</li>
<li>Flash: 4 MB</li>
<li>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 </li>
</ul>
</ul>
&#127758; <b>Resources:</b>
<ul>
<li><a href="https://www.espressif.com/en/products/socs/esp32">Official website</a></li>
Expand Down Expand Up @@ -86,7 +119,7 @@ The officially supported boards are those which have been carried out or tested
<li>RAM: 8 MB</li>
<li>Flash: 16 MB</li>
<li>Peripherals: USB HS, Ethernet, WiFi/BT...</li>
</ul>
</ul>
&#127758; <b>Resources:</b>
<ul>
<li><a href="https://store.arduino.cc/portenta-h7">Official website</a></li>
Expand All @@ -97,7 +130,7 @@ The officially supported boards are those which have been carried out or tested
<li><b>External tools:</b> <a href="https://www.arduino.cc/">Arduino</a></li>
</ul>
&#128268; <b>Supported transports:</b>
USB, WiFi UDP
USB, WiFi UDP
</div>
</div>

Expand All @@ -117,7 +150,7 @@ The officially supported boards are those which have been carried out or tested
<li>RAM: 264 kB</li>
<li>Flash: up to 16 MB</li>
<li>Peripherals: I2C, SPI, PIO...</li>
</ul>
</ul>
&#127758; <b>Resources:</b>
<ul>
<li><a href="https://www.raspberrypi.org/products/raspberry-pi-pico/">Official website</a></li>
Expand All @@ -129,7 +162,7 @@ The officially supported boards are those which have been carried out or tested
<li><b>External tools:</b> <a href="https://github.com/raspberrypi/pico-sdk">Raspberry Pi Pico SDK</a></li>
</ul>
&#128268; <b>Supported transports:</b>
USB, UART
USB, UART
</div>
</div>

Expand All @@ -149,7 +182,7 @@ The officially supported boards are those which have been carried out or tested
<li>RAM: 320 kB</li>
<li>Flash: 1024 kB</li>
<li>Peripherals: 3-axis IMU, Dynamixel ports, SPI, I2C... </li>
</ul>
</ul>
&#127758; <b>Resources:</b>
<ul>
<li><a href="https://emanual.robotis.com/docs/en/parts/controller/opencr10/">Official website</a></li>
Expand All @@ -160,7 +193,7 @@ The officially supported boards are those which have been carried out or tested
<li><b>External tools:</b> <a href="https://www.arduino.cc/">Arduino</a></li>
</ul>
&#128268; <b>Supported transports:</b>
USB, UART
USB, UART
</div>
</div>

Expand All @@ -180,7 +213,7 @@ The officially supported boards are those which have been carried out or tested
<li>RAM: 64 kB</li>
<li>Flash: 256 kB</li>
<li>Peripherals: USB, SPI, I2C, CAN, I2S... </li>
</ul>
</ul>
&#127758; <b>Resources:</b>
<ul>
<li><a href="https://www.pjrc.com/teensy/teensy31.html">Official website</a></li>
Expand All @@ -191,7 +224,7 @@ The officially supported boards are those which have been carried out or tested
<li><b>External tools:</b> <a href="https://www.arduino.cc/">Arduino</a></li>
</ul>
&#128268; <b>Supported transports:</b>
USB, UART
USB, UART
</div>
</div>

Expand All @@ -211,7 +244,7 @@ The officially supported boards are those which have been carried out or tested
<li>RAM: 1024 kB</li>
<li>Flash: 2048 kB</li>
<li>Peripherals: USB, PWM, SPI, I2C, CAN, I2S, SDIO,... </li>
</ul>
</ul>
&#127758; <b>Resources:</b>
<ul>
<li><a href="https://www.pjrc.com/store/teensy40.html">Official website</a></li>
Expand All @@ -222,7 +255,7 @@ The officially supported boards are those which have been carried out or tested
<li><b>External tools:</b> <a href="https://www.arduino.cc/">Arduino</a></li>
</ul>
&#128268; <b>Supported transports:</b>
USB, UART
USB, UART
</div>
</div>

Expand All @@ -242,7 +275,7 @@ The officially supported boards are those which have been carried out or tested
<li>RAM: 192 kB</li>
<li>Flash: 1 MB</li>
<li>Peripherals: 3 axis IMU, pressure sensor, SPI, I2C, UART, nRF51822 radio...</li>
</ul>
</ul>
&#127758; <b>Resources:</b>
<ul>
<li><a href="https://www.bitcraze.io/products/crazyflie-2-1/">Official website</a></li>
Expand All @@ -253,7 +286,7 @@ The officially supported boards are those which have been carried out or tested
<li><b>External tools:</b> &ndash;</li>
</ul>
&#128268; <b>Supported transports:</b>
Custom Radio Link
Custom Radio Link
</div>
</div>

Expand All @@ -273,7 +306,7 @@ The officially supported boards are those which have been carried out or tested
<li>RAM: 128 kB</li>
<li>Flash: 1 MB</li>
<li>Peripherals: Bluetooth, low-power RF module, 802.11 b/g/n, NFC, 2 digital microphone, temperature/humidity sensor, 3 axis IMU, ToF sensor...</li>
</ul>
</ul>
&#127758; <b>Resources:</b>
<ul>
<li><a href="https://www.st.com/en/evaluation-tools/b-l475e-iot01a.html">Official website</a></li>
Expand All @@ -284,7 +317,7 @@ The officially supported boards are those which have been carried out or tested
<li><b>External tools:</b> <a href="https://www.zephyrproject.org/">Zephyr</a> build system</li>
</ul>
&#128268; <b>Supported transports:</b>
USB, UART, Ethernet UDP
USB, UART, Ethernet UDP
</div>
</div>

Expand All @@ -304,7 +337,7 @@ The officially supported boards are those which have been carried out or tested
<li>RAM: 196 kB</li>
<li>Flash: 1 MB</li>
<li>Peripherals: USB OTG, Ethernet, SD Card slot, SPI, CAN, I2C... </li>
</ul>
</ul>
&#127758; <b>Resources:</b>
<ul>
<li><a href="https://www.olimex.com/Products/ARM/ST/STM32-E407/open-source-hardware">Official website</a></li>
Expand All @@ -318,7 +351,7 @@ The officially supported boards are those which have been carried out or tested
</ul>
&#128268; <b>Supported transports:</b>
USB (Z, N), UART (Z, F, N), Ethernet UDP (F, N)
<br><i><b>Note:</b> Only RTOS initials used for convenience.</i>
<br><i><b>Note:</b> Only RTOS initials used for convenience.</i>
</div>
</div>

Expand All @@ -340,7 +373,7 @@ The micro-ROS community supported boards are contributions of micro-ROS' users a
<li>MCU: ARM Cortex-M3 AT91SAM3X8E</li>
<li>RAM: 96 kB</li>
<li>Flash: 512 kB</li>
</ul>
</ul>
&#127758; <b>Resources:</b>
<ul>
<li><a href="https://store.arduino.cc/arduino-due">Official website</a></li>
Expand All @@ -351,7 +384,7 @@ The micro-ROS community supported boards are contributions of micro-ROS' users a
<li><b>External tools:</b> <a href="https://www.arduino.cc/">Arduino</a></li>
</ul>
&#128268; <b>Supported transports:</b>
USB, UART
USB, UART
</div>
</div>

Expand All @@ -369,7 +402,7 @@ The micro-ROS community supported boards are contributions of micro-ROS' users a
<li>MCU: ARM Cortex-M0+ ATSAMD21G18</li>
<li>RAM: 32 kB</li>
<li>Flash: 256 kB</li>
</ul>
</ul>
&#127758; <b>Resources:</b>
<ul>
<li><a href="https://store.arduino.cc/arduino-zero">Official website</a></li>
Expand All @@ -380,7 +413,7 @@ The micro-ROS community supported boards are contributions of micro-ROS' users a
<li><b>External tools:</b> <a href="https://www.arduino.cc/">Arduino</a></li>
</ul>
&#128268; <b>Supported transports:</b>
USB, UART
USB, UART
</div>
</div>

Expand All @@ -403,7 +436,7 @@ The micro-ROS community supported boards are contributions of micro-ROS' users a
<li><b>External tools:</b> <a ref="https://www.st.com/en/development-tools/stm32cubemx.html">STM32CubeMX</a></li>
</ul>
&#128268; <b>Supported transports:</b>
UART
UART
</div>
</div>

Expand All @@ -426,7 +459,7 @@ The micro-ROS community supported boards are contributions of micro-ROS' users a
<li><b>External tools:</b> <a ref="https://www.st.com/en/development-tools/stm32cubemx.html">STM32CubeMX</a></li>
</ul>
&#128268; <b>Supported transports:</b>
UART
UART
</div>
</div>

Expand All @@ -449,7 +482,7 @@ The micro-ROS community supported boards are contributions of micro-ROS' users a
<li><b>External tools:</b> <a ref="https://www.st.com/en/development-tools/stm32cubemx.html">STM32CubeMX</a></li>
</ul>
&#128268; <b>Supported transports:</b>
UART
UART
</div>
</div>

Expand Down
16 changes: 8 additions & 8 deletions _docs/overview/rtos/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ permalink: /docs/overview/rtos/
}

.rtositem_description {
width: 50%;
width: 50%;
}

.rtositem_image img {
Expand All @@ -34,7 +34,7 @@ The standard approach to micro-ROS assumes a Real-Time Operating System undernea

Even though recent developments aim at loosening this requirement, with the integration into Arduino IDE as an important step towards true micro-ROS bare-metal support, the RTOS-based support remains the main entrypoint to micro-ROS.

To date, micro-ROS is supported by the RTOSes FreeRTOS, Zephyr, NuttX, in addition to Linux and Windows.
To date, micro-ROS is supported by the RTOSes FreeRTOS, Zephyr, NuttX, in addition to Linux and Windows.
All three RTOSes are downloaded natively with the [micro-ROS build system](https://github.com/micro-ROS/micro_ros_setup), and can be chosen when creating
a new firmware workspace.
Dedicated tutorials for running your first micro-ROS application on each of these Operating Systems can be found [here](https://micro-ros.github.io/docs/tutorials/core/first_application_rtos/).
Expand Down Expand Up @@ -62,7 +62,7 @@ FreeRTOS is distributed under the MIT license. It is known particularly for its
<li>Memory management tools</li>
<li>Standard and idle tasks available with assignable priorities</li>
<li>Transport resources: TCP/IP and lwIP</li>
</ul>
</ul>
<b>FreeRTOS resources:</b>
<ul>
<li><a href="https://www.freertos.org/">Official FreeRTOS website</a></li>
Expand All @@ -73,7 +73,7 @@ FreeRTOS is distributed under the MIT license. It is known particularly for its
<ul>
<li><a href="https://www.freertos.org/2020/09/micro-ros-on-freertos.html">micro-ROS on FreeRTOS</a></li>
<li><a href="https://micro-ros.github.io/docs/tutorials/core/first_application_rtos/freertos/">First micro-ROS Application on FreeRTOS</a></li>
</ul>
</ul>
</div>
</div>

Expand All @@ -98,7 +98,7 @@ Zephyr is a fairly new open-source RTOS, developed in a Linux Foundation Project
<li>Multiple Scheduling Algorithms</li>
<li>Highly configurable/Modular for flexibility</li>
<li>Native Linux, macOS, and Windows Development</li>
</ul>
</ul>
<b>Zephyr resources:</b>
<ul>
<li><a href="https://www.zephyrproject.org/">Official Zephyr website</a></li>
Expand All @@ -116,7 +116,7 @@ Zephyr is a fairly new open-source RTOS, developed in a Linux Foundation Project
</div>

<div class="rtositem_image">
<img src="https://upload.wikimedia.org/wikipedia/commons/2/2d/Zephyr-logo.png">
<img src="https://www.linuxfoundation.org/wp-content/uploads/zephyr-color.svg">
</div>
</div>

Expand All @@ -133,7 +133,7 @@ NuttX emphasizes its compliance with standards - including POSIX - and small foo
<li>Rich Feature OS Set</li>
<li>Highly scalable</li>
<li>Real-Time behavior: fully pre-emptible; fixed priority, round-robin, and “sporadic” scheduling</li>
</ul>
</ul>
<b>NuttX resources:</b>
<ul>
<li><a href="https://nuttx.apache.org/">Official NuttX website</a></li>
Expand Down Expand Up @@ -176,7 +176,7 @@ The open-source Arduino Software (IDE) is a library making it easy to program an
<ul>
<li><a href="https://www.arduino.cc/">Official Arduino Website</a></li>
<li><a href="https://github.com/micro-ROS/micro_ros_arduino">micro_ros_arduino repo</a></li>
</ul>
</ul>
</div>
</div>

Expand Down
Loading