Are you also curious to learn a bit more what is going on behind the scenes at Espressif, the company manufacturing the ESP8266 and ESP32 chips? My friend Marcel Stör (frightanic.com) and I compiled a list of questions to Ivan Grokhotkov (@i_grr), Director of Software Platforms at Espressif. Ivan is one of the main drivers behind the ESP8266/Arduino project. Early in 2016 he joined Espressif and moved from St. Petersburg, Russia to Shanghai to support their software team. Before Espressif Ivan worked for SPB TV, a manufacturer of set-top boxes and for Intel in Russia.
Hi Ivan. Thank you for agreeing to this interview. Let’s start with the ESP8266. What was your first project you ever built with the ESP8266 and what was the reason you got involved with the ESP8266/Arduino project?
My first project for the ESP8266 was the AT protocol library (github.com/igrr/atproto), which I have started as an attempt to replace Espressif’s AT application with something less quirky. When I had started writing atproto, I thought I would implement both ends of AT protocol — DCE and DTE. When atproto was mostly feature complete, I have started pondering how to accommodate the asynchronous nature of the protocol in a sequential program, running in a system without threads or tasks. Toying with different approaches with coroutines, looking at other implementations, I have gradually come to realization that I can implement similar sequential API on the ESP8266 itself, without going through the trouble of handling AT commands. At that time I was mostly using mbed for my hobby projects, so naturally my first choice was to write an API layer similar to mbed on top of ESP8266 non-OS SDK. That was October 2014, and the RTOS SDK wasn’t out yet.
Mbed turned out to be quite ARM-specific (although upon revisiting mbed internals year later, I think my first impression wasn’t correct), so I turned to Arduino, which I have never personally used up to that point.
Writing the basics of the Arduino core wasn’t as hard as packaging everything together. I think I have learned a lot at that time. There were a few people who were kind enough to beta test the early Arduino environment for me during the first few months. During winter 2015 I have gradually lost interest in the project; it was only in April when Richard (who maintains the esp8266 community forum) has encouraged me to release the code publicly. All the rest is (commit) history.
Lots more insightful Q & A here at squix blog.