• Stars
    star
    499
  • Rank 87,738 (Top 2 %)
  • Language
    C
  • License
    Other
  • Created almost 4 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Bluetooth gamepad, mouse and keyboard support for ESP32 and PicoW

Bluepad32

discord

logo

A Bluetooth gamepad "host" for the ESP32 / ESP32-S3 / ESP32-C3.

Add Bluetooth gamepad support to your projects easily.

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)
Arduino + NINA coprocessor Arduino Library Doc Philips CD-i meets Bluetooth
CircuitPython + AirLift coprocessor CircuitPython Library Doc Quico console, Controlling 4 servos (video)
Unijoysticle Unijoysticle2 Doc
MightyMiggy Unijoysticle for Amiga Doc
Custom Doc

Features

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

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
  • iCade
  • Mouse
  • And more

NOTE: Original ESP32 supports all listed controllers. ESP32-S3 and ESP32-C3 support only a subset.

See: Supported gamepads and supported mice

Pre-compiled binaries

How to compile it

  1. Install ESP-IDF

    Install the ESP32 toolchain. Use version 4.4 or 5.0. 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
    # This will install BTstack as a component inside Bluepad32 source code (recommended).
    # Remove "IDF_PATH=../../../../src" if you want it installed in the ESP-IDF folder
    IDF_PATH=../../../../src ./integrate_btstack.py
  4. Compile Bluepad32

    Choose target platform (default is Unijoysticle):

    cd ${BLUEPAD32}/src
    idf.py menuconfig

    The Bluepad32 options are in: Components config -> Bluepad32 (find it at the very bottom) -> Target platform

    And compile it:

    idf.py build
  5. Flash it

    idf.py 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).

More Repositories

1

Spidermonkey

SpiderMonkey
C++
244
star
2

vchar64

editor for the Commodore 64
C++
91
star
3

c64-misc

Commodore 64 tips'n tricks
Assembly
43
star
4

unijoysticle2

Bluetooth gamepad support for the Commodore 64 / Atari / Amiga, etc.
Assembly
42
star
5

bios-8088

Disassembled BIOS from 8088 machines
Python
27
star
6

bluepad32-arduino

Bluepad32 for Arduino NINA-W10 boards
C++
24
star
7

creator_to_cocos2d

C++ Creator support for Cocos2dx
C++
13
star
8

esp-idf-arduino-bluepad32-template

ESP-IDF template that has Arduino and Bluepad32 built-in
C
13
star
9

cocosmotion

Sample project combining the great tastes of Cocos2d-iPhone and RubyMotion
Ruby
11
star
10

c64-the-uni-games

The Uni Games, a Commodore 64 game
Assembly
10
star
11

pc-8088-misc

Misc. programs for old PC DOS machines: Tandy 1000, PCjr, etc.
Assembly
9
star
12

unijoysticle

The UniJoystiCle, a unicycle simulator for the Commodore 64
C++
9
star
13

alink

alink: linker for OBJ files. from here: http://alink.sourceforge.net/. Ported to linux/mac
C
8
star
14

c64-commando-2084

A mod of Commando for the Commodore 64 (mirror)
Assembly
8
star
15

2732-to-2532

2732 to 2532 EPROM adapter
4
star
16

commodore-home

Commodore Home: Home automation for the masses, not the classes
Assembly
4
star
17

android-ndk

Android NDK headers
C
4
star
18

libfreetype

libfreetype repo
C
4
star
19

books

binaries / source code from books
Assembly
3
star
20

test-ios-npot-texture-memory

Objective-C
3
star
21

bluepad32-circuitpython

Bluepad32 library for CircuitPython (mirror)
Python
3
star
22

cocos2d-x

Port of cocos2d-iphone in C++
C++
3
star
23

config_files

config files for my machine
Vim Script
2
star
24

gl_LastFragData

Testing gl_LastFragData
Objective-C
2
star
25

c64-c128-erasoft

Erasoft / RQ progs games/intros from '88 to '92 for the Commodore 64 & 128
2
star
26

template-parkour

parkour template for cocos2d-x
C++
2
star
27

dexloader-sample

Sample that shows how to load a .jar / .apk in runtime in Android
Java
2
star
28

cocoslive

Python
2
star
29

c64-games-unijoysticle

Commodore 64 games that were modified to use enhanced Unijoysticle features
2
star
30

c64-rambo

"Rambo: First blood, Part II" game for the Commodore 64 disassembled and patch to support gamepad rumble.
Assembly
1
star
31

c64-cmania-intro

Commodore Mania intro
Assembly
1
star
32

c64-casual-connect-15

Casual Connect SF 2015. Simple SDKBOX / Cocos2d-x intro for the C64
Assembly
1
star
33

meetup-cocos2d-x-2015-05

Samples presented on the Cocos2d-x meetup 2015-05
C++
1
star
34

ccgraphedit

Experimental work in progress towards a cocos2d graph editor using QT and cocos2d-x
C++
1
star
35

c128-the-race

The Race, a video game for the Commodore 128
Assembly
1
star
36

arduino-misc

quick and dirty projects that shows how to use different shields
C++
1
star
37

cocos2d-console-gui

cocos launcher
C++
1
star
38

c64-lemans

Lemans - Commodore 64 game disassembly. Added gamepad rumble support
Assembly
1
star
39

bluepad32-ble-client

BLE Client for Bluepad32
Dart
1
star