{"id":28717080,"url":"https://github.com/micro-ros/micro_ros_nuttx_app","last_synced_at":"2025-07-26T13:05:11.162Z","repository":{"id":39889936,"uuid":"366062251","full_name":"micro-ROS/micro_ros_nuttx_app","owner":"micro-ROS","description":"An standalone micro-ROS app for Nuttx","archived":false,"fork":false,"pushed_at":"2025-04-02T05:48:15.000Z","size":280,"stargazers_count":11,"open_issues_count":2,"forks_count":8,"subscribers_count":2,"default_branch":"jazzy","last_synced_at":"2025-04-02T06:31:17.817Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/micro-ROS.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-10T14:00:57.000Z","updated_at":"2024-09-27T07:05:26.000Z","dependencies_parsed_at":"2024-01-11T10:25:24.720Z","dependency_job_id":"cec089f7-f497-4ed2-b246-b87f778991fd","html_url":"https://github.com/micro-ROS/micro_ros_nuttx_app","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/micro-ROS/micro_ros_nuttx_app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micro-ROS%2Fmicro_ros_nuttx_app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micro-ROS%2Fmicro_ros_nuttx_app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micro-ROS%2Fmicro_ros_nuttx_app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micro-ROS%2Fmicro_ros_nuttx_app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/micro-ROS","download_url":"https://codeload.github.com/micro-ROS/micro_ros_nuttx_app/tar.gz/refs/heads/jazzy","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micro-ROS%2Fmicro_ros_nuttx_app/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259914930,"owners_count":22931333,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-15T03:13:04.847Z","updated_at":"2025-06-15T03:13:24.541Z","avatar_url":"https://github.com/micro-ROS.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"![banner](.images/banner-dark-theme.png#gh-dark-mode-only)\n![banner](.images/banner-light-theme.png#gh-light-mode-only)\n\n# micro-ROS app for Nuttx RTOS\n\n\n| Humble                                                                                                                                                                                                   | Iron                                                                                                                                                                                                 | Jazzy                                                                                                                                                                                                    | Rolling                                                                                                                                                                                                    |\n| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| [![Humble](https://github.com/micro-ROS/micro_ros_nuttx_app/actions/workflows/ci.yml/badge.svg?branch=humble\u0026event=schedule)](https://github.com/micro-ROS/micro_ros_nuttx_app/actions/workflows/ci.yml) | [![Iron](https://github.com/micro-ROS/micro_ros_nuttx_app/actions/workflows/ci.yml/badge.svg?branch=iron\u0026event=schedule)](https://github.com/micro-ROS/micro_ros_nuttx_app/actions/workflows/ci.yml) | [![Jazzy](https://github.com/micro-ROS/micro_ros_nuttx_app/actions/workflows/ci.yml/badge.svg?branch=jazzy\u0026event=schedule)](https://github.com/micro-ROS/micro_ros_nuttx_app/actions/workflows/ci.yml) | [![Rolling](https://github.com/micro-ROS/micro_ros_nuttx_app/actions/workflows/ci.yml/badge.svg?branch=rolling\u0026event=schedule)](https://github.com/micro-ROS/micro_ros_nuttx_app/actions/workflows/ci.yml) |\n\nThis component has been tested in Nuttx 10.3.\n\n## Dependencies\n\nThis component needs `colcon` and other Python 3 packages in order to build micro-ROS packages:\n\n```bash\npip3 install catkin_pkg lark-parser empy colcon-common-extensions\n```\n\n## Usage\n\nYou can clone this repo directly in the `app` folder of your project.\n\n## Example\n\nIn order to test a int32_publisher example for [STM32L4 Discovery kit IoT node](https://www.st.com/en/evaluation-tools/b-l475e-iot01a.html):\n\n\u003c!--\nDeps:\napt install git bison flex gettext texinfo libncurses5-dev libncursesw5-dev gperf automake libtool pkg-config build-essential gperf genromfs libgmp-dev libmpc-dev libmpfr-dev libisl-dev binutils-dev libelf-dev libexpat-dev gcc-multilib g++-multilib picocom u-boot-tools util-linux kconfig-frontends gcc-arm-none-eabi binutils-arm-none-eabi python3-pip cmake sudo\n\npip3 install catkin_pkg lark-parser empy colcon-common-extensions\n--\u003e\n1. Install all the Nuttx dependencies using the [official documentation](https://nuttx.apache.org/docs/10.0.0/quickstart/install.html)\n2. Clone this repo inside `apps` folder:\n```bash\ngit clone https://github.com/micro-ROS/micro_ros_nuttx_app apps/microros\n```\n3. Go to `nuttx` folder and configure the support for [STM32L4 Discovery kit IoT node](https://www.st.com/en/evaluation-tools/b-l475e-iot01a.html):\n```bash\ncd nuttx\n./tools/configure.sh -l b-l475e-iot01a:nsh\n```\n4. Enable micro-ROS library, UART4 and Serial Termios using `make menuconfig` or:\n```bash\nkconfig-tweak --enable CONFIG_MICROROSLIB\nkconfig-tweak --enable CONFIG_MICROROS_EXAMPLE\nkconfig-tweak --enable CONFIG_SERIAL_TERMIOS\nkconfig-tweak --enable CONFIG_STM32L4_UART4\nkconfig-tweak --enable CONFIG_STM32L4_UART4_SERIALDRIVER\nkconfig-tweak --enable CONFIG_UART4_SERIALDRIVER\nkconfig-tweak --set-val CONFIG_UART4_RXBUFSIZE 256\nkconfig-tweak --set-val CONFIG_UART4_TXBUFSIZE 256\nkconfig-tweak --set-val CONFIG_UART4_BAUD 115200\nkconfig-tweak --set-val CONFIG_UART4_BITS 8\nkconfig-tweak --set-val CONFIG_UART4_PARITY 0\nkconfig-tweak --set-val CONFIG_UART4_2STOP 0\n```\n5. Build Nuttx:\n```bash\nmake -j$(nproc)\n```\n6. Flash the board:\n```bash\nopenocd -f interface/stlink-v2-1.cfg -f target/stm32l4x.cfg -c init -c \"reset halt\" -c \"flash write_image erase nuttx.bin 0x08000000\" -c \"reset\" -c \"exit\"\n```\n7. Connect UART4 (the one in the Arduino header D0 and D1) to your micro-ROS Agent.\n8. You can run the micro-ROS example by launching `microros /dev/ttyS1` in NSH console. First argument is the serial port used for client to agent communication:\n```\nNuttShell (NSH) NuttX-10.1.0-RC1\nnsh\u003e microros /dev/ttyS1\nmicro-ROS transport: connected using serial mode, dev: '/dev/ttyS1'\nINFO: rcl_wait timeout 0 ms\nSent: 0\nSent: 1\nSent: 2\n```\n\nIs possible to use a micro-ROS Agent just with this docker command:\n\n```bash\n# Serial micro-ROS Agent\ndocker run -it --rm -v /dev:/dev --privileged --net=host microros/micro-ros-agent:jazzy serial --dev [YOUR BOARD PORT] -v6\n```\n## Purpose of the Project\n\nThis software is not ready for production use. It has neither been developed nor\ntested for a specific use case. However, the license conditions of the\napplicable Open Source licenses allow you to adapt the software to your needs.\nBefore using it in a safety relevant setting, make sure that the software\nfulfills your requirements and adjust it according to any applicable safety\nstandards, e.g., ISO 26262.\n\n## License\n\nThis repository is open-sourced under the Apache-2.0 license. See the [LICENSE](LICENSE) file for details.\n\nFor a list of other open-source components included in ROS 2 system_modes,\nsee the file [3rd-party-licenses.txt](3rd-party-licenses.txt).\n\n## Known Issues/Limitations\n\nThere are no known limitations.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicro-ros%2Fmicro_ros_nuttx_app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmicro-ros%2Fmicro_ros_nuttx_app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicro-ros%2Fmicro_ros_nuttx_app/lists"}