{"id":20082539,"url":"https://github.com/paulgreg/esp32-web-radio","last_synced_at":"2026-02-15T23:01:54.449Z","repository":{"id":138756203,"uuid":"441230359","full_name":"paulgreg/esp32-web-radio","owner":"paulgreg","description":"ESP32 web radio","archived":false,"fork":false,"pushed_at":"2025-01-25T17:17:35.000Z","size":53,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-05T05:11:21.762Z","etag":null,"topics":["esp32","vs1053"],"latest_commit_sha":null,"homepage":"https://hackaday.io/project/194700-esp32-web-radio","language":"C","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/paulgreg.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-12-23T16:02:05.000Z","updated_at":"2025-01-25T17:17:39.000Z","dependencies_parsed_at":"2024-02-17T16:44:58.576Z","dependency_job_id":"6e024644-c74d-453a-8fad-9149569883e8","html_url":"https://github.com/paulgreg/esp32-web-radio","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/paulgreg/esp32-web-radio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulgreg%2Fesp32-web-radio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulgreg%2Fesp32-web-radio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulgreg%2Fesp32-web-radio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulgreg%2Fesp32-web-radio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paulgreg","download_url":"https://codeload.github.com/paulgreg/esp32-web-radio/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulgreg%2Fesp32-web-radio/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29491998,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T19:29:10.908Z","status":"ssl_error","status_checked_at":"2026-02-15T19:29:10.419Z","response_time":118,"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":["esp32","vs1053"],"created_at":"2024-11-13T15:43:51.564Z","updated_at":"2026-02-15T23:01:54.417Z","avatar_url":"https://github.com/paulgreg.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# esp32-web-radio\n\nAn ESP32 web radio, inspired by [KitchenRadio](https://github.com/jeroenlukas/KitchenRadio) and made possible using [CelliesProjects/ESP32_VS1053_Stream](https://github.com/CelliesProjects/ESP32_VS1053_Stream) library. 🙏\n\n## Features\n\n - mp3 and aac decoding (depends of VS1053 module)\n - OLED screen displaying radio, songs, volume\n - fetch radios from a json file (to easily update them)\n - IR remote (next / previous / volume + / volume - / mute)\n\n\n## Hardware\n\n - ESP32-WROOM-32D/ESP32-WROOM-32U with Antenna\n - VS1003B VS1053 MP3 Module Development Board (make sure it decodes AAC for better stream quality)\n - 2.4\" 128x64 OLED I2C SSD1309 Display Module\n - IR receiver\n - IR remote (from an old DVD player)\n\n\n## Connections\n\n  | ESP32  | VS1053 | OLED | IR |\n  |--------|--------|------|----|\n  |  GND   |   X    |  X   | G  |\n  |  5V    |  5V    |      | R  |\n  |  3.3V  |  3.3V  |      |    |\n  |  IO18  |  SCK   |      |    |\n  |  IO19  |  MISO  |      |    |\n  |  IO23  |  MOSI  |      |    |\n  |  EN    |  XRST  |      |    |\n  |  IO5   |  CS    |      |    |\n  |  IO16  |  DCS   |      |    |\n  |  IO4   |  DREQ  |      |    |\n  |  IO21  |        | SDA  |    |\n  |  IO22  |        | SCL  |    |\n  |  IO27  |        |      | Y  |\n\n\n*Don’t use GND next to 5V ! Uploading will crash*\n\nFrom [that example](https://github.com/baldram/ESP_VS1053_Library/blob/master/examples/WebRadioDemo/WebRadioDemo.ino).\n\n\n## Configuration\n\nCopy `parameters.h.dist` to `parameters.h` and change it to your settings.\n\n⚠️ Web Radios are fetch from a JSON file. You'll need to create a JSON file containing web radios name and URL (see `WebRadios.h`) and host it somewhere on the internet.\n\nNote : some VS1053 board aren't able to decode aac streams. You can usually find mp3 alternative (or change board).\n\n\n## Librairies\n\n- [CelliesProjects/ESP32_VS1053_Stream](https://github.com/CelliesProjects/ESP32_VS1053_Stream)\n- IRRemote\n\n\n## Flash\n\nFlash using « ESP32 DEV Module »\n\n\n## References\n\n- [VS1053 Datasheet](https://www.sparkfun.com/datasheets/Components/SMD/vs1053.pdf)\n- https://www.instructables.com/HiFi-Online-Radio-Internet-Streaming-With-ESP32-an/\n- to generate font : https://oleddisplay.squix.ch/\n- https://www.makerguides.com/ir-receiver-remote-arduino-tutorial/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaulgreg%2Fesp32-web-radio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpaulgreg%2Fesp32-web-radio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaulgreg%2Fesp32-web-radio/lists"}