Skip to content

A music player for Adafruit ESP32-S3 Reverse TFT Feather with a Adafruit Music Maker FeatherWing.

License

Notifications You must be signed in to change notification settings

CelliesProjects/featherplayer-esp32

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

featherPlayer-esp32

This PlatformIO project is intended for a Adafruit ESP32-S3 Reverse TFT Feather combined with a Adafruit Music Maker FeatherWing.

Adafruit ESP32-S3 Reverse TFT Feather Adafruit Music Maker FeatherWing

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.
  • 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 with a working PlatformIO 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:

#ifndef WIFI_SECRETS
#define WIFI_SECRETS

const 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

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