This Arduino project implements a Bluetooth Low Energy (BLE) Human Interface Device (HID). It allows your ESP32 board to function as a Bluetooth input device like Mr. Robot USB Rubber Ducky.
- Bluetooth Low Energy (BLE) connectivity
- HID protocol implementation
- Low power consumption
- Easy to customize input configurations
- Multiple triggers (3 GPIO pins) for different payloads
- Simple hardware trigger mechanism using jumper wires
- ESP32 Board
- Micro USB cable for programming
- Jumper wires for trigger connections
- Connect one jumper wire from GND pin
- Connect other jumper wires to GPIO pins: as your requirement.
- Trigger 1: GPIO 16
- Trigger 2: GPIO 17
- Trigger 3: GPIO 18
- When you want to activate a trigger, touch both jumper wires
- Open Arduino IDE Preferences
- Add ESP32 board URL in Additional Board Manager URLs:
https://espressif.github.io/arduino-esp32/package_esp32_index.json - Go to Tools -> Board Manager
- Search for "ESP32" and install version 2.0.15
- ESP32 BLE Keyboard Library:
- Download from: https://github.com/T-vK/ESP32-BLE-Keyboard
- In Arduino IDE: Sketch -> Include Library -> Add .ZIP Library
- Select the downloaded library file
- Clone this repository:
git clone https://github.com/ESP32-BLE-HID/blehid.git
- Open
blehid.inoin Arduino IDE - Select your board and port - ESP32-Dev Module
- Upload the code to your Arduino board
- Power up your Arduino board
- The device will start advertising as a BLE HID device
- Connect to the device from your computer/tablet/phone's Bluetooth settings
- Activate the trigger
Contributions are welcome! Please feel free to submit a Pull Request.
This project is intended for educational purposes only. I'm not responsible for any actions or consequences resulting from the use of this code. Users are responsible for ensuring compliance with all applicable laws and regulations when using this project.
- Arduino community for their excellent libraries and documentation
- Contributors to the BLE HID specifications