{"id":24701599,"url":"https://github.com/paulgreg/esp32-audio-station","last_synced_at":"2026-04-28T00:32:57.791Z","repository":{"id":273106005,"uuid":"918720823","full_name":"paulgreg/esp32-audio-station","owner":"paulgreg","description":"A ESP32 based web radio or bluetooth receiver player","archived":false,"fork":false,"pushed_at":"2025-02-22T15:19:40.000Z","size":53,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-13T16:05:00.010Z","etag":null,"topics":["bluetooth","esp32","webradio","wifi"],"latest_commit_sha":null,"homepage":"","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":"2025-01-18T17:24:05.000Z","updated_at":"2025-02-22T15:19:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"f2b00912-faec-4258-a70e-d285ad665388","html_url":"https://github.com/paulgreg/esp32-audio-station","commit_stats":null,"previous_names":["paulgreg/esp32-audio-station"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/paulgreg/esp32-audio-station","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulgreg%2Fesp32-audio-station","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulgreg%2Fesp32-audio-station/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulgreg%2Fesp32-audio-station/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulgreg%2Fesp32-audio-station/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paulgreg","download_url":"https://codeload.github.com/paulgreg/esp32-audio-station/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulgreg%2Fesp32-audio-station/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32361477,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T20:07:02.737Z","status":"ssl_error","status_checked_at":"2026-04-27T20:07:00.910Z","response_time":128,"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":["bluetooth","esp32","webradio","wifi"],"created_at":"2025-01-27T05:24:52.075Z","updated_at":"2026-04-28T00:32:57.770Z","avatar_url":"https://github.com/paulgreg.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# esp32-audio-station\n\nAn ESP32 bluetooth speaker and web radio, inspired by [KitchenRadio](https://github.com/jeroenlukas/KitchenRadio) and my previous bluetooth and web radio projects. That project was made thanks too [CelliesProjects/ESP32_VS1053_Stream](https://github.com/CelliesProjects/ESP32_VS1053_Stream) and [ESP32-A2DP](https://github.com/pschatzmann/ESP32-A2DP) libraries ! 🙏 \n\n\n## Features\n\n - 2 modes : Web Radio or Bluetooth receiver\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 / source)\n\n## Status\n\nI wasn’t able to switch correctly from bluetooth to wifi (not enought RAM when enabling wifi). So I store mode in preferences and reboot ESP32... 😐\nWhen it reboots, it checks for mode and starts bluetooth or wifi.\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- [paulgreg/ESP32_VS1053_Stream_raw](https://github.com/paulgreg/ESP32_VS1053_Stream_raw), forked from [CelliesProjects/ESP32_VS1053_Stream](https://github.com/CelliesProjects/ESP32_VS1053_Stream) to expose `playChunk`\n- [ESP32-A2DP](https://github.com/pschatzmann/ESP32-A2DP.git)\n- IRRemote\n\n `cd Arduino/libraries \u0026\u0026 git clone -b expose-play-chunk https//github.com/paulgreg/ESP32_VS1053_Stream_raw.git)`\n\n\n## Flash\n\nFlash using « ESP32 DEV Module » (or ESP32-WROOM-DA for my model)\n\n⚠️ You’ll need to change layout to have enougth flash size : NO OTA (2 MB APP/2 MB SPIFFS)\n\n\n## References\n\n- [VS1053 Datasheet](https://www.sparkfun.com/datasheets/Components/SMD/vs1053.pdf)\n- [ESP32_VS1053_Stream](https://github.com/CelliesProjects/ESP32_VS1053_Stream/)\n- [ESP32-A2DP](https://github.com/pschatzmann/ESP32-A2DP) - [documentation](https://pschatzmann.github.io/ESP32-A2DP/html/class_bluetooth_a2_d_p_sink.html)\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- [Inspiring issue to connect ESP32-A2DP to VS1053](https://github.com/pschatzmann/ESP32-A2DP/issues/31)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaulgreg%2Fesp32-audio-station","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpaulgreg%2Fesp32-audio-station","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaulgreg%2Fesp32-audio-station/lists"}