Snacast firmware

Hello all

Does anyone know if we have a solution for working with snapcast
I use mopidy and i want use this speaker with

thanks

I’ve been playing with the following two forks:

https://github.com/jorgenkraghjakobsen/snapclient
https://github.com/CarlosDerSeher/snapclient

I’ve got the firmware built and installed on my ESP Muse LUXE, I can mute and un-mute the DAC / Speaker but I’ve not managed to get playback working yet. I’ll keep tweaking at it but in theory it should “Just work” with the right config.

There’s also a specific issue where someone asks the question about Raspiaudio https://github.com/jorgenkraghjakobsen/snapclient/issues/27

I’ve also noticed the Luxe seems to use ES8388 as an Audio codec compared to the MAX98357A which is used on the MUSE Proto. This doesn’t seem to be supported yet which is probably where my issues are coming from.

Further update I’ve compiled https://github.com/CarlosDerSeher/snapclient setting the board to ESP32 LyraT V4.3 and this pretty much works “out of the box” (The pinouts all match etc) I haven’t tested buttons etc. However from the WebUI playback, volume etc works so that’s good enough for now.

If I might ask, what is the benefit of using Snapcast over Squeezelite?

I can’t say I’ve investigated Squeezelite, Snapcast ‘just worked’ in creating a Sonos replacement for me. I can pipe in audio from one place and have it come out of another, and optionally mix and match inputs and output zones with synchronised playback as needed.

There is a thread on the authors Github discussing comparisons between Snapcast and Slimserver which maybe useful to answer this question: https://github.com/badaix/snapcast/issues/600

Thanks, in you setup for example, what are you using as a server?

I don’t use a sever in the traditional way as could be described in a setup like this. I have “Inputs”, “Outputs” and a “Controller”

To expand on this, for inputs I have:

For outputs; I have several Raspberry Pi’s either with their own Amplifiers and speakers or working to feed AV Receivers, Sound Bars, etc, or as the latest edition the ESP Muse Luxe which will come out to the barbecue with me when I’m cooking.

Controlling all these I have a bunch of custom built controls and routines in Home-Assistant which I can get to from my phone to pipe music or sound, I.E I may wish to listen to the MotoGP outside while someone else may have music in the kitchen. Usually it ends up that if i’m having a bit of a get together all the ground floor devices are playing the same music at the same time.

Edit: Forgot to say that all of this is tied together under the hood using https://github.com/badaix/snapcast just to be explicit.

@MindrustUK Big boss, would you be kind enough to provide installation instructions / steps for GitHub - CarlosDerSeher/snapclient: snapclient on ESP32 - on the Muse Luxe?

Hi @LatherConch

Here’s some loose instructions that get the device going, at present the device buttons don’t work. I plan on re-visiting that when I get some time and setting up some CI / CD scripts so I don’t have to keep rebuilding by hand, and later fixing the buttons.

Pretty much as per the instructions under installation on: snapclient/README.md at master · CarlosDerSeher/snapclient · GitHub

  • clone: git clone https://github.com/CarlosDerSeher/snapclient
  • cd snapclient
  • git submodule update --init
  • Copy the lyrat 4.3 config: cp sdkconfig_PSRAM_lyrat_v4.3 sdkconfig
  • Setup the IDF docker image https://github.com/CarlosDerSeher/snapclient/blob/master/doc/docker_build.md
  • Launch the IDF build docker: sudo docker run --rm -it -v .:/project -w /project -v /dev:/dev --privileged espressif/idf
  • Configure anything you need here:
    • I think the partition table is already set, but I do remember having to tweak it a little bit.
    • Snapclient configuration / or use mDNS
    • Wifi configuration or use the wifi provisioning provided by esp idf.
  • Build the binaries: idf.py build

If all goes well you should have a complete build, you can then use something like esptool to flash using something like:

`esptool.py -p /dev/ttyUSB0 -b 460800 --before default_reset --after hard_reset --chip esp32  write_flash --flash_mode dio --flash_size detect --flash_freq 80m 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin 0xd000 build/ota_data_initial.bin 0x10000 build/snapclient.bin 0x370000 build/storage.bin`

The Muse should now appear in your snapcast installation.