Okay, looks like I found a solution for my 4.0 dongle at least.
I will share my findings, but if somebody except for MOD devs is going to follow my steps - be warned, I have no idea on the side effects, not an expert on the mod devices and bluetooth, I am just a nerd with access to google, and you can break something on your mod device by applying such changes. I am doing this on Mod Duo X to fix my particular issue with a particular dongle.
Also, sadly it did not fix anything for my 5.0 dongle.
With disclaimers done, here is my yet another dirty hack solution, now for the CSR8510 A10 0a12:0001 4.0 dongle.
Preflight check:
You can -probably- more or less safely check if it is a solution in your case by enabling Simple Paring mode just on the fly. It is enabled by running /usr/bin/hciconfig hci0 sspmode 1
when your dongle is plugged in. After running this command, you can try to re-pair your phone to the Mod Duo X , it should not ask for pin code during pairing.
This simple pairing mode will be washed away by replugging the dongle or device reboot/powerycle, and new pairings will fail. Existing pairing information might be preserved though (not sure, i was too concentrated on the permament fix to test it properly, but my foggy memories tell me that I still was able to connect to the mod device with the already properly paired phone even after reboot. Not sure, actually, it was 4am when I was doing this.)
If it does not work, you might also try remove your dongle’s MAC folder in /data/bluetooth by rm /data/bluetooth/YOUR_DONGLES_MAC_ADDRESS_IN_UPPERCASE
and powercycle the device and try setting Simple pairing mode again.
…
Permanent fix
All these actions below are to ensure that Simple Paring mode is enabled on the hci bluetooth device automatically when dongle is being inserted or device is starting. The instruction below is going to modify the system to apply this change permanently for all future pairings and dongles. Therefore it is a potentially dangerous change.
I expect these changes to be washed away with a firmware update though.
- First of all, I am creating a script /data/fixbt.sh that waits a couple of seconds (allowing bnep service to start up) and enables Simple pairing on the dongle. Waiting is implemented as a ping, lol, because there was no sleep command out the box. Code below uses echo to create this script per line:
echo "#!/bin/bash" > /data/fixbt.sh
echo "ping localhost -w 2" >> /data/fixbt.sh
echo "/usr/bin/hciconfig hci0 sspmode 1" >> /data/fixbt.sh
chmod ugo+x /data/fixbt.sh
cat /data/fixbt.sh
- Second, we are going to modify UDEV rules to invoke this script after dongle is connected.
mount / -o remount,rw # remount filesystem to write mode
cp /etc/udev/rules.d/96-bnep.rules /data/96-bnep.rules.bkp #make backup copy of the file we are going to modify.
nano /etc/udev/rules.d/96-bnep.rules #edit udev rule. Hope you know how to work with nano editor.
We should add the following text to the end of the first line:
, RUN+="/bin/bash /data/fixbt.sh"
Pay attention to the comma , that divides multiple RUNs for the single “add” acion.
This modification forces UDEV to invoke our fix script when dongle is connected.
- Also I am always cleaning all 00:… folders in /data/bluetooth/ folder between bluetooth experiments.
These folders are named after mac addreses of your bluetooth dongles, and contain some information on the dongles and other bluetooth devices mod duo is communicating with. My guess is that cleaning these folder forces mod duo x to forget all the faulty pairings I’ve done before
I am not sure if it matters, actually, or will you even have MACs starting with 00: as well as me.
Probably you should see folder content by ls /data/bluetooth
to make your own opinion on that.

Anyway, I clean them with rm /data/bluetooth/00* -r
- Now let’s reboot the box (maybe I am wrong, but seems like chances are that nothing will be saved on the filesystem if you will just cut the power using power switch. Also it might be not good for the filesystem, i guess.
reboot
-
NOW we can do the powercycle by toggling the power switch back and forth.
-
Actually that’s all. Now, as result, my phone pairs with ModDuoX easilly, it even does not ask for pin. Browser access works via 192.168.50.1 just fine. (slow, but that’s bluetooth)
P.S.
Also, you can check if my fix script is actually doing what it is supposed to do by starting
watch /usr/bin/hciconfig hci0 sspmode

- unplug bluetooth dongle,
- start watching,
- plug bluetooth dongle.
- watched hciconfig output will appear and write that Simple Paring mode: Disabled
- after a couple of seconds it will start showing Simple Pairing mode: Enabled.
If behaviour is as above, my script does what I expect from it and is called by UDEV rule properly.
@jon I guess this proves that issue can be potentionaly fixed on the mod device side. Might it be possible to have this simple pairing mode added to system->bluetooth menu as an option to enable?