ESP32 Thing Plus Hookup Guide
Espressif's ESP32 WROOM is a powerful, generic Wi-Fi+BT+BLE MCU module that targets a wide variety of applications. At the core of this module is the ESP32-D0WDQ6 chip which is designed to be both scalable and adaptive. Its laundry list of features include:
- Xtensa® dual-core 32-bit LX6 microprocessor
- Up to 240MHz clock frequency
- 16MB of flash storage
- 520kB internal SRAM
- Integrated 802.11 BGN WiFi transceiver
- Integrated dual-mode Bluetooth (classic and BLE)
- 3.0 to 3.6V operating range
- 21 GPIO
- 8-electrode capacitive touch support
- Hardware accelerated encryption (AES, SHA2, ECC, RSA-4096)
- 2.5 µA deep sleep current
The ESP32 Thing Plus is designed around the ESP32-WROOM module with everything necessary to run and program the microcontroller, plus a few extra goodies to take advantage of the chip's unique features.
Peripherals and I/O
The ESP32 Thing Plus features your standard fare of hardware peripherals including:
- 13 analog to digital converter (ADC) channels
- 3 UARTs (only two are configured by default in the Arduino IDE, one UART is used for bootloading/debug)
- 3 SPI (only one is configured by default in the Arduino IDE)
- 2 I2C (only one is configured by default in the Arduino IDE)
- 2 I2S Audio
- 2 digital-to-analog converter (DAC) channels
- 16 PWM outputs
And, thanks to the chip's pin multiplexing feature, those peripherals can be connected to just about any of the broken out I/O pins. Than means you decide which pins are RX, TX, MISO, MOSI, SCLK, SDA, SCL, etc.
There are, however, a few hardware features -- namely the ADC and DAC -- which are assigned to static pins. The graphical datasheet below helps demonstrate where you can find those peripherals (click to embiggen!).
One I2C, two of the UART interfaces, and one of the SPI interfaces can be assigned to any pin your project requires.
Pins 34 (A2), 36 (A4), and 39 (A3) cannot be configured as outputs, but they can be used as either digital inputs, analog inputs, or for other unique purposes. Also note that they do not have internal pull-up or pull-down resistors, like the other I/O pins.
GPIO pins 36-39 are an integral part of the ultra low noise pre-amplifier for the ADC – they are wired up to 270pF capacitors, which help to configure the sampling time and noise of the pre-amp.
From the ESP32 Thing Schematic: GPIO 36-39 are tied together with caps. GPIO 36-39 as well as pins 34 and 35 are input only!
The ESP32 Thing Plus U.FL requires a WiFi/BLE antenna. A u.FL connector is available to connect an antenna. Note: U.FL connectors are rated for only a few mating cycles (about 30) so we recommend you set it and forget it. For more information on working with u.FL connectors, we recommend checking out our tutorial about using u.FL connectors.
Powering the ESP32 Thing Plus
The two main power inputs to the ESP32 Thing Plus are USB and a single-cell lithium-polymer (LiPo battery. If both USB and the LiPo are plugged into the board, the onboard charge controller will charge the LiPo battery at a rate up to 500mA.
The 3.3V regulator on the ESP32 Thing Plus can reliably supply up to 600mA, which should be more than enough overhead for most projects. The ESP32 can pull as much as 250mA during RF transmissions, but we've generally measured it to consume around 150mA -- even while actively transmitting over WiFi. The output of the regulator is also broken out to the sides of the board -- the pin labeled "3V3". This pin can be used to supply external components.
In addition to USB and battery connectors, the VBAT, and VUSB pins are all broken out to the sides of the board. These pins can be used as an alternative supply input to the Thing Plus. The maximum, allowable voltage input to VUSB is 5.8V, and VBAT should not be connected to anything other than a LiPo battery. Alternatively, if you have a regulated voltage source between 3.0V and 3.6V, the "3V3" line can be used to directly supply the ESP32 and its peripherals.