With the many number of ways to develop on the ESP32 I wanted to find the clear choice for my needs. Below is my take on the situation, and my choice.
Bare Bones ESP-IDF
The ESP-IDF is the development kit provided by Exspressif itself. It works great, gives you access to all the features and functionality possible. But… It’s C, so unless you are a C whiz, it’s probably not the best choice.
For IDEs, you can use it from Eclipse easily as well as from the command line. It comes with lots of examples as well. Many other development platforms for the ESP32 use the ESP-IDF at their core.
For example, all of these systems deploy some kind of operating system as part of the flashing process. I suspect that it is usually the FreeRTOS distribution that is in the ESP-IDF, but I don’t know for sure yet. The exception is definitly Simba, Simba is it’s own RTOS.
As always, the Arduino IDE is there, and works. However, access to BLE isn’t built into the Arduino dev kit for ESP32 yet. If you know Arduino it’s probably your best bet for getting things up and running.
Is quite nice, but you have to pay for it… Bummer.
While this appears to work, I find platform.io confusing and difficult to use. I am sure if I got over the learning curve I could get into it, but for now, I’m exploring other options.
There appears to be a number of MicroPython tools for the esp32. Here is a short list: http://docs.platformio.org/en/latest/platforms/espressif32.html
Simba is a tool that provides a common platform that Applications then run on. Think of it like a very stripped down Linux for the esp32 (actually, consider it a RTOS for different micro controllers since that is what it is. Although the platform could be language agnostic and there is Pumbaa, which is a tool to run Python on Simba.
Similar to the ESP-IDF, Simba can run on it’s own or in the Arduino or Platform.io IDEs.
Simba looks interesting but I don’t grasp the benefits yet, other than the write once, run in many places part.
MicroPython on top of Simba.