This PlatformIO project is intended for a Adafruit ESP32-S3 Reverse TFT Feather combined with a Adafruit Music Maker FeatherWing.
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.
- Save found radio stations to your favorites.
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.
Visual Studio Code with a working PlatformIO plugin.
- 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.
Before compiling the project add the file include/WiFicredentials.h
to supply your WiFi credentials:
#ifndef WIFI_SECRETS
#define WIFI_SECRETS
const char *SSID= "your wifi network name";
const char *PSK = "your wifi password";
#endif
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.
That's it. Now you are ready to compile and flash the player!
- This project is a fork of 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.
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 |
https://docs.espressif.com/projects/esp-idf/en/v4.3/esp32/api-guides/freertos-smp.html
https://github.com/khoih-prog/WiFiMulti_Generic/blob/main/examples/WiFiMulti/WiFiMulti.ino