We’ve been watching the development of the ESP32 chip for the last year, but honestly we’ve been a little bit cautious to throw all of our friendly ESP8266s away just yet. Earlier this month, Espressif released version 2.0 of their IoT Development Framework (ESP-IDF), and if you haven’t been following along, you’ve missed a lot.
We last took a serious look at the IDF when the chips were brand-new, and the framework was still taking its first baby steps. There was no support for such niceties as I2C and such at the time, but you could get both cores up and running and the thing connected to the network. We wanted to test out the power-save modes, but that wasn’t implemented yet either. In short, we were watching the construction of a firmware skyscraper from day one, and only the foundation had been poured.
But what a difference eight months make! Look through the GitHub changes log for the release, and it’s a totally new ballgame. Not only are their drivers for I2C, I2S, SPI, the DAC and ADCs, etc, but there are working examples and documentation for all of the above. Naturally, there are a ton of bugfixes as well, especially in the complex WiFi and Bluetooth Low Energy stacks. There’s still work left to do, naturally, but Espressif seems to think that the framework is now mature enough that they’ve opened up their security bug bounty program on the chip. Time to get hacking!
If you want quickstart instructions, the files you’re looking for are in the documentation folder at GitHub. If you’re trying to manage a previous install of the ESP-IDF, you’ll note that V2.0 requires a newer version of the GCC compiler, so there’s a little work to do if you want to make it coexist with a V1.0 install. But we think you can handle it.
Oh this is excellent! I wrote a MQTT library a few months ago but never got TLS working on it. I wonder if my old code will still compile…
I think I’ll have to investigate the new developments once the school year is out. Here’s to hoping the documentation has improved!
The TLS now works. There is an example in ESP-IDF that works with AWS IOT or you may check this https://exploreembedded.com/wiki/index.php?title=AWS%20IOT%20with%20Arduino%20ESP32
Do you think there will be a Micropython version for ESP 32?
Thank you,
It already “is” available lastest commit adds support for latest ESP32-IDF
https://www.youtube.com/watch?v=-MrqCmq3Z5k
https://github.com/micropython/micropython-esp32
That was a talk on Linux conf and give a small intro in howto add C functions to micropython, which seems rather straiight forward except there is lots of boiler plate code there with functions like: mp_obj_new_in_from_uint..
But look at the neopixel implementation:
https://github.com/micropython/micropython-esp32/blob/esp32/esp32/espneopixel.c
https://github.com/micropython/micropython-esp32/blob/esp32/esp32/modules/neopixel.py
I once added a few functions to Espruino (http://www.espruino.com), a Node.js-like Javascript implementation for microcontrollers, and it was straightforward except for some special metadata comments which had to be added.
I already use it a lot on ESP8266s and I wonder when it will be ported to the ESP32.
Also, check out the Pycom boards such as WiPy, LoPy, etc.
https://www.pycom.io/solutions/
Great! To celebrate it, I have started adding the support for ESP32 in Visuino :-) Hope to have available at least partial support in the next few days :-)
when ruby run on this machine?
(m)ruby is already running.
https://github.com/mruby-esp32
“Not only are their drivers for I2C, I2S, SPI, the DAC and ADCs” *there
… or maybe in his zeal, he simply left out “working” as in, “Not only are their drivers for I2C, I2S, SPI, the DAC and ADCs, etc working, …”.
“Yes their are two paths you can go by, but in the long run …”
????
Instead of pointing to the docs folder on GitHub I would suggest adding a link to readthedocs site: http://esp-idf.readthedocs.io/en/latest/
GitHub doesn’t render much of RST markup, so the HTML version is much easier to follow.
Someone should make some Arduino examples for CAN bus.
That’d be great, Fid, thanks!
Yes, can confirm i2c is working now. I have made a pure C i2c library for the esp32 including an example running the popular 0.96′ i2c oled display using it.
https://hackaday.io/project/21410-ssd1306-oled-display-library-for-esp32
https://github.com/akbarhash/esp32/tree/master/i2c_ssd1306_example
Wake me up when there’s good and stable Arduino and Micropython support (including Websockets and MQTT clients)
It would also be nice to have the Bluetooth Classic profiles implemented… AFAIK, only BLE is currently available…
(I would like to use the ESP32 as a Bluetooth Handsfree module).
Myster D — just checked their doc’s. They do have an A2DP Client demo. Classic Bluetooth is only not implemented for host, so, you should be able to make Bluetooth speakers.
Yeah they seem to have implemented it since the 2.0 release, but it isn’t an official release yet.
Actually I’d like to use the HFP / HSP profiles.
But A2DP is a good start.
Thanks for the heads up.
Yeah. I’m so sick of BLE,. I need Bluetooth Audio. Try finding a cheap Bluetooth Classic board out there. Only thing comes to mind is the new Pi Zero/W.
Is there any kind of road map indicating when the arduino support with bluetooth will be available?