I’m happy to announce the release of Bluepad32: gamepad support for the ESP32.
Bluepad32 is a firmware that runs in the ESP32 microcontroller. It supports all the modern Bluetooth gamepads like Sony (PS5, PS4, PS3), Microsoft (Xbox One S) and Nintendo (Switch, Wii) gamepads.
Who is this for?
This is for:
- …tinkers / makers / electronic hobbyist
- …that want to add gamepad support into their projects
- …in a maintainable and easy way
For further info, read: Adding new platforms.
Real world examples
- Unijoysticle 2: Gamepad support for the Commodore 64 / Amiga / etc.
- MatrixPortal M4: Gamepad support for the Adafruit AirLift family of boards
- ULX3S: An FPGA-based computer
Just add an ESP32 to your project, and control it with a gamepad!
Features
- Supports most, if not all, modern Bluetooth gamepads
- Fast (very low latency)
- Small footprint
- Uses only one core (CPU0). The remaining one is free to use.
- C99 based
- Open Source (see below)
Source Code, License et. al
- Bluepad32 is open source, Apache 2 licensed
- Source code:
- Gitlab: https://gitlab.com/ricardoquesada/bluepad32/
- Github (mirror): https://github.com/ricardoquesada/bluepad32
However Bluepad32 depends on the great BTStack library. Which is free to use for open source projects. But commercial for closed projects. Contact them for details. They are very friendly + helpful (I’m not affiliated with them).
Support, bugs et. al
How is this related to Unijoysticle 2
I realized that 3rd party projects where using the Unijoysticle 2 firmware. But they needed to hack it here and there. And it was difficult for them to get changes from upstream, etc.
So what I did was to:
- take the Unijoysticle 2 firmware
- make many changes to it to make it super easy to integrate
- rename it to avoid confusion (Bluepad32 is the new name)
- host it in a new git repo
(BTW, I’m also the author of Unijoysticle 2)