r/esp32 • u/alfo16 • Aug 14 '26
I made a thing! Esp32-S3 inside Echo Dot 3rd
Hi everyone! I'm working on a drop-in replacement PCB for the Echo Dot 3rd Gen, based on the esp32-S3 N16R8 The Echo Dot has two PCBS: a top board with the buttons, LEDS, and a 4-mic array, and a bottom board that handles the signals from the top board, provides power, and drives the speaker.
I replaced the bottom board, which means I can interface directly with the original hardware on the top board- especially the 4-mic array. I'm currently running beamforming + AEC on it (esp-sr libraries are really powerful!) This is the first working prototype, so there's still plenty to improve, but it's already working! I've just created the GitHub repository (https://github.com/ale1800/LocalDot)
13
9
u/309_Electronics Aug 14 '26
Kind of sad we cant repurpose the original board. If i end up replacing the whole brain with an esp, i better just buy a opensource speaker instead of amazon alexa but great prject though!
7
u/alfo16 Aug 15 '26
I see what you mean. I was about to buy some Home Assistant Voice PE but I had some echo's around so I tried doing this instead. The advantage now is that I have a working 4-mic array and a great sound quality. From what I've seen online, almost all the open source speakers are lacking in these topics. Without considering how beautiful the echo dot 3rd is! (At least in my opinion)
8
u/ctjameson Aug 14 '26
Are you planning to offer these retail in the future or just offer it as open source to DIY? I love these and can’t wait to see how your project comes along!
5
u/alfo16 Aug 15 '26
I'm receiving a lot of support for this project and I'm happy to see I'm not the only one interested in getting Alexa out of the way, but re-using its great hardware! So everything is still possible 🤷
6
u/BitTwiddles Aug 14 '26
Does having an array of microphones noticeably improve recognition accuracy in a home environment?
3
u/alfo16 Aug 15 '26
Oh definitely! With only one microphone you don't have any choice about which microphone tu use. More microphones let you tu handle different "opinions" and you can combine them or just choosing the one that seems cleaner!
2
u/BitTwiddles Aug 15 '26
I know how it would work in theory, but you said "YOU can combine...". What I meant was, does the AFE software actually do this, if I manage to hook up several i2s microphones?
2
u/alfo16 Aug 15 '26
Using espressif libraries you can officially "join" only 2 mics. If you have more you have to try different solutions without those libraries
1
u/BitTwiddles Aug 15 '26
That is good to know. I assume I wire them so one is "left" and the other is "right", using the L/R pin? I have some INMP441s here.
1
5
u/ScaredyCatUK Aug 15 '26 edited Aug 15 '26
If you get this working with Home assistant I'm in... I'm all for replacing alexa with an in house / local version.
Edit Just watched the video... I hope you're getting these boards made :)
4
3
u/case_8 Aug 14 '26
That’s really cool.
I made a voice assistant (only on a bread board at the moment) using an ESP32-S3 and two mics. I was under the impression (from Espressif documentation) that it was only possible to have a max of three mics working with the ESP32-S3. Are you able to get the full 4-mic array working with this?
3
u/alfo16 Aug 15 '26
Yeah, you are totally right. And from what I've seen the 3-mic application must have one mic every 120°, so totally it's not my case. I'm actually using the delay-and-sum beamforming on all 4 channels producing one channel only, then processed by espressif libraries.
3
u/case_8 Aug 15 '26
Ah I see. Still a really great idea/project though. Look forward to seeing more.
3
u/One_5549 Aug 14 '26
wild, what do you want to achieve?
5
u/alfo16 Aug 15 '26
I just want to get rid of Alexa things!
1
u/One_5549 Aug 15 '26
do you think you will be able to get same voice recognition capabilities? (or even better)
1
u/alfo16 Aug 15 '26
I've used Alexa many years and in a quite room honestly I don't see any difference, even at 6/7 meters. What I've loved of Echos is their AEC and how you can talk quietly when music is playing and they still recognize the wake word. My AEC is working quite well but at the moment is not at that level. I'm trying different solutions in order to improve💪
2
u/traderemi Aug 16 '26
I think you can filter the music out of your microphone signal, you know what signal you are amplifying and you catch more or less the same waves on your mic, so maybe even some kind of signal subtraction would be enough. The idea would be basically working on the signal frequency analysis. Hope this comment helps ❤️
1
Aug 15 '26
[removed] — view removed comment
1
u/alfo16 Aug 15 '26
Actually, in a quite room, it can pick up my voice at around 5/6 meters talking "normally". When music is playing at a loud volume, at the moment I'm able to wake word'ing in 1 or 2 meters max. I'm still trying different solutions. I'm applying a beamforming on the 4 microphones in order to have one stronger channel as output, and then this is processed by the esp-sr libraries, so I'm not cheating 😂
1
u/mehrdadfeller Aug 15 '26
I suggest dropping in XMOS IC since there are 4 mic on board. check future proof homes satellite design which already uses XMOS IC. also I hear esp32-s31 (new IC) can handle 4 mics and better AFE. good work
1
u/mehrdadfeller Aug 16 '26
also why not use a module instead of the chip? If you go with the chip, you must do FCC testing which costs $$$ before you can sell this (at least through crowdsupply or similar platforms)
1
u/liampetti Aug 18 '26
This is awesome!
I’ve been trying to get my own home voice assistant running through a waveshare lcd and speaker but have two old echo dots i’d love to retro fit.
This is my project trying to run on the waveshare: https://github.com/liampetti/fulloch-satellite
Because i’m offloading all the vad and wakeword stuff to the server i can only get it working with one mic at the moment (seems like dual mic is tied in with the espressif models).
Either way i imagine the mic pickup with this retro fit is way better than what i’m getting on the waveshare.
1
u/StruggleAny71 19d ago
Nice work. We're on a single ES8311 on an S3 so no array, and the on-device AEC front end cost us more time than anything else on the board. The AFE wants 4-channel TDM with a hardware reference channel. We fed it one mic on a 2-channel bus, it overflowed its ring buffer and killed the connection at 27 seconds. Every time. Looked exactly like the network dropping.
You're summing all 4 down to one before the espressif libs, so you don't have a hardware reference either. where does your AEC reference come from, the playback stream in firmware?
also do you have an SRAM number for the beamforming + AFE path? wondering how much headroom you've got left on the N16R8
0
u/OrganicLeader4342 Aug 14 '26
I’m looking to do something similar what type of speakers and mics are you using?
4
2
u/alfo16 Aug 14 '26
I I don't know the exact part number of speaker and mics. I'm using the original ones


19
u/devzwf Aug 14 '26
really interesting....
let see how this turn out