The ESP32 TouchDown
ESP32 TouchDown is complete solution for anyone who wants/needs an ESP32 with capacitive touchscreen. It also has battery management onboard, a piezo speaker, and an SD card reader. ESP32 TouchDown works out of the box with the Arduino IDE, providing you have installed the ESP32 Arduino Core. Pins that are not used by the peripherals onboard are broken out.
- ILI9488 3.5″ (480*320) TFT screen in 4-wire SPI mode
- FT62x6 Capacitive Touch Controller
- APK2112 3.3V regulator
- MCP73831 battery management IC
- CP2102 USB-to-UART IC
- USB-C connector
- Piezo Speaker
- microSD card holder
- Battery voltage divider connected to GPIO35
- Stemma / JST-PH I2C connector
- Compact size: 100x57x15mm
The ESP32 TouchDown is designed with FreeTouchDeck (https://github.com/DustinWatts/FreeTouchDeck) in mind. The ESP32 TouchDown is the one stop solution to get a FreeTouchDeck up and running with capacitive touch without the need to buy separate modules. ESP32 TouchDown’s are shipped to you with the most current release of FreeTouchDeck installed! Off course you can always re-flash it with your own firmware.
Write your own software
The ESP32 TouchDown can be used for more the FreeTouchDeck alone. It is a fully featured DevKit. In the Github repository you will find some examples to get you started:
- An example for controlling Home Assistant (using their API)
- An example of simple 4 by 3 matrix of buttons
- An example of a phone-style keyboard
- An example of how to get battery voltage information
The ESP32 TouchDown can run of a Li-Po battery. Combined with WiFi and BLE this makes the ESP32 TouchDown very portable. It uses an MCP73831 Charge Management Controller set to a charge current of 330mA. Charging is done through the USB-C port (using 5V). The on/off switch doesn’t effect the battery charging. So even when the ESP2 TouchDown is off, you can still charge the battery. When the ESP32 TouchDown is plugged in to USB, it will use USB power over battery power and will switch to battery power when USB is disconnected, without interrupting the ESP32.
Note: Always use a protected cell!
3D printable Case
Although the bare board looks great (if I do say so myself), there is a design for a nice slick case available on the Github repository. There are a few different backs to support a case without battery, with battery, and a FreeTouchDeck style case. You can find the case here: https://github.com/DustinWatts/esp32-touchdown/tree/main/Case
If you like to design your own case, you can use the 3D model as a reference: https://github.com/DustinWatts/esp32-touchdown/tree/main/3D-model
ESP32 TouchDown uses a 3.5″ TFT screen with a resolution of 480×320. The driver is an ILI9488. Pins used by the TFT screen are:
- GPIO2 -> DC_RS
- GPIO4 -> TFT_RESET
- GPIO15 -> TFT_CS
- GPIO18 -> SPI Clock
- GPIO23 -> SDI (MOSI)
The TFT backlight anode (positive supply) is selectable via a jumper on the back. You can either power it directly from 3.3V or use GPIO32. By default, the positive source is 3.3V. You can change this and use PWM to control the backlight brightness. If you choose to have your ESP32 TouchDown shipped with FreeTouchDeck, the jumper will already be set so you can dim the backlight from the software.
The capacitive touch controller is a FocalTech FT6236 (datasheet). The FT6236 uses I2C and has address 0X38. I made an Arduino IDE library available here: https://github.com/DustinWatts/FT6236.
Note: Batch 2 uses the FT6206. This controller works the same and has the same I2C only a different Chip ID. The library above also support the FT6202.
Pins used by the FT62x6 are:
- GPIO21 -> I2C data
- GPIO22 -> I2C clock
- GPIO27 -> IRQ
The following GPIO’s are broken out on the header:
- GPIO 12
- GPIO 13
- GPIO 14
- GPIO 16
- GPIO 17
- SCK (GPIO 18, used as SPI clock)
- SDO (GPIO 19, used as SPI MOSI)
- SDA (GPIO 21, used as I2C data)
- SCL (GPIO 22, used as I2C clock)
- SDI (GPIO 23, used as SPI MISO)
- GPIO 33
- GPIO 34 (note: INPUT only!)
Why is it so special?
ESP32 TouchDown comes ready to use. It includes all features that you would need additional modules for when using a development board. Besides that, ESP32 TouchDown is fully open source. All hardware designs can be found in the Github repository. ESP32 TouchDown is also OSHWA cerftified. You can find more information here: https://certification.oshwa.org/nl000004.html