{"id":29118073,"url":"https://github.com/micro-ROS/micro_ros_raspberrypi_pico_sdk","last_synced_at":"2025-06-29T12:33:28.741Z","repository":{"id":36966565,"uuid":"335592495","full_name":"micro-ROS/micro_ros_raspberrypi_pico_sdk","owner":"micro-ROS","description":"Raspberry Pi Pico (RP2040) and micro-ROS integration","archived":false,"fork":true,"pushed_at":"2025-06-27T06:17:40.000Z","size":123303,"stargazers_count":203,"open_issues_count":20,"forks_count":67,"subscribers_count":5,"default_branch":"kilted","last_synced_at":"2025-06-27T07:30:18.659Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"lukicdarkoo/pico-micro-ros","license":"apache-2.0","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":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-02-03T10:48:21.000Z","updated_at":"2025-06-24T07:50:30.000Z","dependencies_parsed_at":"2023-10-11T08:25:45.987Z","dependency_job_id":"5013e8d4-bc29-47d2-9a85-a0d6da6f683c","html_url":"https://github.com/micro-ROS/micro_ros_raspberrypi_pico_sdk","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/micro-ROS/micro_ros_raspberrypi_pico_sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micro-ROS%2Fmicro_ros_raspberrypi_pico_sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micro-ROS%2Fmicro_ros_raspberrypi_pico_sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micro-ROS%2Fmicro_ros_raspberrypi_pico_sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micro-ROS%2Fmicro_ros_raspberrypi_pico_sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/micro-ROS","download_url":"https://codeload.github.com/micro-ROS/micro_ros_raspberrypi_pico_sdk/tar.gz/refs/heads/kilted","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micro-ROS%2Fmicro_ros_raspberrypi_pico_sdk/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262594508,"owners_count":23334226,"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-29T12:33:07.004Z","updated_at":"2025-06-29T12:33:28.695Z","avatar_url":"https://github.com/micro-ROS.png","language":"C","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 module for Raspberry Pi Pico SDK\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\n## Getting Started\n\nHere is a quick way to compile the example given in this repository.\n\n### Dependencies\n\nmicro-ROS precompiled library is compiled using `arm-none-eabi-gcc` [9.3.1](https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2), a compatible version is expected when building the micro-ROS project.\nYou can specify a compiler path with the following command:\n\n```bash\n# Configure environment\necho \"export PICO_TOOLCHAIN_PATH=...\" \u003e\u003e ~/.bashrc\nsource ~/.bashrc\n```\n\n### 1. Install Pico SDK\nFirst, make sure the Pico SDK is properly installed and configured:\n\n```bash\n# Install dependencies\nsudo apt install cmake g++ gcc-arm-none-eabi doxygen libnewlib-arm-none-eabi git python3\ngit clone --recurse-submodules https://github.com/raspberrypi/pico-sdk.git $HOME/pico-sdk\n\n# Configure environment\necho \"export PICO_SDK_PATH=$HOME/pico-sdk\" \u003e\u003e ~/.bashrc\nsource ~/.bashrc\n```\n\n### 2. Compile Example\n\nOnce the Pico SDK is ready, compile the example:\n\n```bash\ncd micro_ros_raspberrypi_pico_sdk\nmkdir build\ncd build\ncmake ..\nmake\n```\n\nTo flash, hold the boot button, plug the USB and run:\n```\ncp pico_micro_ros_example.uf2 /media/$USER/RPI-RP2\n```\n\n### 3. Start Micro-ROS Agent\nMicro-ROS follows the client-server architecture, so you need to start the Micro-ROS Agent.\nYou can do so using the [micro-ros-agent Snap](https://snapcraft.io/micro-ros-agent) (follow the link for installation details):\n\n```bash\nmicro-ros-agent serial --dev /dev/ttyACM0 -b 115200\n```\n\nor using the [micro-ros-agent Docker](https://hub.docker.com/r/microros/micro-ros-agent):\n```bash\ndocker run -it --rm -v /dev:/dev --privileged --net=host microros/micro-ros-agent:kilted serial --dev /dev/ttyACM0 -b 115200\n```\n\n## What files are relevant?\n- `pico_uart_transport.c`: Contains the board specific implementation of the serial transport (no change needed).\n- `CMakeLists.txt`: CMake file.\n- `pico_micro_ros_example.c`: The actual ROS 2 publisher.\n\n## How to build the precompiled library\n\nMicro-ROS is precompiled for Raspberry Pi Pico in [`libmicroros`](libmicroros).\nIf you want to compile it by yourself:\n\n```bash\ndocker pull microros/micro_ros_static_library_builder:kilted\ndocker run -it --rm -v $(pwd):/project microros/micro_ros_static_library_builder:kilted\n```\n\nNote that folders added to `microros_static_library/library_generation/extra_packages` and entries added to `microros_static_library/library_generation/extra_packages/extra_packages.repos` will be taken into account by this build system.\n## How to use Pico SDK?\n\nHere is a Raspberry Pi Pico C/C++ SDK documentation:\nhttps://datasheets.raspberrypi.org/pico/raspberry-pi-pico-c-sdk.pdf\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 this repository,\nsee the file [3rd-party-licenses.txt](3rd-party-licenses.txt).\n\n## Known Issues/Limitations\n\nThere are no known limitations.\n","funding_links":[],"categories":["Libraries and Platforms"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicro-ROS%2Fmicro_ros_raspberrypi_pico_sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmicro-ROS%2Fmicro_ros_raspberrypi_pico_sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicro-ROS%2Fmicro_ros_raspberrypi_pico_sdk/lists"}