Home

Awesome

SqueezeAMP: an all-in-one audio sub-system

This design can be used as a general all-in-one audio subsystem, but it's specially made to match the SqueezeESP project. It includes the following:

Looking at the board, TOP refers to the side that has the WROVER module and LEFT is where the Power Jack is located

What can it do

With the squeezelite-esp32 software, you can

Tools, source and BOM

I'm using diptrace for schematics and routing which is free up to 300 pins. I had to do a few custom components and patterns, let me know if they are missing or if you cannot use the free version, I'll try to do some export to other PCB formats if needed You can order the PCB directly from PCBway here There is an excel file with is the BOM extract from diptrace and another one that points to all components from DigiKey The WROVER documentation can be found on Espressif site Download tool is here

Connectors & WROVER pin assignments

There are 3 PCB version, with a basic and a boost option for each one (see below for basic/boot differences).

All connectors are through-holes so that you can not populate them and directly solder wires if you want to use the board inside another equipment (Under parenthesis is the WROVER pin number).

<strong>Note that is no reverse polarity protection on the battery pins, so be careful as it will toast the power switch TPS22810 and probably the PCB itself. There is polarity protection on the main.</strong>

Flash download & operation

For at least initial download, you need a serial connection with ideally RX/TX/RTS/DTR and at least RX/TX. There is no build-in converter.

Connect RX/TX to J3 pin header. If you don't have DTR/boot, set the boot switch underneath (onPCB before 3.x) and if don't have RTS/reset, press the tiny reset button. After PCB 3.x, you must connect DWL to ground while resetting (simply put a wire on pin 6 of J3 and connect it to any ground)

The esp32 will enter download and you'll be able to update the software, as described on the squeezelite-esp32 site. This procedure is rarely needed as the software supports OTA update.

Don't forget to flip again the boot switch if you used it and the reset the board (or have the espressif tool do it for you), then follow the instructions here or have fun with your own software

Populating options

System is modular and you can pretty much build each sub-part independently.

If you don't want battery, don't populate charger, undervoltage detection and power OR and boost (on the boost option, see below). This is all top upper and middle right & left side of the PCB. You can short the large Schottky diode on the bottom side, but I recommend you keep it just in case.

If you don't want the amplifier, don't populate the bottom side, except for the power diode and the optical connector's decoupling capacitor (if you want SPDIF optical). In that case, note that the analogue output will not be available.

The SPDIF is always available, it just requires the WROVER module (which should at least always be here ...).

The battery connector is the angled version of the classical short 2 pins JST. You can use a longer version if you want the pins to extend a bit beyong the PCB (like the jack connector). You can also use a vertical connector here

Power options

I've been through a lot of back and forth about power. To charge 3-LiIon cells, the LT3652 requires at least 16V (Vbatt + 3.3V). But when powered with 16V, the TAS575x produces a fair bit of heat while it almost does none at 12V. Similar, the original design charging rate was 1A, but that got the LT3652 and inductor super hot, so I've reduced is to 0,66A (8W max). The rate is 0.1/R7 so you can tweak it if you want, on paper the design is capable of 1A.

When using 2 cells, a 12V power supply is sufficient which is ideal for the TAS575x, but then when used on battery the audio power is much less as the battery will provide 6~8.4V. Charging rate in that case is 0.75A.

So finally, I have 2 PCB options, the boost being the most versatile one but the most expensive as well. If you decide to not populate the battery charging, you can skip the rest of that section.

Basic design

2 cells mode is the simplest option. Power supply can be 12-20V, but 12V is recommended to optimize heat dissipation unless you want maximum amplifier power.

In 3 cells mode, the power supply must be 16-20V and a few components must be changed

In both case, if you limit the power supply to 16V, you can use 25V for all capacitors which saves a fair bit of cost for the 22µF. It does not change anything for others (indeed 50V can a be cheaper option for 100nF for example).

Boost design

This PCB option include a boost converter so that power supply can be 12V even in 3 cells modes. With that, the TAS575x is always powered with ~12V which is the ideal ratio heat/amplifier power. The boost converter will up the power supply to comply with LT3652 requirement of Vcc > VBat + 3.3V

The values of R8, R9, R11, D5 and R7 need to be set per values above if you chose 3 cells. If you want to use 2 cells, it's better to change the boost feeback resistors R12 and R18 to produce 12V only, but it's not mandatory. I don't think that using boost and 2 cells makes lots of sense, better just use basic and 12V then.

If you use that PCB and don't populate the boost converter, you can put a shunt directly between D2 and D7 anode and cathode. But then the LT3652 charger is not protected against polarity inversion ... to fix that, as D2 and D7 are separated by enough space, you can use a 0805 diode like this one ... your choice.

Understand that boost option produces more heat when charging the battery. It's inherent to the cumulated efficiency losses by boosting up Vcc then switching it down to charge battery. You might prefer to use the basic option which produces more heat on the amplifer instead. There is no perfect option.

When disconnecting main power, the battery should kick-in without interruption, but there might be cases when playing at high volume where combination of switch/capacitors will not store enough energy (un-plugging the connector creates many bounces, it's not a clean cut). This does not happen with the basic version because the power OR will always feed the system and main is 3.3V above battery. In the boost version, the power OR is not enough to select the right source as the main voltage is a bit below the battery voltage (and we don't want battery to feed the system when plugged on main), so the undervoltage switch is re-used to disconnect the battery when main is plugged. But the control of that switch might not act as fast desired. You can add a large electrolytic cap anywhere after the battery and main power OR.

The comment on capacitor voltage ratings apply as the boost is 16V only, so 25V works as it is below Vcc * 1.45

Versions

Version 2.x uses the TAS578x instead of TAS575x.The PCB change is tiny but critical as TAS578x has a reset pin that must be pulled high (direct Vcc connection, no room for a proper pull-up resistor) otherwise it does not boot. Normally, version 2.x can be used with TAS575x, providing that the TAS578x reset pin which is a GPIO in TAS575x is not driven low.

Version 3.x expands the J6 5 pins I/O connector to 8 pins and changes S2 slide switch function to select pin 6 of this connector to be either ground or GPIO2. The 6 pins header is reshuffled to allow of an OLED display without wires.

The benefit of changing J6's pin 6 to GND is, for example, to bring a GND wire to a button expansion board of your own. There is no need of Vcc as the ESP32 has optional pull-up. Still, if you want a Vcc, you can use one GPIO as a supply, with a maximum of 40mA per pin.

(Executive) Summary

Limitation & Disclaimer

This contains a power amplifier and a charger on a small board, so it gets pretty hot when used at high power. I've added a small exposed copper area where you can add a heatsink and also use a fan to help cooling down, but I cannot guarantee that this design works well and safely with continuous high volume. My own use is at moderate volume.

Similarly, the charger is for Li-Ion and such cells have inherent safety issues. It's using a LT3652, which is a good charger that takes care of battery maintenance, but there is no thermal management, so be careful and ALWAYS use protected Li-Ion cells. There is battery undervoltage detection on board so that the systems shuts off when battery voltage is too low. There is no under voltage detection for main supply.

<strong>This is by no mean a professional design so use it at your own risk. I will not be liable for any issue caused by that board</strong>. I'm making it public in case somebody with enough knowledge will find it useful, so know youwhat 're doing first. Similarly, this is not an audophile design, so please do not complain or ask me for some linear power or 32 bits / DSD insanities. The SqueezeESP software can do 16 bits @ 192 kHz which is way more than enough, in fact 48kHz/16 should be sufficient.

alt text alt text alt text alt text alt text