ESP32 Alexa Smart Speaker
-
- Posts: 263
- Joined: Sun Jun 19, 2016 12:00 am
ESP32 Alexa Smart Speaker
Finally found the time to release it. It still has quite a few bugs, but it works.
You can now ask Alexa stuff with an ESP32.
Heres the code: https://github.com/MrBuddyCasino/ESP32_Alexa
The documentation still needs a lot of work. Hope its not too cryptic.
You can now ask Alexa stuff with an ESP32.
Heres the code: https://github.com/MrBuddyCasino/ESP32_Alexa
The documentation still needs a lot of work. Hope its not too cryptic.
Re: ESP32 Alexa Smart Speaker
BuddyCasino, impressive and amazing! Very nicely modularized.
This is a great project to learn HTTP/2
I see you have two different clients to manage http2 sessions, one using mbedTLS and the other using BearSSL with asio.
Few comments and questions:
1. Your asio/registry seems complex... almost like a cooperative scheduler. Was there no simpler alternative, such as FreeRTOS tasks? I am guessing you did this due to using BearSSL?
2. Did you try http2 via cURL? The Alexa documentation seems to recommend this route...
Thanks
This is a great project to learn HTTP/2
I see you have two different clients to manage http2 sessions, one using mbedTLS and the other using BearSSL with asio.
Few comments and questions:
1. Your asio/registry seems complex... almost like a cooperative scheduler. Was there no simpler alternative, such as FreeRTOS tasks? I am guessing you did this due to using BearSSL?
2. Did you try http2 via cURL? The Alexa documentation seems to recommend this route...
Thanks
-
- Posts: 263
- Joined: Sun Jun 19, 2016 12:00 am
Re: ESP32 Alexa Smart Speaker
Thanks. I would have been happy to have such nghttp2 examples, glad someones finds it useful. Took weeks to get it right.
At first I used FreeRTOS tasks, which was simple and clean but I needed deep stacks and that consumed too much memory. So unfortunately I had to make an event loop and get into callback hell. Its not even evented, its just busy polling.
That could be improved by making it evented and introducing proper state machines, but at that point I was exhausted.
EDIT:
> 2. Did you try http2 via cURL
I didn't try that because I suspect that it will exceed my memory limits. I might be wrong though. Also I wanted to learn the HTTP/2 protocol and how evented I/O works.
At first I used FreeRTOS tasks, which was simple and clean but I needed deep stacks and that consumed too much memory. So unfortunately I had to make an event loop and get into callback hell. Its not even evented, its just busy polling.
That could be improved by making it evented and introducing proper state machines, but at that point I was exhausted.
EDIT:
> 2. Did you try http2 via cURL
I didn't try that because I suspect that it will exceed my memory limits. I might be wrong though. Also I wanted to learn the HTTP/2 protocol and how evented I/O works.
Re: ESP32 Alexa Smart Speaker
This is a really awesome work.
Do you have a SPI RAM connected to your setup/ if so, whats the size?
Also, would this code work on ESP 32 WROOM which has just 520KB RAM?
Do you have a SPI RAM connected to your setup/ if so, whats the size?
Also, would this code work on ESP 32 WROOM which has just 520KB RAM?
-
- Posts: 263
- Joined: Sun Jun 19, 2016 12:00 am
Re: ESP32 Alexa Smart Speaker
It works with the stock Wroom module, no extra RAM required.
Re: ESP32 Alexa Smart Speaker
Hi,
I find in the source from you github that you have used the PSRAM module as FIFO for the mic input and mp3 output. So, really no external RAM is needed? Or I have mistaken something else?
Thanks for your generous help.
Best Regards'
Leo.
I find in the source from you github that you have used the PSRAM module as FIFO for the mic input and mp3 output. So, really no external RAM is needed? Or I have mistaken something else?
Thanks for your generous help.
Best Regards'
Leo.
Re: ESP32 Alexa Smart Speaker
Just a little demo
https://youtu.be/3VkszFgxXfg
https://youtu.be/3VkszFgxXfg
-
- Posts: 60
- Joined: Mon Jun 26, 2017 5:36 am
Re: ESP32 Alexa Smart Speaker
Your project is awesome somehow I got a work to make it do in micro python. So I am looking for how ESP32 talks with AVS or Alexa? This process needs to be understood first for me. I am not sure how far I can do it in uPython.
Thanks.
-
- Posts: 1
- Joined: Wed Aug 01, 2018 8:37 pm
Re: ESP32 Alexa Smart Speaker
Your project is awesome. But every 10 minutes it's rebooting . Let me know how to fix this issue.
see log below.
I (671272) alexa: frame received: 7
Guru Meditation Error: Core 1 panic'ed (LoadStoreError)
. Exception was unhandled.
Core 1 register dump:
PC : 0x401b91cb PS : 0x00060830 A0 : 0x800ebc79 A1 : 0x3ffd0090
0x401b91cb: xorbuf at C:/esp32/ESP32_Alexa/components/bear_ssl_component/../bear_ssl/src/symcipher/
aes_ct_ctr.c:45
A2 : 0x40000000 A3 : 0x3ffd0290 A4 : 0x00000052 A5 : 0x6bf9ff52
A6 : 0x0b090f02 A7 : 0x23022003 A8 : 0x27f8404a A9 : 0x0000001f
A10 : 0x30c54e90 A11 : 0xf0f0f0f0 A12 : 0xae8626c7 A13 : 0x00050e00
A14 : 0x0e060607 A15 : 0x0708000a SAR : 0x00000010 EXCCAUSE: 0x00000003
EXCVADDR: 0x40000000 LBEG : 0x4000c2e0 LEND : 0x4000c2f6 LCOUNT : 0xffffffff
Backtrace: 0x401b91cb:0x3ffd0090 0x400ebc76:0x3ffd00b0 0x400f4111:0x3ffd0300 0x400f435e:0x3ffd0330
0x401b8c59:0x3ffd0370 0x400e8f8b:0x3ffd03a0 0x400e93c1:0x3ffd03c0 0x400e8411:0x3ffd03e0 0x400e8441:
0x3ffd0430 0x400e7333:0x3ffd0450 0x400e73a1:0x3ffd0470 0x400e6119:0x3ffd0490 0x400d3db7:0x3ffd04c0
0x401b91cb: xorbuf at C:/esp32/ESP32_Alexa/components/bear_ssl_component/../bear_ssl/src/symcipher/
aes_ct_ctr.c:45
0x400ebc76: br_aes_ct_ctr_run at C:/esp32/ESP32_Alexa/components/bear_ssl_component/../bear_ssl/src
/symcipher/aes_ct_ctr.c:98
0x400f4111: do_ctr at C:/esp32/ESP32_Alexa/components/bear_ssl_component/../bear_ssl/src/ssl/ssl_re
c_gcm.c:118
Thanks,
Kumar
see log below.
I (671272) alexa: frame received: 7
Guru Meditation Error: Core 1 panic'ed (LoadStoreError)
. Exception was unhandled.
Core 1 register dump:
PC : 0x401b91cb PS : 0x00060830 A0 : 0x800ebc79 A1 : 0x3ffd0090
0x401b91cb: xorbuf at C:/esp32/ESP32_Alexa/components/bear_ssl_component/../bear_ssl/src/symcipher/
aes_ct_ctr.c:45
A2 : 0x40000000 A3 : 0x3ffd0290 A4 : 0x00000052 A5 : 0x6bf9ff52
A6 : 0x0b090f02 A7 : 0x23022003 A8 : 0x27f8404a A9 : 0x0000001f
A10 : 0x30c54e90 A11 : 0xf0f0f0f0 A12 : 0xae8626c7 A13 : 0x00050e00
A14 : 0x0e060607 A15 : 0x0708000a SAR : 0x00000010 EXCCAUSE: 0x00000003
EXCVADDR: 0x40000000 LBEG : 0x4000c2e0 LEND : 0x4000c2f6 LCOUNT : 0xffffffff
Backtrace: 0x401b91cb:0x3ffd0090 0x400ebc76:0x3ffd00b0 0x400f4111:0x3ffd0300 0x400f435e:0x3ffd0330
0x401b8c59:0x3ffd0370 0x400e8f8b:0x3ffd03a0 0x400e93c1:0x3ffd03c0 0x400e8411:0x3ffd03e0 0x400e8441:
0x3ffd0430 0x400e7333:0x3ffd0450 0x400e73a1:0x3ffd0470 0x400e6119:0x3ffd0490 0x400d3db7:0x3ffd04c0
0x401b91cb: xorbuf at C:/esp32/ESP32_Alexa/components/bear_ssl_component/../bear_ssl/src/symcipher/
aes_ct_ctr.c:45
0x400ebc76: br_aes_ct_ctr_run at C:/esp32/ESP32_Alexa/components/bear_ssl_component/../bear_ssl/src
/symcipher/aes_ct_ctr.c:98
0x400f4111: do_ctr at C:/esp32/ESP32_Alexa/components/bear_ssl_component/../bear_ssl/src/ssl/ssl_re
c_gcm.c:118
Thanks,
Kumar
Who is online
Users browsing this forum: No registered users and 10 guests