/bluepad32

Bluetooth gamepad support for the ESP32 (mirror)

Primary LanguageCOtherNOASSERTION

Bluepad32

discord

logo

A Bluetooth gamepad "host" for the ESP32.

Add Bluetooth gamepad support to your projects easily. Supported platforms:

Features

  • Supports most, if not all, modern Bluetooth gamepads (see below)
  • Fast (very low latency)
  • Small footprint
  • Uses only one core (CPU0). The remaining one is free to use.
  • C99 based
  • Open Source (see below)

Supported controllers

Supported gamepads

  • Sony DualSense (PS5)
  • Sony DUALSHOCK 4 (PS4)
  • Sony DUALSHOCK 3 (PS3)
  • Xbox One S
  • Nintendo Switch Pro
  • Nintendo Wii U
  • Nintendo Wii
  • Android gamepads
  • PC/Window gamepads
  • 8BitDo
  • iCade
  • And more

See: Supported gamepads

How to compile it

  1. Install ESP-IDF

    Install the ESP32 toolchain. Use version 4.2. Might work on newer / older ones, but not tested.

  2. Clone repo

    git clone --recursive https://gitlab.com/ricardoquesada/bluepad32.git
  3. Integrate BTStack into ESP32

    cd ${BLUEPAD32}/external/btstack/port/esp32
    ./integrate_btstack.py
  4. Compile Bluepad32

    Choose target platform:

    # Choose target platform: unijoysticle, airlift, nina, etc...
    export PLATFORM=unijoysticle

    And compile it:

    cd ${BLUEPAD32}/src
    make -j
  5. Flash it

    cd ${BLUEPAD32}/src
    make flash monitor

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. Contact them for details. They are very friendly + helpful (I’m not affiliated with them).