A standalone firmware for the ESP32 Rainbow hardware that transforms it into a portable ultra-light touch Bluetooth Low Energy (BLE) keyboard.
This project repurposes the ESP32 Rainbow hardware — originally designed for ZX Spectrum emulation — into a BLE typing device. It features a simple text editor on the integrated display and acts as a Bluetooth HID keyboard for connecting to computers, tablets, and phones.
- Bluetooth LE Keyboard: Connects wirelessly to devices as "ESP-keyboard". Supports standard typing, navigation keys (arrows), and special keys (Enter, Backspace).
- On-Device Text Editor:
- Visual cursor with blinking and navigation.
- Text wrapping and scrolling.
- Multi-line editing support.
- Audio Feedback: Subtle "tick" sound on keypresses for tactile feel (using the onboard speaker).
- Touch Keyboard: Utilizes the ESP32 Rainbow's capacitive touch keyboard (V2) for ultra-light-touch key input.
- Display: Renders text and UI on the ST7789 TFT display (to be improved ...)
This firmware is designed specifically for the ESP32 Rainbow hardware created by Atomic14.
- Project Website: esp32rainbow.com
- Hardware Repository: atomic14/esp32-zxspectrum-hardware
- Original Firmware Repository: atomic14/esp32-zxspectrum
-
Clone the Repository:
git clone <repository-url> cd esp32-rainbow-keyboard
-
Open in PlatformIO: Open the project folder in VS Code with the PlatformIO extension installed.
-
Build and Upload: Connect your ESP32 Rainbow device via USB and run the "Upload" task in PlatformIO.
- Environment:
atomic14-esp32-rainbow-01
- Environment:
- Power On: The device will boot up and display the text editor interface.
- Bluetooth Pairing:
- On your computer or phone, scan for Bluetooth devices.
- Select "ESP-keyboard".
- The device uses "Just Works" pairing (no PIN required).
- Typing:
- Type on the touch keyboard. Characters will appear on the device screen and be sent to the connected Bluetooth device.
- Shift: Toggles upper case / symbols (hold > 1 sec. for locked mode).
- Symb: Accesses symbol layer (hold > 1 sec. for locked mode).
- Cursor Navigation: hold shift and press keys
1,2,3,4for Up, Down, Left, Right arrow keys (use locked shift mode on demand). - Backspace: hold
Shiftand press0(use locked shift mode on demand).
- T-vK/ESP32 BLE Keyboard
- Adafruit GFX & ST7789 Libraries
- FreeRTOS (built-in to ESP32 Arduino core)
This work has been accomplished at the UAS Technikum Wien in course of the R&D-project InDiKo (MA23 project 38-09), which is supported by the City of Vienna.