No Description

Sebastien b0b489704e Merge and reset component names 5 years ago
build-scripts 52d8fdd976 more make changes - release 5 years ago
components b0b489704e Merge and reset component names 5 years ago
idf-patch c44c31f6d4 i2s ... 5 years ago
main ea873ae3bc Stabilizing a few things. 5 years ago
plugin b60ea2e356 make AirPlay work in AP mode - release 5 years ago
server_certs 53369475dc More OTA work 5 years ago
.cproject b0b489704e Merge and reset component names 5 years ago
.gitattributes a5b37a13c9 :confetti_ball: Added .gitattributes & .gitignore files 5 years ago
.gitignore 39058213fa Merge remote-tracking branch 'origin/httpd' into master-cmake 5 years ago
.gitmodules b70373ea31 Fix esp-dsp - release 5 years ago
.project 2ab14d62be Merged with httpd - work in progress 5 years ago
.pydevproject d4576bbdd4 httpd implementation - wip 5 years ago
CMakeLists.txt 804c67ef9a Merge remote-tracking branch 'origin/master' into master-cmake 5 years ago
Dockerfile 6cf04a3a83 Merge branch 'master' into nvs_parameters 5 years ago
Makefile f613487c4d adjusting makefiles for http compile in linux 5 years ago
Makefile_std.mk c666ad8d63 add esp-dsp 5 years ago
README.md f53edaa75c Updated instructions for esp-idf v4.0 - release 5 years ago
TODO 3304571312 add comments & and a TODO 5 years ago
build_flash_cmd.sh 0acb0dc3e7 fix system freezing on telnet activation 5 years ago
eclipse_make_wrapper.py d0a086e84b increase http client buffer size 5 years ago
flash_cmd.txt f998ea2a52 retrofit to gcc8/CMake 5 years ago
generate_debug_scripts.cmake 52d8fdd976 more make changes - release 5 years ago
github.pem 53369475dc More OTA work 5 years ago
makeBuildDocs.sh b1f234d460 Added in better build instructions. Added script for generating documentation and scripts to add to release zip. (#12) 5 years ago
non-ota-partitions.csv 372dcb1640 align non-ota build 5 years ago
partitions.csv ea873ae3bc Stabilizing a few things. 5 years ago
repo.xml a51ff972ea repo update 5 years ago
sdkconfig 993cdc7492 reduce verbosity 5 years ago
sdkconfig.defaults 39058213fa Merge remote-tracking branch 'origin/httpd' into master-cmake 5 years ago
squeezelite.cmake 52d8fdd976 more make changes - release 5 years ago
writeSequeezeEsp.bat f998ea2a52 retrofit to gcc8/CMake 5 years ago
writeSequeezeEsp.sh f998ea2a52 retrofit to gcc8/CMake 5 years ago

README.md

Squeezelite-esp32

Supported Hardware

SqueezeAMP

Works with the SqueezeAMP see here and here. Add repository https://raw.githubusercontent.com/sle118/squeezelite-esp32/master/plugin/repo.xml to LMS if you want to have a display

Use the squeezelite-esp32-SqueezeAmp-sdkconfig.defaults configuration file.

ESP32-A1S

Works with ESP32-A1S module that includes audio codec and headset output. You still need to use a demo board like this or an external amplifier if you want direct speaker connection.

The board showed above has the following IO set

  • amplifier: GPIO21
  • key2: GPIO13, key3: GPIO19, key4: GPIO23, key5: GPIO18, key6: GPIO5 (to be confirmed width dipswitches)
  • key1: not sure, something with GPIO36
  • jack insertion: GPIO39 (inserted low)
  • LED: GPIO22 (active low)

So a possible config would be

  • set_GPIO: 21=amp,22=green:0,39=jack:0
  • a button mapping:

    [{"gpio":5,"normal":{"pressed":"ACTRLS_TOGGLE"}},{"gpio":18,"shifter_gpio":5,"normal":{"pressed":"ACTRLS_VOLUP"}, "shifted":{"pressed":"ACTRLS_NEXT"}}, {"gpio":23,"shifter_gpio":5,"normal":{"pressed":"ACTRLS_VOLDOWN"},"shifted":{"pressed":"ACTRLS_PREV"}}]
    

ESP32-WROVER + I2S DAC

Squeezelite-esp32 requires esp32 chipset and 4MB PSRAM. ESP32-WROVER meets these requirements. To get an audio output an I2S DAC can be used. Cheap PCM5102 I2S DACs work others may also work. PCM5012 DACs can be hooked up via:

I2S - WROVER
VCC - 3.3V
3.3V - 3.3V
GND - GND
FLT - GND
DMP - GND
SCL - GND
BCK - (BCK - see below)
DIN - (DO - see below)
LCK - (WS - see below) FMT - GND
XMT - 3.3V

Use the squeezelite-esp32-I2S-4MFlash-sdkconfig.defaults configuration file.

Configuration

To access NVS, in the webUI, go to credits and select "shows nvs editor". Go into the NVS editor tab to change NFS parameters. In syntax description below <> means a value while [] describe optional parameters.

I2C

The NVS parameter "i2c_config" set the i2c's gpio used for generic purpose (e.g. display). Leave it blank to disable I2C usage. Note that on SqueezeAMP, port must be 1. Default speed is 400000 but some display can do up to 800000 or more. Syntax is

sda=<gpio>,scl=<gpio>[,port=0|1][,speed=<speed>]

SPI

The NVS parameter "spi_config" set the spi's gpio used for generic purpose (e.g. display). Leave it blank to disable SPI usage. The DC parameter is needed for displays. Syntax is

data=<gpio>,clk=<gpio>[,dc=<gpio>][,host=1|2]

DAC/I2S

The NVS parameter "dac_config" set the gpio used for i2s communication with your DAC. You can define the defaults at compile time but nvs parameter takes precedence except for SqueezeAMP and A1S where these are forced at runtime. If your DAC also requires i2c, then you must go the re-compile route. Syntax is

bck=<gpio>,ws=<gpio>,do=<gpio>

SPDIF

The NVS parameter "spdif_config" sets the i2s's gpio needed for SPDIF.

SPDIF is made available by re-using i2s interface in a non-standard way, so although only one pin (DO) is needed, the controller must be fully initialized, so the bit clock (bck) and word clock (ws) must be set as well. As i2s and SPDIF are mutually exclusive, you can reuse the same IO if your hardware allows so.

You can define the defaults at compile time but nvs parameter takes precedence except for SqueezeAMP where these are forced at runtime.

Leave it blank to disable SPDIF usage, you can also define them at compile time using "make menuconfig". Syntax is

bck=<gpio>,ws=<gpio>,do=<gpio>

Display

The NVS parameter "display_config" sets the parameters for an optional display. Syntax is

I2C,width=<pixels>,height=<pixels>[address=<i2c_address>][,HFlip][,VFlip][driver=SSD1306|SSD1326|SH1106]
SPI,width=<pixels>,height=<pixels>,cs=<gpio>[,speed=<speed>][,HFlip][,VFlip][driver=SSD1306|SSD1326|SH1106]
  • VFlip and HFlip are optional can be used to change display orientation
  • Default speed is 8000000 (8MHz) but SPI can work up to 26MHz or even 40MHz

Currently 128x32/64 I2C and SPI display like this and this are supported

The NVS parameter "metadata_config" sets how metadata is displayed for AirPlay and Bluetooth. Syntax is

[format=<display_content>][,speed=<speed>][,pause=<pause>]
  • 'speed' is the scrolling speed in ms (default is 33ms)

  • 'pause' is the pause time between scrolls in ms (default is 3600ms)

  • 'format' can contain free text and any of the 3 keywords %artist%, %album%, %title%. Using that format string, the keywords are replaced by their value to build the string to be displayed. Note that the plain text following a keyword that happens to be empty during playback of a track will be removed. For example, if you have set format=%artist% - %title% and there is no artist in the metadata then only