arjav1528 opened a new issue, #18508: URL: https://github.com/apache/nuttx/issues/18508
### Description Hey everyone, I'm planning to work on this project: **Micro-ROS integration on NuttX**. Micro-ROS brings ROS 2 to microcontrollers — it uses a lightweight DDS-XRCE client on the MCU that talks to an Agent on the host, bridging into the full ROS 2 network. It was originally developed on NuttX by Bosch and EU partners, and NuttX is still officially supported by the micro-ROS project. But after FreeRTOS and Zephyr support was added, the NuttX side stopped getting love and fell behind. The existing `micro_ros_nuttx_app` repo says it was last tested on NuttX 10.3. The library build files (`micro_ros_lib/Makefile`, `colcon.meta`, `toolchain.cmake.in`) are still being maintained — updated as recently as Apr 2025 for rolling fixes and bumped to Kilted in mid-2025. But the actual NuttX integration glue — the top-level `Makefile` and `Make.defs`, and the entire `example_app/` (Kconfig, Make.defs, microros_main.c) — hasn't been touched since Aug 2021 (~4.5 years). There's no CMakeLists.txt for NuttX's CMake build system. The tutorial still references NuttX 10.0.0 docs, and even the CI only builds against NuttX 10.3 (not current NuttX master). There are also two open issues worth noting: one is an unresolved `arm_hardfault` crash from 2021, and another is Roberto Bucher's work getting it running on Nucleo-144 with UDP where he hit a `DIR` type redefinition bug. ### What I'm thinking: 1. Try building the existing repo against current NuttX master, document every breakage 2. Fix the build system — update the stale Make files, Kconfig, toolchain.cmake; add CMakeLists.txt for NuttX CMake 3. Test and fix the serial (TERMIOS) and UDP transports on current NuttX 4. Investigate and address those two open issues (hardfault, DIR redefinition) 5. Add defconfigs for more boards — ESP32, RP2040, not just STM32 6. Update the example app, add a couple new ones (pub/sub, service) 7. Update the documentation for current NuttX ### Rough timeline: - **Weeks 1–2**: Environment setup, baseline build attempt, study Zephyr/FreeRTOS ports as reference - **Weeks 3–5**: Fix build system (Make + CMake), get first clean build on STM32 - **Weeks 6–7**: Transport validation, resolve known issues - **Weeks 8–9**: Multi-board support (ESP32, RP2040) - **Weeks 10–11**: Example applications - **Weeks 12–14**: Documentation, CI improvements, upstream PRs ### Resources: 1. [micro_ros_nuttx_app](https://github.com/micro-ROS/micro_ros_nuttx_app) 2. [Micro-ROS website](https://micro.ros.org) 3. [Micro-ROS NuttX tutorial](https://micro.ros.org/docs/tutorials/core/first_application_rtos/nuttx/) 4. [DDS-XRCE spec](https://www.omg.org/spec/DDS-XRCE/1.0/About-DDS-XRCE) ### Verification - [x] I have verified before submitting the report. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
