DIY ESP32 BLE Wireless Touchscreen Keyboard

by DsnIndustries in Circuits > Arduino

99 Views, 3 Favorites, 0 Comments

DIY ESP32 BLE Wireless Touchscreen Keyboard

Building an ESP32-S3 Wireless Keyboard with ILI9341 Touch Display

This project demonstrates how to build a fully functional, battery-efficient wireless keyboard for a PC using an ESP32 and an ILI9341 touch display. By utilizing the Bluetooth Low Energy (BLE) protocol, this device offers low power consumption and reliable connectivity.

Supplies

vlcsnap-2026-04-17-01h47m43s386.png
vlcsnap-2026-04-18-23h15m38s097.png

Features

  1. BLE Connectivity: Connects directly to a PC as a standard HID device.
  2. Touch Interface: Full QWERTY keyboard with multi-page support for special characters.
  3. Low Power: Optimized for battery operation, making it a truly portable peripheral.


Hardware Requirements

  1. Microcontroller: ESP32-S3 (or any BLE-supported ESP32 board).
  2. Display: ILI9341 Touch Display.
  3. Miscellaneous: Breadboard and jumper cables.

Wiring Information

Schematic.png

The touch interface and the display share the same SPI pins, with the exception of the CS (Chip Select) pin, which is used to toggle between controlling the display and the touch panel. You can follow the wiring image for ili9341 and esp32s3 connections.

Arduino IDE Configuration

vlcsnap-2026-04-18-23h16m46s595.png
vlcsnap-2026-04-18-23h18m22s882.png
vlcsnap-2026-04-18-23h18m46s352.png
vlcsnap-2026-04-18-23h18m59s449.png
  1. IDE Version: 2.3.8 or later. https://www.arduino.cc/en/software/
  2. Board Manager: Install the ESP32 board package (v3.3.7 recommended).
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
  1. Libraries: * TFT_eSPI (v2.5.43): Install via Library Manager and configure your User_Setup.h according to your specific wiring and display model.
  2. Source Code : https://github.com/derdacavga/Wireless-Keyboard

Touch Calibration

vlcsnap-2026-04-18-23h21m03s362.png
vlcsnap-2026-04-18-23h21m15s202.png

Before running the main script, you must calibrate your touchscreen:

  1. Open the touch_calibrate example.
  2. Set the display rotation (Landscape mode is typically setting 3).
  3. Upload the script, open the Serial Monitor (115200 baud), and follow the on-screen prompts to touch the corners.
  4. Copy the resulting calibration values.


Main Script Installation

vlcsnap-2026-04-18-23h22m45s232.png
  1. Open the wireless_keyboard project.
  2. Paste your calibration values into the setup section of the code.
  3. Ensure the rotation setting matches your calibration.
  4. Upload the code to your ESP32.


⌨️ How to Use

vlcsnap-2026-04-18-23h24m02s065.png
vlcsnap-2026-04-18-23h24m17s848.png
vlcsnap-2026-04-18-23h24m25s068.png
vlcsnap-2026-04-18-23h24m36s396.png
  1. Pairing: Turn on Bluetooth on your PC and search for "Dsn wireless KB".
  2. Interaction: Once paired, the keyboard becomes clickable. You can switch between two different pages of keys for full functionality.
  3. Troubleshooting: If you see a white screen, press the Reset button on the ESP32 or double-check your SPI wiring and User_Setup file.


🤝 Support

vlcsnap-2026-04-18-23h26m58s703.png

If you found this project helpful, please consider:

  1. Subscribing to the YouTube Channel.
  2. Giving the video a Like.
  3. Starring this GitHub Repository!
  4. YouTube: https://www.youtube.com/@DsnIndustries/videos
  5. Patreon: https://www.patreon.com/c/dsnIndustries

Happy Making!

Games