{"id":24490320,"url":"https://github.com/tutla53/rp2040-rust","last_synced_at":"2026-02-05T04:32:45.554Z","repository":{"id":263352891,"uuid":"890108908","full_name":"tutla53/rp2040-rust","owner":"tutla53","description":"Repository of Raspberry Pi Pico with Rust 🦀 + Embassy Framework","archived":false,"fork":false,"pushed_at":"2024-12-19T04:30:56.000Z","size":291,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-08T06:02:44.040Z","etag":null,"topics":["embassy-rp","embassy-rs","pico","raspberry-pi-pico","rp2040","rust","rust-embedded","rust-pico","rust-rp2040"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/tutla53.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2024-11-18T02:06:27.000Z","updated_at":"2024-12-20T14:19:10.000Z","dependencies_parsed_at":"2024-12-12T11:31:01.202Z","dependency_job_id":"ed915f21-2a62-46d9-85e4-9a97b7f564aa","html_url":"https://github.com/tutla53/rp2040-rust","commit_stats":null,"previous_names":["tutla53/rp2040-rust"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tutla53/rp2040-rust","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tutla53%2Frp2040-rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tutla53%2Frp2040-rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tutla53%2Frp2040-rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tutla53%2Frp2040-rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tutla53","download_url":"https://codeload.github.com/tutla53/rp2040-rust/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tutla53%2Frp2040-rust/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29111842,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T03:44:17.043Z","status":"ssl_error","status_checked_at":"2026-02-05T03:44:12.077Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["embassy-rp","embassy-rs","pico","raspberry-pi-pico","rp2040","rust","rust-embedded","rust-pico","rust-rp2040"],"created_at":"2025-01-21T17:17:50.469Z","updated_at":"2026-02-05T04:32:45.541Z","avatar_url":"https://github.com/tutla53.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Raspberry Pi Pico RP2040 + Embassy Rust Template\n***\n\n### Module\n- [Rust](https://www.rust-lang.org/tools/install)🦀\n- [Embassy-Rust](https://github.com/embassy-rs/embassy)\n- [probe-rs](https://probe.rs/) \u0026#8594; If you use Debug Probe\n- [elf2uf2](https://crates.io/crates/elf2uf2-rs/versions)\n***\n\n## Getting Started:\n### Cloning the Repository\n- `git clone` this repository with this command:\n    ```bash\n    git clone --recurse-submodules https://github.com/tutla53/rp2040.git \n    ```\n- If you didn't use a `--recursive` git clone, then you need to make\n  sure that `embassy-rs` is fetched now. From the top level apply\n  one of:\n  ```bash\n  git submodule update --init --recursive   # First time\n  git submodule update --recursive          # Subsequent\n  ```\n  \n### Installing the Module  \nMove to the Project Directory `template`:\n```bash\ncd rp2040-rust/template/\n```\n\n#### Adding the Build Target\nRun this following command to add the build target:\n```bash\nrustup target add thumbv6m-none-eabi\n```\n  \n#### Adding probe-rs Package\n##### Installation\n  ```bash\n  curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/latest/download/probe-rs-tools-installer.sh | sh\n  ```\n| :warning: WARNING          |\n|:---------------------------|\n|Make sure that you didn’t accidentally run `cargo add probe-rs` (which adds it as a dependency) instead of correctly installing probe-rs|\n#### Installing elf2uf2-rs Package\n\n##### Dependency\n  ```bash\n  sudo apt install -y pkg-config libusb-1.0-0-dev libftdi1-dev \u0026\u0026 sudo apt-get install libudev-dev\n  ```\n##### Installation\n  ```bash\n  cargo install elf2uf2-rs\n  ```\n### Build and Run the First Program\n#### Build\n  ```bash\n  cargo build --release\n  ```\n\n#### Run \nPlease select one of the runner on the `.cargo/config.toml`\n```toml\n[target.'cfg(all(target_arch = \"arm\", target_os = \"none\"))']\nrunner = \"probe-rs run --chip RP2040\"  # Directly Flash with Debug Probe\nrunner = \"elf2uf2-rs -d\"               # Automatic deployment to a mounted Pico\nrunner = \"elf2uf2-rs\"                  # Only create uf2 file and can be flashed to pico by pressing the bootsel button\n```\nThe run the following code:\n```bash\ncargo run --release\n```\n\nThe compiled `elf` and `uf2` file will be in the `target/thumbv6m-none-eabi/release/rp2040-template`\n\n#### Run the Example from embassy-rs\nYou can run the example from the embassy-rs which located at `src/bin` by using this following command:\n```bash\ncargo run --bin {project_name} --release\n```\n```bash\ncargo run --bin blinky --release # Example to run blinky.rs\n```\n\n## How to Use the Template\n### Project Structure\n\n```bash\n.\n├── main.rs                                                                                                                                                                  ├── \n├── builder\n│   ├── mod.rs\n│   ├── servo_builder.rs\n│   └── servo_pio_builder.rs\n├── resources\n│   ├── gpio_list.rs\n│   └── mod.rs\n└── tasks\n    ├── fade.rs\n    ├── mod.rs\n    ├── servo_pio.rs\n    └── servo.rs\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftutla53%2Frp2040-rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftutla53%2Frp2040-rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftutla53%2Frp2040-rust/lists"}