This is a Bluetooth Low Energy (BLE) HID joystick I put together using a WEMOS D32PRO and an Adafruit joystick.
The aim of this project is build a functional, cheap and open Joystick/Gamepad device using off the shelf parts, which is battery powered and connects to any PC/Mac/Phone using BLE.
This project currently uses ESP32 micro controller because:
The core of this software is its HID report, and esp_hidd_send_joystick_value which transmits the current state of the joystick.
To read the analogue joystick x and y values I am using the adc driver.
This project uses esp-idf and requires a recent version with support for CMake.
The below image shows this joystick detected by chrome after being paired.
Handy gamepad tester used is located at http://luser.github.io/gamepadtest/
TODO Circuit diagram.
J1 connector.
P6 3v3 P5 Sw01 GPIO_14 P4 Sw02 GPIO_25 P3 Sw03 GPIO_26 P2 Sw04 GPIO_27 P1 GND
J2 connector
P1 Sw10 GPIO_19 P2 Sw09 GPIO_18 P3 Sw08 GPIO_17 P4 Sw07 GPIO_16 P5 Sw06 GPIO_05 P6 Sw05 GPIO_04
LEFT_X GPIO_32 LEFT_Y GPIO_33 RIGHT_X GPIO_34 RIGHT_Y GPIO_35
This project is copyright Mark Wolfe and Espressif Systems (Shanghai) PTE LTD and is released under Apache 2.0 license.