I've decided to separate the SqueezeAMP (HW) and the SqueezeliteESP32 (SW) threads for better clarity. So, this is a sort of re-announce of the software only work that we are doing with @sle118 and contributions from @daduke.
The Squeezelite-ESP32 shall not be confused with the squeezeesp32 project that was doing a native re-implementation of the slimproto on ESP8266/ESP32 devices, even with very small memory. This project is a port of Squeezelite to ESP32 devices that have at least 4MB of flash and 4MB of sram (e.g. WROVER modules, but not WROOM). The project technical part lives here https://github.com/sle118/squeezelite-esp32 and you'll find all the details how configure it.
Display is very much like a Boom/SB3/Transporter with a few visual improvements as height is larger than classical SB. It supports VU-meter, spectrum analyzer, artwork. Note that display, Buttons, Rotary encoder, InfraRed, SPDIF, I2S DAC are all optional. I strongly recommend using Michael's plugin MusicInfoSCR to tweak display.
There are pre-existing builds for SqueezeAMP, and MuseLuxe speaker devices and a generic I2S version. All option can be sets by a dedicated web interface, so you can use the I2S generic version as well on the SqueezeAMP and Muse, it's just more config work on you
. Just look here https://github.com/sle118/squeezelite-esp32#readme
Example of kit using Espressif's native WROVER can be found here https://a.aliexpress.com/_dY83WTf and also using the 3rd-party ESP32-A1S module can be found here https://a.aliexpress.com/_dZMwS57 but again, any device based on these module will work. The main difference is that the WROVER does not include a DAC, you must add one where the A1S does have a build-in DAC.
Don't forget to add the LMS associated plugin here https://github.com/sle118/squeezelit...lugin/repo.xml. It's not mandatory for the SqueezeESP32 to work, but if you want display or equalizer, then you need it.
If you don't use a SqueezeAMP where I pre-load the basic firmware then you should first flash your device with a version found here https://github.com/sle118/squeezelite-esp32/tags, download one of the .zip version and use the espressif download tool here https://www.espressif.com/en/support...ad/other-tools. You want to download:
You can also use the python downloader directly with (on debian-based Linux, use "apt install esptool" to install espressif's tools)
Once this is done, the ESP32 will broadcast a WiFi Access Point that you can use from any WiFi-enable device. Default password is 'squeezelite' and from there, follow the webUI to configure your device. Then, once it is connected o your home WiFi, connect to it again using any web browser and load a full firmware. Again, look at the README on github. You should never have to use again this initial download procedure (unless you want to or have bricked your device), all updated can be done through the WebUI.
The Squeezelite-ESP32 shall not be confused with the squeezeesp32 project that was doing a native re-implementation of the slimproto on ESP8266/ESP32 devices, even with very small memory. This project is a port of Squeezelite to ESP32 devices that have at least 4MB of flash and 4MB of sram (e.g. WROVER modules, but not WROOM). The project technical part lives here https://github.com/sle118/squeezelite-esp32 and you'll find all the details how configure it.
- full port of squeezelite (up to 192kHz samplerate, but 16 bits only)
- pcm, wav, aif, alac, flac, mp3, ogg, ogf, ops, aac (mp4) codecs
- resampling to and from any rate
- 10-bands equalizer
- synchronization with other squeezeboxes
- output to I2S DAC. Special drivers exist for TAS5754/56/13/80 and AC101 but most I2S-connected DAC will work and it's possible to configure rudimentary I2C commands.
- SPDIF output using one wire
- Bluetooth source to send LMS audio to a BT speaker
- Bluetooth sink (play from any BT-capable devices, iPhone, Android ...)
- AirPlay sink with synchronization (play from any iOS/iTunes or compatible device)
- Display support for monochrome SH1106 (128x64), SSD1306 (128x32), grayscale SSD1322 (256x32), SSD1326 (256x64), SSD1327 (128x128), color 65k ST7735 (128x160) and ST7789 (240x320) with deemable backlight
- Buttons
- Rotary encoder
- InfraRed
- Control LED (green & red - both deemable)
- Web Interface for configuration and updates
Display is very much like a Boom/SB3/Transporter with a few visual improvements as height is larger than classical SB. It supports VU-meter, spectrum analyzer, artwork. Note that display, Buttons, Rotary encoder, InfraRed, SPDIF, I2S DAC are all optional. I strongly recommend using Michael's plugin MusicInfoSCR to tweak display.
There are pre-existing builds for SqueezeAMP, and MuseLuxe speaker devices and a generic I2S version. All option can be sets by a dedicated web interface, so you can use the I2S generic version as well on the SqueezeAMP and Muse, it's just more config work on you

Example of kit using Espressif's native WROVER can be found here https://a.aliexpress.com/_dY83WTf and also using the 3rd-party ESP32-A1S module can be found here https://a.aliexpress.com/_dZMwS57 but again, any device based on these module will work. The main difference is that the WROVER does not include a DAC, you must add one where the A1S does have a build-in DAC.
Don't forget to add the LMS associated plugin here https://github.com/sle118/squeezelit...lugin/repo.xml. It's not mandatory for the SqueezeESP32 to work, but if you want display or equalizer, then you need it.
If you don't use a SqueezeAMP where I pre-load the basic firmware then you should first flash your device with a version found here https://github.com/sle118/squeezelite-esp32/tags, download one of the .zip version and use the espressif download tool here https://www.espressif.com/en/support...ad/other-tools. You want to download:
- ota_data_initial.bin at 0xd000
- bootloader.bin at 0x1000
- partition-table.bin at 0x8000
- recovery.bin at 0x10000
You can also use the python downloader directly with (on debian-based Linux, use "apt install esptool" to install espressif's tools)
Code:
python ${IDF_PATH}/components/esptool_py/esptool/esptool.py --chip esp32 --port ${ESPPORT} --baud ${ESPBAUD} --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0xd000 ota_data_initial.bin 0x1000 bootloader.bin 0x10000 recovery.bin 0x8000 partitions.bin
Comment