{"id":20313067,"url":"https://github.com/ceiridge/pi-pico-interactive-alarm-clock","last_synced_at":"2026-05-10T18:07:09.938Z","repository":{"id":189830846,"uuid":"681380329","full_name":"Ceiridge/Pi-Pico-Interactive-Alarm-Clock","owner":"Ceiridge","description":"An alarm clock that will never let you sleep","archived":false,"fork":false,"pushed_at":"2023-11-12T22:47:12.000Z","size":671,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-14T12:28:58.523Z","etag":null,"topics":["alarm","alarm-clock","buzzer","clock","human-interface","lcd","pico","raspberry-pi","raspberry-pi-pico","sleep"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ceiridge.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":"2023-08-21T22:28:21.000Z","updated_at":"2024-11-24T06:07:07.000Z","dependencies_parsed_at":"2023-11-12T23:38:51.774Z","dependency_job_id":null,"html_url":"https://github.com/Ceiridge/Pi-Pico-Interactive-Alarm-Clock","commit_stats":null,"previous_names":["ceiridge/pi-pico-interactive-alarm-clock"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ceiridge%2FPi-Pico-Interactive-Alarm-Clock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ceiridge%2FPi-Pico-Interactive-Alarm-Clock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ceiridge%2FPi-Pico-Interactive-Alarm-Clock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ceiridge%2FPi-Pico-Interactive-Alarm-Clock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ceiridge","download_url":"https://codeload.github.com/Ceiridge/Pi-Pico-Interactive-Alarm-Clock/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241812246,"owners_count":20024339,"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":["alarm","alarm-clock","buzzer","clock","human-interface","lcd","pico","raspberry-pi","raspberry-pi-pico","sleep"],"created_at":"2024-11-14T18:09:08.492Z","updated_at":"2026-05-10T18:07:09.889Z","avatar_url":"https://github.com/Ceiridge.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Interactive Alarm Clock (Raspberry Pi Pico)\n\n![Basic UI Demo](.github/demo.avif)\n\nA highly reliable, robust and customizable alarm clock that forces you to wake up and stay awake by making you solve a challenge at a fixed place to stop the alarm sound.\n\n## **Button Usage**\n\n![Button Guide](.github/buttonguide.png)\n\n\n## **Circuit Schematic \\[Recipe\\]**\n\n### **Basic Schematic \\[Result\\]**\n\n![Basic Schematic](.github/schematic.png)\n\n### **Components \\[Ingredients\\]**\n\n- Raspberry Pi Pico (RP2040, with headers)\n- Half-Breadboard\n- seeed Grove Active Buzzer (any passive buzzer would also work)\n- 3x Mini Arcade Buttons\n- LCD 16x2 with I2C\n\nAlso remember (optional):\n\n- F\u003c-\u003eF \u0026 M\u003c-\u003eM jumper cables (combining creates M\u003c-\u003eF cables)\n- Potentially jumper cables with clamps\n- USB 2.0 Micro Type B power connector for the Pi Pico\n- USB 2.0 Type A -\u003e Micro Type B for a connection to your computer\n\n### **Setup Guide \\[How To Cook\\]**\n\n\n```\n[Default Pin Configuration]\nVBUS: Power Line 1\nGND.8: Power Line 1 Ground\n3V3: Power Line 2\nGND.1: Power Line 2 Ground\n\nGP28: Button 0\nGP27: Button 1\nGP26: Button 2\nGP9: Buzzer Signal\nGND.3: Buzzer Ground\n\nGP0: LCD I2C SDA\nGP1: LCD I2C SCL\n```\n\n1. Put the Pi Pico on your breadboard as shown in the result.\n1. Connect one power line with VBUS. We will draw power from the USB-B connection with 5V and connect this to the LCD\n\t1. If desired, you can add a redundant or manual power supply. Connect this to VSYS with a Schottky diode (required if there are two power sources, otherwise optional). Also connect the power line with VSYS instead. It must be around 5V.\n1. Also connect that power line with a ground pin.\n1. Connect the other power line with the 3V3 pin output and also connect a cable to a ground pin. This will be used for the buttons.\n1. Connect the buttons in a way that 3.3V are input and connect them to the respective pins. A resistor is not needed. Internal Pull-Down is the default mode (can be changed in `globals.py` or `globals.json` if existent).\n1. Add the buzzer. Connect it with power line 1 (5V), its ground, and the data pin (see above).\n1. Add the LCD I2C. Also connect it with power line 1 (5V), its ground, and the data pins (see above).\n\t1. You may need to scan the I2C address first. Flash an I2C scanner and set it in the globals file.\n1. Perform an [I2C address scan](https://www.freva.com/find-out-an-i2c-address-with-the-raspberry-pi-pico/) for the LCD. The address will need to be set in the globals file. You should also set `LcdIId` (I2C identifier, see online)\n1. Flash the interactive clock, making sure to adjust to the globals file.\n1. Put it in a box (e. g. cardboard) and print out the button guide if desired. Keep a hole for the buzzer for maximum volume.\n\nRemember: You can customize all global variables on the device. They are not bounds-checked, so it is your responsibility to not be stupid.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fceiridge%2Fpi-pico-interactive-alarm-clock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fceiridge%2Fpi-pico-interactive-alarm-clock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fceiridge%2Fpi-pico-interactive-alarm-clock/lists"}