This project is for stereo wifi speakers with perfect multi-room synchronization (like Sonos) powered by USB Power Delivery. It's loud enough for a small party. The provided PCBs are connected together into a 2-layer stack that fits into a 3D-printed enclosure.
I am very happy with the audio quality of the amplifier.
Note that the PCB has been on Github for a while, but contained in the esphome repo. I hope to migrate to Sendspin as soon as the code makes it into ESPHome stable and have taken the opportunity to restructure into separate repositories.
- 43W amplifier with great audio quality
- Powered by USB Power Delivery, which means any Type C laptop charger can be used to power the speakers at full power. Also works at 5V, with a normal phone charger at limited power
- Two RGB LEDs on board as status indicators
- One button for any use, e.g. mute
- Two microphones for voice assistant capabilities
- Connector for external 5V addressable LEDs (max. 1A, about 20 LEDs) with load switch
- ESP32-S3 is programmable via the type C port without any adapters
- ESD protection
The Amplifier used is a TAS5827, a 43-W stereo digital-input Class-D amplifier, which can be configured via resistors, greatly simplifying the software side of the project.
The footprint of the TAS5825M is exactly the same, but it requires initialization via I2C. My recommendation is to go with the TAS5827, as it supports both HW mode (resistors) and I2C.
The microcontroller is a ESP32-S3, which runs squeezelite-esp32. Initially, additional functionality, e.g. LEDs & microphones, were planned, but I ended up not using them. That means that some of the pads, PCB sections, etc., are overkill for a simple wifi speaker.
However, Sendspin is making great progress on integrating multi-room synchronization into ESPHome, so once that matures, I will switch over to Sendspin. I plan to make better use of the LEDs and microphones to go more in the direction of a fully integrated voice assistant.
Both boards have 2mm headers that fit together.
Then spacers are used to assemble them into a stack.
To use the case, you have to first put the amplifier board into the case, fit spacers, then the control board, more spacers, before fitting the lid of the case.
I also created a case for the project. It is a Nylon case, which has a higher temperature resistance than some other materials.
It fits well, but if I had to do it again, I'd ensure that the amplifier-controlboard stack can be inserted already assembled, instead of assembling it one-by-one in the case.
The information provided here is for informational purposes only. Use it ENTIRELY AT YOUR OWN RISK. There are known issues with the PCBs provided here.
- Soldering the 2mm headers is quite hard, as I did not use thermal reliefs on the header pins.
- WiFi reception is not perfect, and the speakers sometimes drop off the network. I am not sure what the exact reason is, so it could be the hardware / software / or my specific environment.
- Update: This issue has become significantly better since I have migrated to a different wifi access point. So it's probably due to wifi reception.
- Update 2: I installed ESPHome on one of them and used it as a media player. I have no issues whatsoever with this one.
- The USB-PD chip is overkill. A more simple one that just requests a specific voltage depending on some resistors would be sufficient.




