https://github.com/celliesprojects/featherplayer-esp32
A music player for Adafruit ESP32-S3 Reverse TFT Feather with a Adafruit Music Maker FeatherWing.
https://github.com/celliesprojects/featherplayer-esp32
adafruit-feather adafruit-music-maker-featherwing esp32-s3 pio platformio-arduino vs1053b
Last synced: 26 days ago
JSON representation
A music player for Adafruit ESP32-S3 Reverse TFT Feather with a Adafruit Music Maker FeatherWing.
- Host: GitHub
- URL: https://github.com/celliesprojects/featherplayer-esp32
- Owner: CelliesProjects
- License: mit
- Created: 2024-04-17T12:08:23.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-10T15:07:07.000Z (4 months ago)
- Last Synced: 2025-04-03T23:29:04.934Z (3 months ago)
- Topics: adafruit-feather, adafruit-music-maker-featherwing, esp32-s3, pio, platformio-arduino, vs1053b
- Language: C++
- Homepage:
- Size: 329 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# featherPlayer-esp32
This PlatformIO project is intended for a [Adafruit ESP32-S3 Reverse TFT Feather](https://www.adafruit.com/product/5691)
combined with a
[Adafruit Music Maker FeatherWing](https://www.adafruit.com/product/3357).
![]()
## What is it?
A web-based esp32 music player for mp3/ogg/aac/aac+ webradio, local music files and files from a sdcard.
Sound output comes from a VS1053 mp3/aac/ogg/wav decoder board.- Supports http, https (insecure mode) and chunked streams.
- Plays files from local network.
- Plays local files from a mounted filesystem. Working on it.
- Search for web radio stations on [radio-browser](https://www.radio-browser.info/).
- Save found radio stations to your favorites.## Web based interface
This player has a web interface and is controlled with a browser on your phone, pc or tablet.
The interface is kept very simple, a playlist tab on the right and selectable source tabs on the left.
After 30 seconds of inactivity the file info overlay is shown.
Click on the overlay to hide it or use the info button on the bottom to toggle the overlay.
On this overlay you can also save the current playing search result to the favorites tab by clicking the
icon.
## What you need
[Visual Studio Code](https://code.visualstudio.com/) with a working [PlatformIO](https://platformio.org/platformio-ide) plugin.
## Clone this project to your pc
- Open a terminal in the PIO project folder.
- Clone the project with the following command:```
git clone https://github.com/CelliesProjects/featherplayer-esp32
```- Use `File->Open folder` in Visual Studio and then browse to the folder where you cloned the project to.
- Press `Select` and the project will be opened and initialized, this will take some time while all assets are downloaded.## Add your WiFi credentials
Before compiling the project add the file `include/WiFicredentials.h` to supply your WiFi credentials:
```c++
#ifndef WIFI_SECRETS
#define WIFI_SECRETSconst char *SSID= "your wifi network name";
const char *PSK = "your wifi password";#endif
```## Local file playback
This player is written for playback over http(s).
What this means is that you will need a (lamp or llmp) webserver to play back your local files.
This is because the esp32 does not speak NFS or SMB which are common ways to share files over a network. Instead this player uses a php script on the server to navigate the music folders. Copy this script to the server to use your music library.
**This is totally insecure and should only be used on a trusted LAN!**The script `eSP32_vs1053.php` is located in the root of this repository.
The scipt is tested with Apache 2.x and lighttpd.## Done!
That's it. Now you are ready to compile and flash the player!
## About this project
- This project is a fork of [eStreamplayer32-vs1053-pio](https://github.com/CelliesProjects/eStreamplayer32-vs1053-pio)
- The SPI bus is shared by the tft, the vs1053 codec chip and the sd-card.
- SPI bus sharing between the cores and tasks is done through a [freeRTOS semaphore mutex](https://www.freertos.org/CreateMutex.html).## GPIOs used
| SPI | GPIO |
| :----: | :----: |
| SCK | 36 |
| MISO | 37 |
| MOSI | 35 || SD SLOT | GPIO |
| :-------: | :----: |
| CS | 5 || VS1053 | GPIO |
| :------: | :----: |
| CS | 6 |
| DCS | 10 |
| DREQ | 9 || TFT | GPIO |
| :---: | :----: |
| CS | 42 |# Resources used
https://docs.espressif.com/projects/esp-idf/en/v4.3/esp32/api-guides/freertos-smp.html
https://docs.espressif.com/projects/esp-idf/en/v5.0/esp32s3/api-guides/performance/speed.html#built-in-task-priorities
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/freertos_additions.html
https://github.com/khoih-prog/WiFiMulti_Generic/blob/main/examples/WiFiMulti/WiFiMulti.ino