Overhaul - Update to build with ESP-IDF 4.4.5#50
Overhaul - Update to build with ESP-IDF 4.4.5#50dlizotte-uwo wants to merge 21 commits intoadafruit:masterfrom
Conversation
|
There are two commits after this PR, one to configure the ESP32 in the right order when joining a network (previous arrangement would always fail to connect once before successfully connecting) and the other to update the cert file with the new AIO certificate and to remove all certs that have expired. Saves max RAM used during SSL handshake. |
|
Thanks @dlizotte-uwo for the update. (I am not a maintainer or contributor to this repo, I'm just interested in using this firmware on different Espressif microcontrollers.) I like that the changes here adopt the "components" from the ESP-IDF build system design. I recommend splitting the |
Move arduino-esp32 to a submodule
|
current master builds with idf v5.3.2 now #70 . This can now be closed. Thank you for your effort. |
I wasn't able to connect to my work wpa2-enterprise network with version 1.7.4 and I started investigating and one thing led to another and I ported the whole thing from esp-idf 3.3.1 to esp-idf 4.4.5 because it literally refused to build on my M2 air. WPA2 enterprise (and regular) works; I have not tested bluetooth. I'm calling the new version 2.0.0alpha because it's a pretty substantial overhaul - the whole build system changed from 3 to 4 and now uses cmake. I also moved the WiFi and SPIS libraries into a minimal
arduino"component," (as they are called in esp-idf) with supporting code copied in from thearduino-esp32component. I don't know if the risk/reward is worth it for the adafruit/nina-fw maintainers and users to integrate this change; happy to discuss.I have run all of the esp32spi examples from that repo using an AirLift Featherwing into a PyGamer; output is below.
Edit: I discovered later that the existing nina-fw can't open more than one TLS session at a time, due to memory constraints. Upgrading to esp-idf 4.4.x enables configuration of mbedtls to use dynamic buffers, which lets at least two (probably several I haven't tested for max) sessions to be opened reliably. Could be useful for more advanced users on like a Metro M7 Airlift. (I'm using it on a MatrixPortal M4 to have mqtt open and occasionally fetch data from other places.) I have a fork of Adafruit_CircuitPython_ESP32SPI that enables this.
Test notes
esp32spi_aio_post.py
I forgot to create a 'test' feed in my adafruit IO account but it connects fine.
esp32spi_cheerlights.py
esp32spi_ipconfig.py
esp32spi_localtime.py
esp32spi_simpletest.py
esp32spi_tcp_client.py
Note wifitest.adafruit.com does not respond to pings.
esp32spi_udp_client.py
server/esp32spi_wsgiserver.py
Works in safari but not chrome
Could not test GPIO
esp32spi_wpa2ent_simpletest.py - v1.7.4
esp32spi_wpa2ent_simpletest.py - v2.0.0alpha
ESP32 SPI WPA2 Enterprise test
ESP32 found and in idle mode
Firmware vers. 2.0.0alpha
MAC addr: ['0x80', '0xab', '0x58', '0x93', '0x17', '0x44']
Connecting to AP...
...
Connected to eduroam RSSI: -74
My IP address is [REDACTED]
IP lookup adafruit.com: 104.20.39.240
Ping google.com: 8 ms
Done!
esp32spi_wpa2ent_aio_post.py - v2.0.0alpha