{"id":20563493,"url":"https://github.com/technolution/rust-workshop","last_synced_at":"2025-10-25T10:34:36.289Z","repository":{"id":212669039,"uuid":"732034843","full_name":"Technolution/rust-workshop","owner":"Technolution","description":null,"archived":false,"fork":false,"pushed_at":"2023-12-19T08:46:44.000Z","size":805,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-01-16T19:37:58.542Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/Technolution.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}},"created_at":"2023-12-15T13:30:53.000Z","updated_at":"2023-12-15T13:31:33.000Z","dependencies_parsed_at":"2023-12-15T14:44:43.364Z","dependency_job_id":"82848623-3417-4c7b-ad97-77ff78304d17","html_url":"https://github.com/Technolution/rust-workshop","commit_stats":null,"previous_names":["technolution/rust-workshop"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Technolution%2Frust-workshop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Technolution%2Frust-workshop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Technolution%2Frust-workshop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Technolution%2Frust-workshop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Technolution","download_url":"https://codeload.github.com/Technolution/rust-workshop/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242171772,"owners_count":20083623,"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":"2024-11-16T04:19:03.221Z","updated_at":"2025-10-25T10:34:31.248Z","avatar_url":"https://github.com/Technolution.png","language":"Rust","readme":"# Hardware\nFor pin layout of the RPI pico refer to: https://www.raspberrypi.com/documentation/microcontrollers/raspberry-pi-pico.html#pinout-and-design-files\n\nOne side of the breadboard will be used for the leds, the other side for the buttons.\n\n## Hardware required (Provided):\n- 1 Raspberry Pi Pico\n- 1 USB Micro Cable\n- 1 Breadboard\n- 4x 220 Ohm resistor\n- 1x Red led\n- 1x Green led\n- 1x Blue led\n- 1x Yellow led\n- 4x Push button\n- 10 M-F jumper\n- 4x M-M jumper\n\nThe raspberry pi pico looks like this:\n\n\u003cimg src=\"readme-images/rpi.jpg\" style=\"width: 300px\" /\u003e\n\nNote: The **pin numbers** above differ from the **gpio numbers**. We will be referring to the pin numbers below.\n\n## Leds\nWe will use one side of the breadboard for the leds, and the other side for the buttons.\nThese sides will only interact via the raspberry pi.\n\n- Connect pin 16,17,19,20 to the positive side of the red,green,blue,yellow LEDs respectively.\n- Connect the negative side of the leds to the center rail using the resistors.\n- Connect center rail to ground at pin 18 ground (black wire on the picture).\n- Your hardware should now look like this:\n\n\u003cimg src=\"readme-images/leds.jpg\" style=\"height: 300px\" /\u003e \u003cimg src=\"readme-images/leds-schem.png\" style=\"height: 300px\" /\u003e\n\n## Buttons\n\nWe will now connect the buttons, this will be a little messy because of all the jumpers involved.\n\n- Place the 4 buttons on the breadboard as shown on the image.\n- Using the M-M jumper wires, connect one side of the button to the center rail.\n- Connect the center rail to pin 23 ground (purple wire on the picture).\n- Your hardware should now look like this:\n\n\u003cimg src=\"readme-images/buttons1.jpg\" style=\"height: 300px\" /\u003e \u003cimg src=\"readme-images/buttons1-schem.png\" style=\"height: 300px\" /\u003e\n\n- Connect pins 25,24,22,21 to the other side of the buttons next to the red,green,blue,yellow leds respectively.\n- The final hardware should look like this:\n\n\u003cimg src=\"readme-images/buttons2.jpg\" style=\"height: 300px\" /\u003e \u003cimg src=\"readme-images/buttons2-schem.png\" style=\"height: 300px\" /\u003e\n\n# Software\n\nInstallation:\n- Install VS code with the rust-analyzer plugin: https://code.visualstudio.com/\n- Install rustup: https://rustup.rs/\n- Run: `cargo install elf2uf2-rs`\n\nRunning:\n- Unplug rpi\n- Hold the bootsel button while plugging in the usb cable\n- Run: `cargo run`\n- After flashing, the default program should light up the LED corresponding to the button when pressed.\n\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechnolution%2Frust-workshop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftechnolution%2Frust-workshop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechnolution%2Frust-workshop/lists"}