Coder Social home page Coder Social logo

fdamador / bluepad32 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ricardoquesada/bluepad32

0.0 0.0 0.0 4.24 MB

Bluetooth gamepad, mouse and keyboard support for ESP32 and PicoW (mirror)

Home Page: http://gitlab.com/ricardoquesada/bluepad32

License: Other

C++ 2.83% Python 0.42% C 95.74% Makefile 0.54% CMake 0.47%

bluepad32's Introduction

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
  • Keyboards
  • And more

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

See: Supported gamepads, supported mice and supported keyboards

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

bluepad32's People

Contributors

ricardoquesada avatar ricardoquesadawork avatar sideprojectslab avatar bbsan2k avatar sukkopera avatar greso avatar mikh3x4 avatar solhuebner avatar onlinewithryan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.