Previously we’ve used the ESP32 and are really impressed.
Normally when you start getting into encrypted web standards with a device, using a microcontroller starts clearly becoming the wrong tool for the job. Indeed, twice we have become involved with projects that started as microcontroller but out grew it and were moved to GNU/Linux.
Generally, the world of microcontroller is often not very nice from the developer freedom perspective. It is normally focused around a vendor’s specific closed source IDE. It’s not just the software tools being vendor specific, but the SDK is often a world of it’s own. This is all deliberate. It’s to vendor lock people in by making them invest their time learning the vendor’s world. After that, people end up using the vendor’s chips even when the are expensive or ill suited for the job.
Often there isn’t many mature libraries available and you end up having to write a lot of stuff or port it to the micro you using.
The ESP32 and it’s IDF/SDK is a real eye opener. It’s an example on how to do it. Yes, it’s not just another ARM or MIPs, but it is just the normal GNU Toolchain. It’s all Makefiles or CMake depending on your preference. At the lower levels you often find this with other microcontrollers as a great deal of people are used to Make and GNU Toolchain. However with the ESP32 this isn’t hidden away. The IDF/SDK is based round tried and tested FreeRTOS but it is wrapped up to look like a POSIX/Linux interface. They have written a PThread implementation for FreeRTOS and they have mapped stdin and stdout to the debug serial. Sockets are just Berkley Sockets like anywhere else. Now all this is quite exciting. It makes porting libraries from the Linux/Unix world much easier. Indeed, their SDK (IDF) has a lot of what you could ever need for IoT devices already ported and included.