Bluetooth Pairing / Bonding Issue with BlueZ

Figured I’d share this experience in the hopes it saves others time debugging bluetooth issues. This is using the MNT Pocket Reform with the i.MX8MQ.

I’ve been pairing various bluetooth devices and generally speaking BlueZ has been working great. However, with one device specifically (8bitdo SN30 pro) I noticed that pairing was a hassle and the device wasn’t working as a HID device (kinda the point). Digging into the logs I found several errors, and noticed that the device was not “bonded” when the pairing completed. Some Bluetooth profiles (like HID gamepads) require bonding to function properly.

I found this issue on BlueZ’s GitHub page. The fix worked perfectly:

  1. Disconnect your device with blueman and remove it from the list
  2. bluetoothctl
  3. scan on
  4. devices and copy the MAC_ADDRESS of your device
  5. pair MAC_ADDRESS
  6. trust MAC_ADDRESS
  7. connect MAC_ADDRESS

Bluetoothctl handles the authentication and bonding (correctly?), which is evidently needed for the HID connection to be made. You’ll find info on the device stored in /var/lib/bluetooth/ and the HID device should now show up in /dev/input/.

Again, hope this post saves folks a few hours of debug. :slight_smile:

Apologies, that should say “i.MX8M Plus” not i.MX8MQ.