Bluetooth gamepad, mouse and keyboard support for ESP32 and PicoW
Bluetooth gamepad, mouse and keyboard support for ESP32 and PicoW
A Bluetooth controller "host" for the ESP32, ESP32-S3, ESP32-C3, ESP32-C6, ESP32-H2, Raspberry Pi Pico W, Pico 2 W, and Posix (Linux, macOS).
Add Bluetooth gamepad, mouse and keyboard support to your projects easily.
In other words, it allows you to control a robot using a DualSense controller.
Choose your target platform:
| Platform | Start here | Further info | Community projects |
|---|---|---|---|
| Arduino IDE | Doc | Controller for Tello drone | |
| Arduino using ESP-IDF toolchain | Template project | Doc | Lego Robot (video), gbaHD Shield (a GameBoy consolizer) |
| Arduino + NINA coprocessor | Arduino Library | Doc | Philips CD-i meets Bluetooth |
| CircuitPython + AirLift coprocessor | CircuitPython Library | Doc | Quico console, Controlling 4 servos (video) |
| Pico W | Pico W example | Doc | Pico Switch, PicoNtrol |
| ESP-IDF | ESP32 example | Doc | OGX-Wireless-Lite |
| Posix (Linux, macOS) | Posix example | Doc | |
| Unijoysticle | Unijoysticle2 | Doc | |
| MightyMiggy | Unijoysticle for Amiga | Doc |
NOTE: Original ESP32, Pico W and Pico 2 W support all listed controllers. ESP32-S3, ESP32-C3, ESP32-C6 and ESP32-H2 only support a subset.
See: Supported gamepads, supported mice and supported keyboards
Download pre-compiled binaries for Unijoysticle, Nina, AirLift, MightyMiggy:
See the examples folder which includes examples for:
Arduino examples are in:
Bluepad32 is open source, licensed under Apache 2.
However, Bluepad32 depends on the great BTstack library. Which is free to use for open source projects. But commercial for closed-source projects.
If you are developing a commercial product for:
Notice: I’m not affiliated with BTstack people. They are super friendly and willing to help.
No open issues yet, or sync has not completed.