Retasking a 2nd Gen Echo

Retasking and Amazon Echo 2nd Generation.

I would like to re-use the parts of a non functioning 2nd Gen Echo (model XC56PY).
In fact I want to throw out the motherboard and replace it with a different board (Pico W perhaps) and then use it as a voice assistant/speaker.

Unfortunately, I’ve damaged the LED/Mic board while probing it with a multimeter (I think I’ve managed to short a couple of solder joints) so I’m at a standstill until I fix it. In the meantime I thought I would share what I have so others can continue.

Overview

The Echo consists of 3 separate parts.

  • Amplifier/Power board
  • Motherboard
  • Mic/LED Board

The amplifier is connected to the motherboard with a 0.5mm pitch 24 pin FFC/FPC cable. The cable itself has multiple pins shorted (ground and power) so the orientation of the cable is important. Obtaining breakout boards for these connectors is fairly easy and cheap.

The Mic/LED board is connected to the motherboard with a 0.3mm pitch 37 pin FFC/FPC cable and, once again, the cable has multiple connectors shorted. Getting breakout boards for this is more difficult and expensive.

Amplifier/Power Board

The amplifier looks to be a Texas Instruments TPA3118D2.

The board provides 3.85v to the motherboard.

So far I haven’t done much investigation of this board.

Mic/LED Board

The above circuit diagram may contain errors.

This has 36 status LEDs (12 x RGB LEDs) controlled by what looks like a Lumissil IS31FL3236A (U6) driver.

It also has 7 microphones connected to what looks like 4 Texas Instruments TLV320ADC3101 (U1,U2.U4,U5) ADCs with embedded mini DSPs.

Both the ADCs and the LED driver are controlled via I2C. The addresses are as follows (assuming I have correctly identified the chips):

Chip I2C Address Notes
U1 0x30 MK1 and MK2
U2 0x32 MK5 and MK6
U4 0x31 MK3 and MK4
U5 0x33 MK7
U6 0x7E LED Driver

The FFC/FPC connector has the following pins:

PIN NAME TYPE Notes
1 Unk Unk
2 Unk Unk
3 Unk Unk
4 Unk Unk
5 GND GND
6 SCL I/O I2C serial clock
7 SDA I/O I2C serial data
8 GND GND
9 RESET I Reset for U1, U2, U4 and U5. Low to reset
10 BCLK ? Audio data serial bus bit clock. Direction unknown
11 DOUT O Audio serial data bus output (via U101)
12 WCLK ? Audio serial bus word clock. Direction unknown
13 Unk Unk
14 Unk Unk
15 GND GND
16 MCLK I Master clock (U1 only)
17 ENABLE I Enable for U6 (SDB) and U101 (OE)
18 Unk Unk
19 GND GND
20 Unk Unk
21 Unk Unk
22 Unk Unk
23 GND GND
24 GND GND
25 GND GND
26 GND GND
27 GND GND
28 VCC VCC 3.8V for the LED driver
29 VCC VCC 3.8V for the LED driver
30 GND GND
31 GND GND
32 DVDD DVDD 1.8V for U1, U2, U4, U5, U101
33 DVDD DVDD 1.8V for U1, U2, U4, U5, U101
34 GND GND
35 GND GND
36 AVDD AVDD 3.3V for U1, U2, U4 and U5
37 AVDD AVDD 3.3V for U1, U2, U4 and U5

Once I’ve repaired my Mic/LED board I plan to capture the configuration for the ADC/DSP chips and determine what the various clock speeds are (WCLK, BCLK and MCLK). It might then be possible to build an actual voice assistant.

4 Likes

Hey there, funnily enough I’m trying to do something similar, just on a much more limited scale - smash together a working but old Echo Dot 2nd gen with the speakers/case of the 2nd gen echo plus, driving the bigger speaker via a mono amplifier module. Was trying to find out if the power board gives me 5v somewhere to power the echo dot mainboard, and stumbled upon your post. Thanks for sharing your insight and good luck!

Hi there,

I just stumbled on this. I just started researching the same topic. I am looking to use the amp board + Speaker + controls and wire to an ESP32. I can then run SqueezeESP32 and turn the speaker into a Squeezebox. I am interested in the signaling sent to the Amp. Were you ever able to determine what signaling it is? Analog, I2S, SPDIF?

From what I’ve seen the amp appears to be a Texas Instruments TPA3118D2. The signalling is analogue.

I haven’t had a chance to look at this for a couple of months but I should have some free time soon.

Hi @SynAckFin - anything to report?

Someone has given me a broken thing (as they do!), the Gen 2 Echo (tall, material covered). At the very least I would like to re-use the speaker which seems simple enough, though not sure if I can re-use the existing amp board as it seems to have more than just audio going to it via a ribbon (FFC/FPC?) cable. Or is that just power going back up to the top?

Ultimately interested in doing the same as you. :slight_smile:

Hi @Benji2020 I haven’t been able to look at this for quite a while due to some personal issues.

I have had a look at the board and 5 of the connectors are used to provide 3.8V to the other boards, 7 are used as ground. That leaves 12 remaining connectors. 4 will be for audio (L & R +ve and -ve), 1 maybe for mute, another for signalling when the jack is inserted and maybe another for volume (not convinced about this one). That leaves 5 to 7 unaccounted for. I also suspect they might be using the long ribbon connector as an antenna for bluetooth and WiFi with provision for ZigBee (Gen 2 plus has ZigBee). This would use up more of the connectors leaving just a couple unaccounted for.

At some point I do intend to get back to working on this and when I do I’ll post what I have.

@SynAckFin Hey, I just started working on the same thing for my Echo Dot 3rd Gen. It’s quite similar to the 2nd Gen Echo and has the exact same Lumissil IS31FL3236A and TLV320ADC3101. The only real differences is that the amp is on the main board and the led ring/microphone board is connected with a 39pin FFC cable.

I have been able to get control of the RGB using a FFC cable breakout board but unfortunately the configuration of the TLV320ADC3101 seems over my head (TDM and such). It looks like others have been successful in capturing the config for similar chips so if you ever get around to it let me know! Adapting the config for 2 TLV320ADC3101 instead of 4 shouldn’t be too difficult?

Lastly does the 2nd Gen Echo not have the Fairchild 74LCX74 to disable the microphones?
In terms of the other missing connection heres a good right up on the 3rd Gen Echo dot they may help fill in a gap or two: Echo Dot 3rd Gen Digging Deeper
Also the first and second gen echo dots also use the same chips

I finally stumbled back on this thread searching for something completely different. Thanks for finding the amp chip. I looked at the block diagram and definitely looks analog.

Were you ever able to see what is on the ribbon at BCLK, DOUT, and WCLK? That would be a perfect insertion point for an ESP. IS there possibly a DAC between the ribbon termination and the amp?

Hey, I have actually been working quite a lot on mine (Echo 3rd gen dot) and have almost everything working independently but with finals coming up I haven’t had the time to put everything together. I will eventually do a full write up and make a GitHub repo. In the mean time ill try to post some resources here since the 2nd gen Echo is very close in design to the 3rd gen dot.

@Prismo I did manage to capture audio from two of the microphones but it was very distorted. Unfortunately this happened after a couple of hours of experimentation and configuring the TLV by hand using i2cset and compiling a customised TLV driver, sound card driver, and DT overlay.

I haven’t replicated it because I didn’t keep accurate notes on the settings.

As for the built in linux TLV driver, it will not work with the echo board for the following reasons:

  1. There is a bug in the setup of of the D-VAL (PLL fractional multiplier) which is used to set clock rates. I have reported this but, apart from an acknowledgement, the maintainers have taken no other action.
  2. The driver can not handle more than one TLV chip with the RESET pin connected to the same GPIO, The Echo board has 4. This is because of the initialisation sequence. The TLV must have the RESET pin driven low for at least 10ns and then get setup. This means that when the second TLV gets initialised it resets the first TLV which then loses its setup. The same is true of the 3rd and 4th TLVs.
  3. The driver assumes that if there is more than one channel then there must be 2. This throws of the calculation for bitclock rates. The Echo board uses at least 8 channels. This is why I was only able to capture from two microphones and maybe the cause of the distortion.
  4. The driver has no means of setting the channel offset which is required for TDM.

Up until about July, I was developing a custom driver for the TLV together with a custom sound card driver to integrate them into ALSA but then life got in the way and I haven’t revisited it since then. The release of Home Assistant Voice PE has re-ignited my interest and will probably look at it again next year.

@kuhnto. The BCLK, DOUT, and WCLK all connect to the TLV320ADC3101.

The Echo motherboard has a MediaTek MT6323LGA chip which is mainly a power management chip but it has built in mono 0.7W into 8ohm Class AB/D audio amplifiers. It might be using these to output analogue signals into the amplifier board.

The limited amount of data I was able to find provided the following 2 quotes about the MediaTek chip:

Full-set high-quality audio feature:
Supports uplink/downlink audio CODEC and high-power/quality audio amplifier

and

MT6323 provides mono 0.7W into 8Ω, high
efficiency Class AB/D audio amplifiers and
flexibility for various applications of indicator
LED drivers. It supports up to 4 channel LEDs
with independent controlled. Flexible control
includes: register mode, PWM mode and breath
mode.

EDIT:
Ignore all of the above. The motherboard has a TLV320DAC3203 on it. It is probably the analogue output from this that is used as the input for the amplifier.