ESP32’s Dev Framework Reaches 2.0

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.

22 thoughts on “ESP32’s Dev Framework Reaches 2.0

  1. 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!

      1. 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

    1. … 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 …”
      ????

  2. 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).

    1. 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.

      1. 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.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.