Wired Xbox 360 controller to wireless Bluetooth

Hi! I want to make my wired 360 Controller to a wireless via Bluetooth. Made a lot of research on this topic, but there was no information about modifying Xinput USB Gamepad. The idea is to be able connect Gamepad via Bluetooth (preferably BLE) AND USB (auto disconnect bluetooth wen connected via USB) + charge Li-ion battery with the same USB.

I'm asking for suggestions on how it is possible to implement. The current problem is how to send/receive data so that PC recognised device as Gamepad. Using something like ESP32 seems a little bit overkill and I can't find model with Li-ion charger and USB pins to connect to controller at the same time. And seems HM-10 doesn't have HID gamepad firmware. Maybe there is simpler/better solution to this.

And is it possible to use only Bluetooth module/chip to send/recieve raw USB Xinput data? That would be great!

Thanks! (And sorry for the grammatical errors if any. Still learning)

The BLE device needs to implement a HID-over-GATT. This will allow a device (PC, tablet, …) to use a standard driver to use your BLE device as a Human Interface Device.
Most part of the HID over GATT seems to be fairly straightforward. There are some services defined that you will need to implement.

  • HID Services
  • Battery Services
  • Device Information Service

Unfortunately the BLE developers where forced to mix the BLE services with some USB HID terminology to make life easier for the developers of OS support. That makes the description for HID over GATT more complicated than it needs to be.

There is some information available for this when you use Google. Have a look and see if you find something that you can use with your device. I have been trying to get this to work on one of the new Arduino Nano IoT and BLE boards, but I did not have the time and luck to get this to work yet.