The ESP8266 chip, and the boards based around it, have been the new hot new thing this past year. Overnight it became — almost by stealth — one of the leading platforms for the Internet of Things. This runaway success quickly gathered a community, and it’s possible Espressif Systems may repeat that next year with their new ESP32 chip.
About a month ago the makers of the ESP8266 started trailing their next product. But, beyond the letter to developers, there hasn’t been a lot of information available about the new chip.
However, the company recently released some documents concerning the ESP32 module, including schematics and PCB layout, and this week — with ESP32 boards arriving into the hands of beta testers — we’ve had our first peek at the pin out for the new module.
Your ESP8266 chip has been a breakout success, and a large maker community has formed around the board in a comparatively short space of time. Did you expect its success, or did it take you by surprise?
Of course we were taken by surprise, but deep down inside we were all hoping that something like this would happen. We did discuss within the company about this, for a relatively long time, before we got around to doing this. We did this, despite not having all the resources we needed in the first place, but we were glad that the community has mobilized in a very short period to time to make this right, and we are very grateful and appreciative of the many talents that contributed to the projects.
The community has built a lot of tools, and toolchains, around the ESP8266. Did you consult with the people building them before undertaking development of the new ESP32?
The ESP8266 community has been sending a lot emails to us. We do try and satisfy all the demands or requirements of a good design. In a way, I found that the community is more proficient and erudite than commercial customers concerning tools and toolchains.
The new chip will, in addition to WiFi, also handle Bluetooth — both classic and BLE. Will this be using the same radio, or is there separate architecture in place. In other words, will the chip be able to do WiFi and Bluetooth simultaneously? What are the power implications? Can BLE be separated from Bluetooth Classic to reduce power consumption?
The new chip shares the radio between Bluetooth and WiFi. We can have both BT and WiFi to coexist; I think this is the trend in the industry now, but we do see a couple of cases which bucks the trend. Yes, we could also turn off the classic Bluetooth. Apparently, WiFi P2P is a natural replacement for data streaming functions in the classic Bluetooth and BLE is a nice convenient feature to help setup connection to the smart phone.
The announcement advertised dual processor for the new ESP32 chip, and seemed to suggest that you could have a separate processor for your application, with the other handling the WiFi. Will you be able to send the processors into sleep mode independently and wake one from the other — say wake the application processor based on a WiFi event, or the processor handling the WiFi based on an application timer or event?
We are trying out a number of models. Basically, you can power down one of the cores, and generate interrupts for the CPUs, etc.
The announcement also discussed enchanced low power functionality, including ADC and computations, while in deep sleep. Can you talk a little about how that’s going to work?
What we have, is simply very fine resolution power control; many Zigbee and BLE chips have these features and we bring them this WiFi-BT/BLE chip. For the case of ADC or other peripherals such as touch, they are woken up periodically with very low duty cycles to lower their power consumption.
The new ESP32 will have a much richer peripheral interface than the ESP8266, one obvious missing interface is USB. What was the reason for leaving it out? Was it technical, or strategic?
We just don’t see the need for USB in the post-PC world, when you could connect wirelessly! Besides, USB is a power hungry standard, and expensive to implement in silicon. In the next 10 years, we are probably going to see less and less of cables of any sort, and they will be replaced by wireless connectivity, and flash storage.
One of the peripheral interfaces you did include was capacitance touch, could you talk a little about how that is going to be exposed at the API level to developers using the chip?
Basically, it’s now exposed in the API, and capacitive touch interface events generate interrupts for the CPU.
There’s hardware acceleration for AES and SSL onboard the ESP32. Unquestionably going forward end-to-end encryption for the Internet of Things is going to be vital. How do you see the new chip fitting into that picture?
We hope to make security transparent and easy for people to use, like SSL for instance. Hardware acceleration is going to help with security, but it is not equivalent to security, if it’s not done right. We have looked at a lot of current implementations of security.
You’ve talked about offering a bounty program for security on the ESP32, can you tell us a bit about what that’s going to entail? Will you extend the program to the ESP8266?
The security bounty program is only for ESP32. It is meant to get the community to look into some of the encryption features that we have designed, especially flash encryption and our number theoretic functions. We understand that there are some folks out there, who can do some amazing things on the hardware level. We are hoping that they could give our team a peek at what’s possible today.
For a lot of people the arrival of Arduino support for the ESP8266 was a breakthrough. It opened the up the platform to a huge number of people that weren’t comfortable with the Lua toolchain. Will there be support out of the gate for the ESP32 in the Arduino toolchain?
No. There will not be support for Arduino right away. But it will be done soon! The same goes for LUA.
Do you see the ESP32 replacing the ESP8266, or do you see it serving a different market, and being used for different applications?
ESP32 and ESP8266 do have certain overlaps in the market. ESP8266 is used in applications where peripherals are not an issue, although we have seen some customers do amazing stuff with an overclocked ESP8266 and a touchscreen. ESP32 is a superset of ESP8266 but it’s also slightly more expensive. ESP32 has way more computing power and throughput. Overall, I think that the community would love ESP32 more.
There’s a beta program for the ESP32, with about 200 boards being sent out. How are you choosing (have you chosen?) developers to be part of that program, and what sort of feedback are you hoping to get from them?
For More Details: Meet ESP32, New Big Brother to IoT Board ESP8266