Alexa, Amazon free?

What a time to be alive! Smart stuff everywhere. Your television, the light, temperature – every day the amount of „smart“ things increases. First they were controlled with buttons. Nowadays you can use an app for almost everything. The next step? Of course – your voice. Every „big player“ has its own voice assistant. The problem of all those assistants is, that they claim to require internet to work. Thanks to companies like Snips you can show that this is not true as the whole recognition and most of the actions work without any internet at all. I build an offline smart speaker with a Raspberry Pi 3 A+ and Respeaker 4Mic-Array which is working really nice. The only problem in this setup is the super-low WAF 😄.

Digg inside Echo Dot

According to statistics, Amazon has a market share of over 50%. The designers from amazon did an amazing job – high WAF, appreciated. You can buy an echo dot, which is a tiny box. Depending on its generation it has several microphones, LEDs, buttons, a speaker and rotation input. I was able to get some cheap „broken“ 2nd gen dots. Thanks to several teardowns the main parts are already well known:

There are some unknown ICs, but let’s ignore them for now. I searched for a GND pin and measured every testpoint on the top board which holds the microphones and LEDs. The bottom mainboard uses a DAC to connect to a speaker. Let’s skip them for now, too. This is what I found on the top board:

Test pointVoltageICPinNotes
TM011.5V0V while minus-button pressed
TM021.8V0V while plus-button pressed
TM031.8V
TM043.3V
TM053.3VIS31FL323636SDB (Enable) of LED Controller
TM06***I²C SDA
TM07***I²C SCL
TM08*TLV320ADC31012I²S WCLK
TM09*TLV320ADC31011I²S BCLK
TM10*TLV320ADC31013I²S DOUT
TM113.3VTLV320ADC310122IOVCC
TM123.3V
TM131.8VTLV320ADC310123DVCC
TM141.8V
TM153.3V
TM163.3VTLV320ADC310138AVCC (+LEDs)
TM17GND
TM18GND
TM19GND
TM20GND
TM21GND
TM22GND
TM231.8VTLV320ADC31014RST
TM24*Bus / Microphone?
TM25GND
TM26GND3.3V when microphone „disabled“
TM273.3V2.3V when microphone „disabled“
TM283.3V2.3V when microphone „disabled“
TM32GND
TM331.5V0V when minus-button pressed
TM341.8V0V when plus-button pressed
TM351.8V0V while circle-button pressed
TM362.3V
TM371.8V
TM381.5V
TM392.3V
TM401.8V
TM411.5V
TM421.8V
TM432.3V
TM441.5V
TM45*Bus / Microphone?
TM462.3V
TM471.8V
TM482.3V
TM491.5V
TM501.8V
TM511.5V
TM521.8V
TM532.3V
TM541.5V
TM552.3V
TM561.8V
TM572.3V
TM581.5V
TM591.8V
TM601.5V
TM611.8V
TM622.3V
TM631.5V
TM642.3V
TM651.8V
TM662.3V
TM67*Bus / Microphone?
TM681.8V
TM69*Bus / Microphone?
TM701.8V
TM712.3V

Raspberry Pi everything

Amazon is really kind to us – the I²C-Bus talks with 3.3V. Let’s plug 3.3V, GND, SDA and SCL and check, what a bus scan gives us with:

i2cdetct -y 1

0123456789ABCDEF
00
1018191A1B
20
303F
40
50
60
70

Uh, nice. Five devices. According to the datasheets 0x18 – 0x1B are the four ADCs of the microphones and 0x3F is the LED controller. That was easy! Let’s check the datasheet and send some data to the LED controller. Sadly no luck. After some research of the datasheet I had to enable the controller by setting 3.3V to the SDB pin. Why does the chip respond via I²C when it is not enabled? 😠 After adding 3.3V to the PIN, I really was able to control the LEDs of my Echo Dot.

Accessing the Echo Dot LEDs with a raspberry pi

Also I used a MAX98357 I²C sound card with integrated amplifier. Since the Dot exposes its speaker pins within the case, the access was really easy. I can listen to music via my Dot. Only the microphones are missing. The ADCs have to be powered with 1.8V – where I don’t have capable supply. I ordered one and have to wait for them. After that I’ll try to access the microphones. Maybe I can really use them with Snips. We’ll see.

Or – even better – did anyone ever do this? The only results I get searching for this is how to install Alexa on your raspberry pi…

10 Gedanken zu „Alexa, Amazon free?“

    1. I saw this post and am watching XDA for CFW. Sadly Sonos aquired Snips and „just closed“ them without further notice. After that I did not find time for more investigation. At least I can tell that a Pi Zero fits into an Echo Dot and is (was) capable to run Snips voice recognition. At least with Snips you could also just use the device to record the voice and let the parsing happen on a more powerful device. If my time allows, I want to check out https://github.com/rhasspy/rhasspy as an alternative to Snips.

      1. I also had the idea with the Pi Zero and researched a bit, it seems it is totally capable of I2S (and of I2C of course), which should be enough to talk to the upper board, including LEDs, microphones and buttons (with some GPIOs maybe).
        On the other hand you end up with 4 buttons, a LED ring and _7 microphones_ in the Linux system of your Pi Zero… I doubt it is powerful enough to run ODAS and you might want to avoid streaming 7 audio channels through your network.
        So my next idea would be to increase the height of the Dot to fit a Raspberry Pi 4 _vertically_, which should have enough processing power. Either 3D-print a housing for that or use a soup can xD
        I’d love to work on it, but I’m afraid that won’t happen anytime soon

  1. I know that it has been a while but thank you for starting this effort.

    I am going to begin work on this effort and was wondering if you have had any opportunity to get further along with your efforts.

    I am also aware that snips was sold to Sonos but I believe I have another solution that will work form a software standpoint if I can get the hardware working.

      1. Hi, was wondering if you ever had any luck getting the microphone array to work, and if so if you could add some steps? If not, what did you wind up purchasing to power the ADCs @ 1.8v?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert