{"id":22502618,"url":"https://github.com/jleung51/duckveloper","last_synced_at":"2026-04-20T13:08:50.729Z","repository":{"id":94897476,"uuid":"387917456","full_name":"jleung51/duckveloper","owner":"jleung51","description":"The coding partner you never knew you needed. Arduino Uno project with an MP3 shield, speaker, and rubber duck.","archived":false,"fork":false,"pushed_at":"2021-09-23T07:54:40.000Z","size":5967,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-08T16:02:30.879Z","etag":null,"topics":["arduino","c","duck","pair-programming"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jleung51.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-07-20T21:25:05.000Z","updated_at":"2021-09-23T07:54:43.000Z","dependencies_parsed_at":"2023-07-29T19:30:26.948Z","dependency_job_id":null,"html_url":"https://github.com/jleung51/duckveloper","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jleung51/duckveloper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jleung51%2Fduckveloper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jleung51%2Fduckveloper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jleung51%2Fduckveloper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jleung51%2Fduckveloper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jleung51","download_url":"https://codeload.github.com/jleung51/duckveloper/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jleung51%2Fduckveloper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32048478,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T11:35:06.609Z","status":"ssl_error","status_checked_at":"2026-04-20T11:34:48.899Z","response_time":94,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["arduino","c","duck","pair-programming"],"created_at":"2024-12-06T23:20:05.934Z","updated_at":"2026-04-20T13:08:50.714Z","avatar_url":"https://github.com/jleung51.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Duckveloper 🐤\n\n\u003ca href=\"https://www.youtube.com/watch?v=De-VEcLn2f4\"\u003e\n  \u003cimg src=\"./readme-img/youtube-thumbnail.png\" target=\"_blank\" /\u003e\n\u003c/a\u003e\n\n---\n\nSay goodbye to the low-tech days of rubber duck debugging! **Duckveloper 🐤** is the coding partner you never knew you needed.\n\nSimply press a button and the innovative, high-tech duck will generously provide you with words of \"encouragement\" to help you figure out what's really wrong with your code.\n\n![Picture of project](./readme-img/project.jpg)\n\nArduino project with an MP3 shield, speaker, and rubber duck. Inspired by the strategy of [rubber duck debugging](https://en.wikipedia.org/wiki/Rubber_duck_debugging).\n\n## Components\n\nThis project uses the [Arduino VS1053 Library](https://github.com/mpflaga/Arduino_Library-vs1053_for_SdFat) to decode MP3 audio and interface with the MP3 shield.\n\nSerial | Name | Quantity | Description\n--- | --- | --- | ---\n| 🐤 | Rubber Duck | As many as you need to be happy in life\nDEV-11021 | [Arduino Uno - R3](https://www.sparkfun.com/products/11021) | 1\nDEV-12660 | [SparkFun MP3 Player Shield](https://www.sparkfun.com/products/12660) | 1 | Requires soldering on headers\nPRT-11417 | [Arduino Stackable Header Kit - R3](https://www.sparkfun.com/products/11417) | 1 | For the MP3 Shield\nBOB-11044 | [SparkFun Mono Audio Amp Breakout - TPA2005D1](https://www.sparkfun.com/products/11044) | 1 | Requires soldering connections\nCOM-09151 | [Speaker (0.5W)](https://www.sparkfun.com/products/9151) | 1\nPRT-10512 | Optional: [9V Battery Holder](https://www.sparkfun.com/products/10512) | 1\n\nOther common generic components you should have:\n* 1 button/switch (e.g. [Momentary Pushbutton Switch](https://www.sparkfun.com/products/9190))\n* 1 LED, bright enough to shine through the duck's plastic (e.g. [Super Bright LED](https://www.sparkfun.com/products/11118))\n* 1 breadboard\n* Resistors (1 x 330 Ω, 1 x 10k Ω)\n* Wires\n\n![Picture of components](./readme-img/components.jpg)\n\n## Setup\n\n### Hardware Configuration\n\nSolder the stackable headers onto the MP3 Player shield.\n\nMount the MP3 Player shield onto the Arduino Uno.\n\nConnect the remaining components according to the following schematic:\n![Schematic](./schematic/schematic.jpg)\n\nTo accurately connect the Audio Breakout Board (TPA2005D1), follow the [SparkFun Mono Audio Amplifier Quickstart Guide](https://www.sparkfun.com/tutorials/392).\n\n### Duck Configuration\n\nUse a hobby or utility knife to (carefully!) cut a small hole in the duck's rear end.\n\nInsert the LED into the hole so it will light up the duck when a voiceline is playing.\n\n Apologize profusely throughout the procedure.\n\n### SD Card Setup\n\nFormat the SD card to FAT16 or FAT32.\n\nPlace your intended voicelines onto the SD card, named in the format of `track001.mp3`, `track002.mp3`, etc.\n\nInstall the SD card into the MP3 Player Shield.\n\n### Software Configuration\n\n[Download the Arduino IDE](https://www.arduino.cc/en/software).\n\n[Install the VS1053 library in the Arduino IDE](https://mpflaga.github.io/Arduino_Library-vs1053_for_SdFat/).\n\nOpen the `duckveloper/duckveloper.ino` program. Modify the value `NUMBER_OF_TRACKS` ([location in code here](https://github.com/jleung51/duckveloper/blob/0c18382fe2e1356997615a03e70b01add00e2793/duckveloper/duckveloper.ino#L57)) accordingly, if you have changed the number of voicelines on the SD card.\n\nCompile and upload the project to the Arduino.\n\n### Operating the Project\n\nPress the button to trigger one of the random voicelines as well as the LED.\n\nTo monitor the program's output, open the serial monitor and set the baud rate to 115200.\n\n## Reference\n\nFor more information on working with the components in this project, see:\n* [SparkFun MP3 Player Shield Hookup Guide](https://learn.sparkfun.com/tutorials/mp3-player-shield-hookup-guide-v15/all)\n* [SparkFun Mono Audio Amplifier Quickstart Guide](https://www.sparkfun.com/tutorials/392)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjleung51%2Fduckveloper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjleung51%2Fduckveloper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjleung51%2Fduckveloper/lists"}