An automated build was configured to produce binaries on a regular basis, from common templates that are the most typical. They can be downloaded from :
https://github.com/sle118/squeezelite-esp32/releases
1/ setup WiFi
2/ setup squeezelite command line (optional)
At this point, the device should have disabled its built-in access point and should be connected to a known WiFi network.
3/ set bluetooth & airplaysink name (if you want something other than default)
this will eventually be moved to the web configuration
you need to be connected to the device using a usb to serial adapter, with a terminal program (for example putty) opened on that serial port.
nvs_set bt_sink_name str -v "your_bt_name_here"
nvs_set airplay_sink_name str -v "your_airplay_name_here"
The squeezelite options are very similar to the regular Linux ones. Differences are :
- the output is -o [\"BT -n <sinkname>\"] | [I2S]
- if you've compiled with RESAMPLE option, normal soxr options are available using -R [-u <options>]. Note that anything above LQ or MQ will overload the CPU
- if you've used RESAMPLE16, <options> are (b|l|m)[:i], with b = basic linear interpolation, l = 13 taps, m = 21 taps, i = interpolate filter coefficients
To add options that require quotes ("), escape them with \". For example, so use a BT speaker named MySpeaker and resample everything to 44100 (which is needed with Bluetooth) and use 16 bits resample with medium quality, the command line is:
nvs_set autoexec1 str -v "squeezelite -o \"BT -n 'MySpeaker'\" -b 500:2000 -R -u m -Z 192000 -r \"44100-44100\""
MOST IMPORTANT: create the right default config file
make defconfig
Then adapt the config file to your wifi/BT/I2C device (can alos be done on the command line)
make menuconfig
Then you will need to build the recovery binary and squeezelite binary:
# Build recovery.bin, bootloader.bin, ota_data_initial.bin, partitions.bin
PROJECT_NAME="recovery" make -j4 all EXTRA_CPPFLAGS='-DRECOVERY_APPLICATION=1'
# Now force a rebuild by touching all the files which may have a RECOVERY_APPLICATION specific source compile logic
find . \( -name "*.cpp" -o -name "*.c" -o -name "*.h" \) -type f -print0 | xargs -0 grep -l "RECOVERY_APPLICATION" | xargs touch
# Build squeezelite.bin
PROJECT_NAME="squeezelite" make -j4 app EXTRA_CPPFLAGS='-DRECOVERY_APPLICATION=0'
make flash monitor
Once the application is running, under monitor, you can monitor the system activity.