BlueRetro primary target is to be a Bluetooth controllers adapter for retro video game consoles. However the software is built so that any Bluetooth HID (BR/EDR/BLE) device can be connected and used including gamepad, mouse, keyboard, trackball, etc.
7 controllers can be connected simultaneously on a single adapter for multiplayer games. This means the adapter also emulate the multitap accessory for most systems. Rumble accessories/function is supported. Keyboard, trackball & mice console accessories are supported.
The adapter is highly configurable via a Web Bluetooth (BLE) interface for mobile & desktop. Buttons and axes can be mapped to any buttons or axis direction (ex. mapping axis direction to a button, buttons on an axis direction, inverting an axis direction, trigger to axis, buttons to trigger, etc.). Various scaling and response curve options is available for axes and trigger. Presets configuration for various games are available.
A secondary objective is for the code to be easily used on other ESP32 project to add Bluetooth HID device input. To help this the Bluetooth and HID decoding is all done within one core. The retro console interface on the second core can be easily removed and replaced by another application that need input. (ex. RC cars, robots, game consoles, emulators, etc.). While the project in itself is more toward gaming, the code could be used as a component of an adaptive tool.
A hardware goal is to be as simple as possible. A unique module with a ESP32 and one connector (DB-25 so far) should be the core of the solution. Most system will only need a straight cable adapter or an adapter only including level shifter. More complex adapter will exist for systems with full parallel input, direct potentiometer interface, RS485 (JVS), RS232 or USB.