{"id":48801231,"url":"https://github.com/opensensor/pico-audio-chime","last_synced_at":"2026-04-14T03:01:37.762Z","repository":{"id":344071578,"uuid":"1105175638","full_name":"opensensor/pico-audio-chime","owner":"opensensor","description":"wifi pico audio server for chime sounds","archived":false,"fork":false,"pushed_at":"2025-11-27T08:56:36.000Z","size":29,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-13T06:38:29.970Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opensensor.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-27T08:40:42.000Z","updated_at":"2025-12-24T12:19:04.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/opensensor/pico-audio-chime","commit_stats":null,"previous_names":["opensensor/pico-audio-chime"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/opensensor/pico-audio-chime","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opensensor%2Fpico-audio-chime","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opensensor%2Fpico-audio-chime/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opensensor%2Fpico-audio-chime/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opensensor%2Fpico-audio-chime/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opensensor","download_url":"https://codeload.github.com/opensensor/pico-audio-chime/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opensensor%2Fpico-audio-chime/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31779947,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T02:24:21.117Z","status":"ssl_error","status_checked_at":"2026-04-14T02:24:20.627Z","response_time":153,"last_error":"SSL_read: 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":[],"created_at":"2026-04-14T03:01:37.180Z","updated_at":"2026-04-14T03:01:37.756Z","avatar_url":"https://github.com/opensensor.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🔔 Pico Audio Chime\n\nA WiFi-enabled doorbell system for Raspberry Pi Pico W with Waveshare Pico Audio board, featuring 25 unique doorbell tones ranging from traditional chimes to pop culture themes.\n\n## ✨ Features\n\n- **25 Unique Doorbell Tones** - Traditional, musical, classical, pop/rock, video games, and more\n- **WiFi Control** - Trigger doorbells remotely via HTTP API\n- **Web Interface** - Simple web UI to select and play tones\n- **Sine Wave Synthesis** - High-quality audio generation using PIO\n- **Low Latency** - Hardware-accelerated I2S audio output\n\n## 🎵 Tone Categories\n\n- **Traditional** (5): Ding-Dong, Westminster, Simple Ding, Triple Chime, Alert\n- **Musical** (5): Tubular Bells, Ascending/Descending Scales, Jingle Bells, Buzzer\n- **Movies \u0026 TV** (5): Star Wars, Pink Panther, Mission Impossible, Harry Potter, Game of Thrones\n- **Classical** (3): Bach Toccata, Für Elise, The Entertainer\n- **Pop \u0026 Rock** (2): Beatles, Take On Me\n- **Video Games** (3): Super Mario, Zelda, Tetris\n- **Retro \u0026 Celebration** (2): Nokia, Happy Birthday\n\nSee [DOORBELL_TONES.md](DOORBELL_TONES.md) for complete documentation and [QUICK_REFERENCE.md](QUICK_REFERENCE.md) for a quick guide.\n\n## 🛠️ Hardware Requirements\n\n- **Raspberry Pi Pico W** - RP2040 microcontroller with WiFi (CYW43)\n- **Waveshare Pico Audio** - I2S audio expansion board\n  - Rev1 (PCM5101A): DIN=GPIO26, BCK=GPIO27, LRCK=GPIO28\n  - Rev2.1 (CS4344): DIN=GPIO22, MCLK=GPIO26, LRCK=GPIO27, SCLK=GPIO28\n- **Speaker** - Connected to audio board output\n- **USB Power** - 5V micro-USB\n\n## 🚀 Quick Start\n\n### 1. Build the Firmware\n\n```bash\n# Clone the repository\ngit clone https://github.com/matteius/pico-audio-chime.git\ncd pico-audio-chime\n\n# Create build directory\nmkdir build \u0026\u0026 cd build\n\n# Configure and build\ncmake ..\nmake -j4\n```\n\nThis will generate `audio_firmware.uf2` in the build directory.\n\n### 2. Configure WiFi\n\nEdit `wifi_config.h` with your WiFi credentials:\n\n```c\n#define WIFI_SSID \"YourNetworkName\"\n#define WIFI_PASSWORD \"YourPassword\"\n```\n\n### 3. Flash the Firmware\n\n1. Hold the **BOOTSEL** button on Pico W\n2. Connect USB cable (or press reset while holding BOOTSEL)\n3. Copy `audio_firmware.uf2` to the **RPI-RP2** drive\n4. Wait for the Pico to reboot\n\n### 4. Find the IP Address\n\nConnect to the Pico's serial console (115200 baud) to see the assigned IP address:\n\n```\n=== Pico W Doorbell ===\nMode: WiFi Server\n\nConnecting to WiFi...\nConnected! IP: 192.168.1.100\n\n=== Server Ready ===\nAccess the doorbell at: http://192.168.1.100/\nAPI endpoint: http://192.168.1.100/doorbell?type=0-24 (25 tones)\n```\n\n### 5. Use the Doorbell\n\n**Web Interface:**\n- Open `http://\u003cpico-ip\u003e/` in your browser\n- Click any tone button to play it\n\n**HTTP API:**\n```bash\n# Play Star Wars Imperial March (tone 10)\ncurl http://\u003cpico-ip\u003e/doorbell?type=10\n\n# Play Westminster chime (tone 1)\ncurl http://\u003cpico-ip\u003e/doorbell?type=1\n```\n\n## 📡 HTTP API\n\n### Endpoints\n\n- `GET /` - Web interface with all tone buttons\n- `GET /doorbell?type=\u003c0-24\u003e` - Trigger specific doorbell tone\n\n### Example Usage\n\n```bash\n# Traditional ding-dong\ncurl http://192.168.1.100/doorbell?type=0\n\n# Super Mario theme\ncurl http://192.168.1.100/doorbell?type=13\n\n# Happy Birthday\ncurl http://192.168.1.100/doorbell?type=21\n```\n\n## 🔧 Development\n\n### Project Structure\n\n```\npico-audio-chime/\n├── main.c                  # Main application entry point\n├── doorbell_server.c/h     # HTTP server implementation\n├── wifi_config.h           # WiFi credentials (edit this!)\n├── lwipopts.h             # lwIP TCP/IP stack configuration\n├── audio_pio.pio          # PIO assembly for I2S audio\n├── CMakeLists.txt         # Build configuration\n├── lib/\n│   ├── audio_data/        # Doorbell tone definitions\n│   └── audio_pio/         # PIO audio driver\n├── DOORBELL_TONES.md      # Complete tone documentation\n└── QUICK_REFERENCE.md     # Quick reference guide\n```\n\n### Adding New Tones\n\nSee [DOORBELL_TONES.md](DOORBELL_TONES.md#adding-custom-tones) for instructions on adding custom doorbell tones.\n\n### Build Requirements\n\n- **Pico SDK** - Raspberry Pi Pico SDK (v1.5.0+)\n- **CMake** - Build system (v3.13+)\n- **GCC ARM** - ARM cross-compiler (`arm-none-eabi-gcc`)\n\n## 📝 License\n\nMIT License - See LICENSE file for details\n\n## 🙏 Acknowledgments\n\n- Based on Waveshare Pico Audio examples\n- Uses Raspberry Pi Pico SDK\n- lwIP for TCP/IP networking\n\n## 🐛 Troubleshooting\n\n**No WiFi connection:**\n- Check `wifi_config.h` credentials\n- Ensure 2.4GHz WiFi network (Pico W doesn't support 5GHz)\n- Check serial console for error messages\n\n**No audio output:**\n- Verify speaker connections\n- Check audio board revision matches pin configuration\n- Ensure volume is set appropriately\n\n**Web interface not loading:**\n- Verify IP address from serial console\n- Check firewall settings\n- Try accessing from same network\n\nFor more help, see [DOORBELL_TONES.md](DOORBELL_TONES.md#troubleshooting).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopensensor%2Fpico-audio-chime","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopensensor%2Fpico-audio-chime","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopensensor%2Fpico-audio-chime/lists"}