Featured here is a breakout board for the Espressif Systems ESP32-WROOM modules incorporating a MCU with WiFi and Bluetooth connectivity.
The board is designed to be minimalist and targeted towards battery operated devices. As such, no voltage regulator is included.
For those not already familiar with the ESP32, this SoC offers the following features:
- Xtensa dual-core 32-bit LX6 microprocessor running up to 240MHz.
- 448KB rom for bootloader and core functions.
- 520KB SRAM (plus 16KB SRAM contained in RTC).
- 4MB SPI Flash.
- 802.11b/g/n WiFi up to 150 Mbps.
- Bluetooth V4.2 BR/EDR and Bluetooth LE.
- 3.0 to 3.6V operation.
Various versions of the ESP32-WROOM-32 module exist. The latest -32E version incorporates the new ECO V3 silicon wafer (ESP32-D0WD-V3). V3 includes some silicon bug fixes, but its major improvement is secure boot and flash encryption.
The official development framework for the ESP32 is the ESP32 IDF (IoT Development Framework). Here is a tutorial in Getting Started with the Espressif esp-idf & Eclipse IDE
The ESP32 is also a popular target for Arduino. An Arduino core can be found at the following Github repository complete with instructions on how to add it to the Boards Manager:
The ESP32 contains a UART bootloader in ROM. The bootloader can be started by holding GPIO0 low during a reboot. The default bit rate is 115,200 8N1.
The following pins are used for programming using the bootloader:
Esptool.py can automatically reset the ESP32 and enter the bootloader using RTS and DTS. Some terminal programs may assert RTS and holding the ESP32 in reset. Disabling hardware flow control should avoid this problem.
Many development boards use additional glue logic to prevent this from occurring.
Debugging with JTAG
In addition to the UART Bootloader, the ESP32 can also be programmed via the JTAG interface.
A key purpose of this board is to test low power modes and battery operation.
While ESP32 silicon can support operating on voltages from 2.3V to 3.6V, the SPI flash found in the VROOM modules don’t like voltages under 3V.
A LiFePO4 cell is probably the perfect cell for the ESP32, with a voltage range of 2.5 volts to 3.65 volts. The LiFePO4 chemistry has a flat roll of curve and stays over the minimum 3.0V required for the SPI flash for most of the discharge cycle.
The ESP32-WROOM-32 module comes in two variants featuring different antenna configurations. The ESP32-WROOM-32E incorporates a PCB antenna.
The cutout under the antenna is in accordance with recommendations from Espressif. Please refer to the ESP32 Hardware Design Guidelines, section 3.1.2 Positioning an ESP32 Module on the Base Board.
The ESP32-WROOM-32EU has a IPEX (also known as u.FL) connector for use with an external antenna. The module is 6.3mm shorter and doesn’t protrude over the end of the PCB.
Design files can be downloaded from the Circuit Maker website. Circuit Maker is a free EDA tool from Altium.