C

bluepad32

Bluetooth gamepad, mouse and keyboard support for ESP32 and PicoW

R

ricardoquesada

Dernière activité 29 sept. 2026
ricardoquesada/bluepad32

1,1 k

étoiles

154

forks

80

issues ouvertes

arduinobluetoothesp-idfesp32gamepadkeyboardmousepico-sdkpico-w

Ce README est souvent en anglais.

Bluepad32

discord

drawing

A Bluetooth controller "host" for the ESP32, ESP32-S3, ESP32-C3, ESP32-C5, 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.

Where to start

Choose your target platform:

Platform Start here Further info Community projects
Arduino IDE Watch the video Doc Controller for Tello drone
Arduino using ESP-IDF toolchain Template project Doc Lego Robot (video), gbaHD Shield (a GameBoy consolizer)
Pico W Pico W example Doc Pico Switch, PicoNtrol
ESP-IDF ESP32 example Doc OGX-Wireless-Lite
Posix (Linux, macOS) Posix example, Posix ImGui Doc
Unijoysticle Unijoysticle2 Doc

Features

  • Supports most, if not all, modern Bluetooth gamepads, mice and keyboards (see below)
  • Supports ESP32 and Pico W families
  • Supported APIs: ESP-IDF, Pico-SDK and Arduino
  • Fast (very low latency)
  • Small footprint
  • Uses only one core (CPU0). The remaining one is free to use.
  • C11 based
  • Open Source (see below)
  • Easy to integrate into 3rd party projects

Supported controllers

Supported gamepads

  • Sony DualSense (PS5)
  • Sony DualShock 4 (PS4)
  • Sony DualShock 3 (PS3)
  • Nintendo Switch Pro controller
  • Nintendo Switch JoyCon
  • Nintendo Wii U controller
  • Nintendo Wii Remote + accessories
  • Xbox Wireless controller (models 1708, 1914, adaptive)
  • Android controllers
  • Steam controller
  • Stadia controller
  • PC/Window controller
  • 8BitDo controllers
  • Atari joystick
  • iCade
  • Mouse
  • Keyboards
  • And more

NOTE: Original ESP32, Pico W and Pico 2 W support all listed controllers. ESP32-S3, ESP32-C3, ESP32-C5, ESP32-C6 and ESP32-H2 only support a subset.

See: Supported gamepads, supported mice and supported keyboards

Pre-compiled binaries

Download pre-compiled binaries for Unijoysticle:

Creating your project

See the examples folder which includes examples for:

Arduino examples are in:

Support

License

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.

Projets similaires

Bluetooth LE Gamepad library for the ESP32

C++
LlemmingDev
1,6 k étoiles258

ESP32 implementation for HID over GATT Keyboard and Mouse (Bluetooth Low Energy). Including serial API for external modules (similar to Adafruit EZKey HID)

HTMLbleesp32hid
Aasterics
905 étoiles124

An MCP-based chatbot | 一个基于MCP的聊天机器人

C++chatbotesp32mcp
778
30,3 k étoiles7,1 k