Yes, I used a standalone AMP specifically a MAX98357 which you can see in the photo. Unlike the 2nd gen Echo the 3rd gen echo dot’s DAC/AMP is integrated into the main PCB so I didn’t even attempt to use it.
When I was searching for a SBC that could fit, I was having difficulties finding one that could handle 5 I2S streams, I didn’t realize that the ESP32C3 could handle so many I2S channels. I am interested in your PCB however, currently, I am planning to do some form of on-device voice isolation and wake-word detection. I picked up a Luckfox Pico Ultra W which is barely small enough to fit inside the dot with some modifications. It uses the Rockchip RV1106 SOC which has a built in DAC, 8ch I2S and 1 tops NPU. Unfortunately you cannot send I2S to the DAC and on the external pins at the same time.
It might not be worth the effort to get the on-device stuff working but I like the idea of it.
I’m also uncertain about the benefits of getting the DAC working. It’s possible to purchase a breakout board for the MAX98357 for around €1.60, which, while less elegant than using the onboard DAC, does simplify the wiring/programming.
After conducting some research, I’m convinced that the ESP32-S3 is the ideal choice for our needs. It features 2 I2S channels and offers TDM support. In comparison, the ESP32-C3 has only about 380kB of RAM, whereas the S3 boasts 512kB. Given that the speaker and microphone components in ESPHome are known to consume a substantial amount of RAM, opting for more memory would be advantageous.
Regarding the setup of the MAX98357, how did you configure it? Did you employ another I2S interface, or did you utilize TDM?
I (and some others) have been working on trying to repurpose the echo dot 3, and I am currently also looking at interfacing the ESP32-S3 with the mic board. I was wondering if you could share a schematic or wiring that you have as shown in the picture of your setup - I managed to figure out a few things about the boards, but this would surely help a lot.
As a side-note, we did manage to dump the flash of one of the dots and make it mountable images - perhaps there is some configuration or other information in there that is helpful.
The design is essentially the basic schematic initially introduced by SynAckFin in their first post. However, it incorporates level shifters for the I2S/I2C lines, accommodating the digital core’s maximum voltage requirement of 1.95V. Additionally, a voltage converter is employed to manage the 1.8V, 3.3V, and 3.8V power supplies. To drive the speaker, a cheap I2S amplifier from AliX is utilized. You simply require a breakout board for the ribbon cable, which will grant you access to all the necessary data lines utilized by the MCU on the Dot.
Unfortunately, I haven’t had the chance to adapt the Raspberry Pi script from Prismo for the ESP32 yet, but I hope to tackle it soon. It would be fantastic to utilize the microphone array from the Echo, as all the alternative voice assistants rely on inferior hardware and simple microphones. At the moment, there are no affordable microphone arrays available. Additionally, the casing of the Dot is quite attractive and has a professional appearance.
I finally was able to get a almost free echo Gen 2 that I have really been wanting to convert into a squeezebox running the Squeeze32-esp firmware. I like that it has the larger midrange speaker + tweeter. I am not an EE and mainly tinker, but have finally taken some time to take apart the unit and thinking of a easy to use design. For my first thought, I would love to reuse almost all of the bottom PCB, which has the power section and amp. I want to focus on the mid level PCB which houses the processor. My thought is to design a drop in replacement that interconnects to the existing base and top PCB flex cables. The drop in pcb would have and ESP32-WOVER, which would feed a PCM5102 I2S DAC (a configuration supported by squuezelite). Then analog down to TPA3118. I would have to figure out how to best plumb in the other controls that can be used on the Squeezelite.
I am working on learning kicad to start laying this out. but since I am new to PCB design, it might take some time.
Before diving in, any thoughts on the practicality and level of effort needed for this? I am hoping others could use it as well to repurpose the Gen 2.
That sounds like a solid plan. The biggest challenge will be configuring the registers for the TLV320ADC3101 correctly. From a hardware perspective, it’s not overly complicated, but you will need multiple voltage levels (3.8V, 3.3V, and 1.8V).
I would recommend against using the ESP32-WROOM module; the ESP32-S3 seems like a better fit due to its support for TDM, which the TLV devices utilize. However, I’m not entirely certain how critical TDM support is for the ESP32 in this context, but it’s worth considering since the TLV devices communicate using TDM.
For the PCBs, I suggest using JLCPCB for both fabrication and assembly. The connector for the flat ribbon cable can be particularly difficult to solder by hand, and JLCPCB offers very competitive pricing for assembled PCBs. Additionally, there’s a fantastic add-on for KiCad that makes it easy to source parts from JLCPCB.
Thanks for the great info! Dumb question, but TDM I am assuming is time division multiplexing. Thanks for the heads up on the S3 for utilizing TDM. I think the connection to the ADCs for the mics was a secondary thought and I had not put much thought into that.
Thanks for the info on JLCPCB. This is a new domain for me and its good to get these tips.