Bluetooth 4.0 BLE-USB-Bridge - HID Proxy - legacy - TV adapter/dongle

mind_prepared

01 Jul 2020, 14:57

Not sure if a lot of people will find this useful, but I've been offering these for a while on Ebay and recently a buyer suggested I blow the horn about it on the forum to give it a little more exposure. The price is 20€ + shipping.

BT-USB bridge / HID proxy dongle
bt_hid_proxy_dongle1.jpg
bt_hid_proxy_dongle1.jpg (193.03 KiB) Viewed 28654 times
IN HID PROXY MODE, THIS DONGLE WILL ONLY PAIR WITH BT 4.0/BLE HID DEVICES, I.E. IT WILL NOT RECOGNIZE A BT BR/EDR 2.0/3.0/4.x/5.x KEYBOARD/MOUSE. THE CRUCIAL DIFFERENCE IS BETWEEN THE BT BR/EDR PROTOCOL AND THE LOW ENERGY PROTOCOL EXTENSION. MAKE SURE YOUR CLIENT DEVICE IS COMPATIBLE BEFORE PLACING AN ORDER. THANK YOU.

In case you're looking for it, here's the link to a Github repo I created for the CLI: https://github.com/chancefavorstheprepa ... irings_cmd

The dongle has two modes of operation: HID proxy mode and HCI mode. In HCI mode, it acts as a regular BT adapter controlled by the operating system's BT stack. In HID proxy mode, it acts as stand-alone single-mode BT LE adapter. The mode of operation can be switched by software, too, if necessary (Windows, Linux, Mac OS X).

The default boot mode is HID Proxy mode.

Note 1: In stand-alone BT host operation, the dongle will appear as a regular USB composite device (HID keyboard+mouse) to the host system (Windows, Android, Linux, Mac) - NOT as a BT device.

Once a BLE compatible client device is recognized, the dongle will handle pairing and bonding automatically and doesn't require any manual configuration steps. That way you can connect a BT keyboard to any (legacy) USB-compatible host system (including the BIOS) without any additional hassle.

Note 2: The BLE client device must support 'just works' as a pairing method, since there is no display and no keyboard to enter pairing codes manually on the dongle.

So, in other words, this dongle will let you connect your BLE keyboard/mouse to any USB-compatible system. You will not need to configure anything to connect your device. You can also carry your keyboard/mouse together with the dongle from one computer to another computer, plug in the dongle and use your keyboard/mouse right away without having to re-pair your keyboard/mouse on the other computer because all the pairing data is stored on the dongle.

This dongle will also let you connect a BLE keyboard to a TV or other devices that only support USB input devices.

Note 3: After pairing the module for the first time, the pairing data will be stored and henceforth the dongle will only connect to the paired device. Before a different device can be connected, the old pairing data must be deleted first by running a command line interface.
Last edited by mind_prepared on 19 Jan 2023, 14:54, edited 2 times in total.

mind_prepared

05 Sep 2020, 12:16

bump

User avatar
AdrianMan

06 Sep 2020, 00:26

This is interesting ~~pm'd~~.

Edit: My question might help others.

Is the BT wake-up still going to be there ? Like having to press a key on the keyboard after an idle period before being able to type and the pc to get the signal again?

Did I get it right or the advantages & features are:

1. Connect BT keyboard to PC / laptop/ TV / Device with no BT

2. After setting up the dongle with 1 keyboard, use it as a plug&play receiver like you do with the 2.4Ghz dongles from mouses and wireless keyboards.

Sturmtiger001

06 Sep 2020, 07:00

Bump

mind_prepared

11 Sep 2020, 22:52

Is the BT wake-up still going to be there ? Like having to press a key on the keyboard after an idle period before being able to type and the pc to get the signal again?
Good question. I don't know. I haven't had time to check yet, but I will asap.
Did I get it right or the advantages & features are:

1. Connect BT keyboard to PC / laptop/ TV / Device with no BT

2. After setting up the dongle with 1 keyboard, use it as a plug&play receiver like you do with the 2.4Ghz dongles from mouses and wireless keyboards.
Yes, you got the basic idea, except that there is nothing to set up or configure. The client device must be a BT 4.0/BLE device and it must support 'just works' pairing as there is no display or button to display or type anything.

User avatar
AdrianMan

12 Sep 2020, 20:40

Thanks for the info. I wanna try one. Sent you an email.

cylonid

27 Nov 2020, 16:57

Interesting project, although I can't really use it for my keyboard because it needs a PIN entry upon successful pairing. Is there no interface at all (commandline, UI, whatever) to make this possible? I mean, how is the pairing established when there is no interface? Does this dongle just try to pair with all devices in range?

Second question (although I assume the answer will be no):
Is it possible to read the established pairing keys from your dongle? It would be a nice hack to set the BT MAC address of your dongle to the same as one's own inbuilt BT card and copy all pairing keys from your dongle back to the OS Bluetooth Stack of a laptop (similar to how you share BT pairing keys on a dualboot setup). Then, all devices should be able to connect either to the dongle plugged in any PC or without the dongle on one's primary laptop.

mind_prepared

30 Nov 2020, 14:26

Actually the firmware is widely configurable in software. The dongle is based on CSR's 8510 chipset. There's a CSR (now part of Qualcomm) software package available that allows you to configure virtually every setting (and totally brick your device!)

At some distant point in the past dongles similar to these were available in the market but then for some reason they just stopped offering them with the HID extension. All CSR dongles that remain in the market are only capable of running in HCI mode, which requires the OS to provide a BT stack.

What you ask may be possible but I don't know and there is zero public documentation available for the firmware. Everything I know about it was obtained through a mild effort of hacking+reverse-engineering.

cylonid

19 Dec 2020, 14:19

Well I found an interesting script on GitHub which could make your dongle even more useful.

https://github.com/hangie/textblade-don ... aspberrypi

The general idea:
[*] Pair the BLE mouse/keyboard to a Unix system while the dongle is in normal BT HCI dongle. (See pair.sh)
[*] Copy the pairing data from '/var/lib/bluetooth' folder to the dongle and set the INITIAL_BOOT_MODE to 2, HID Proxy mode. (See make-hid.sh)

Apparently, with this script supports devices which requires a PIN entry and with some effort one could maybe even pair a second device (According to the discussion, a second pairing key could probably placed at &02b5, PSKEY_USR43)

Maybe you can play around a bit with this approach, if it indeed works to pair a PIN device I'd be interested in buying one.

mind_prepared

19 Dec 2020, 17:52

cylonid wrote:
19 Dec 2020, 14:19
Maybe you can play around a bit with this approach, if it indeed works to pair a PIN device I'd be interested in buying one.
Thanks for sharing your findings, that's very interesting. Yes, I agree, it may be possible to manually enter pairing data. I will give it a try and report back. =^)

bueller02

22 Jan 2021, 03:59

Any update on paring a PIN device? I am also interested!

joken

19 Mar 2021, 22:16

Hi,
I recently bought one of @mind_prepared dongles from Ebay and just found this thread with the same question, because my keyboard (MS Ergonomic Keyboard) requires indeed a PIN, too.

I switched the dongle to HCI mode, paired my keyboard with the PIN, ran the "make-hid.sh" script from the linked repository and set the dongle back to HID mode with "bccmd psset -r -s 0 0x3cd 2" (the readme says that the scripts does this but it doesn't).

Good: I didn't brick my dongle.
Bad: Looks like the pairing info is not stored correctly.

I guess the script must improved. You can see in the script how the token is calculated and what hex values define the initial mode. But wihout more info its impossible to spot the problem (at least for me). I'd be happy to help.

mind_prepared

20 Mar 2021, 17:16

I've analyzed the method proposed by Wout Mertens, and it looks promising, but as I do not own any BT 4+ keyboards (or rather keyboard controllers) besides my crummy little Blusb boards, I've so far not been able to test it. I would need a BT 4+ HID peripheral that rejects unauthenticated 'Just Works' pairing upon request. The BT interface of Blusb is based on Texas Instruments CC2540/41 SoC, and TI's BT stack does not provide any method for a peripheral to decline non-authenticated pairing requests out of the box. I need to patch the stack first in order to be able to do that. Or buy a BT 4+ keyboard that doesn't support 'Just Works' pairing.

cylonid

31 May 2021, 10:03

Can you tell us which hardware dongle you used?

mind_prepared

30 Sep 2021, 00:15

OK so I finally got around to testing Wout Mertens method. I will not go into all the details here but I can confirm rumors that a pairing made in HCI mode is automagically carried over to HID mode. This is the main take-away message.

More background: I bought an Akko 3084 which uses a Pixart PAR2801QN SoC to provide BT connectivity. It wouldn't pair with the dongle in HID mode, but it paired fine with the dongle in HCI mode. It appears that the pairing data written to the dongle's EEPROM in HCI mode can be accessed by the firmware in HID mode as well, so the HCI connection basically gets carried over to HID mode. That's pretty nifty, actually.

I didn't have any luck with the method described by Wout Mertens because it appears that the pairing data must be somehow processed and possibly partially encrypted before it can be entered manually in the EEPROM of the dongle. I will have to talk to some other people who are deeper in the know about this stuff than I and report my findings here or in the Github repo of the CLI in a little bit, that is if I will be able to find out something new.


I didn't read the user manual for the AKKO 3084 keyboard carefully, my mistake. I failed to notice that the pairing data I was looking at wasn't related to the remote device profile selected on the keyboard. There is no encryption. My test keyboard supports BT LE and can pair just fine with the dongle. Any other keyboard that supports BT LE and Just Works/Simple Pairing will connect and pair successfully out of the box.

I still haven't been able to reproduce Wout Merten's method but I'm one step closer and will post my findings if I can finally figure it out.
What is clear to me is that the dongle must be used as the BT adapter when connecting and pairing a peripheral in HCI mode. Then the pairing data stored in the host's BT config file (Linux: /var/lib/bluetooth/<adapter MAC>/<keyboard MAC>/info) can be extracted and entered in the dongle's eeprom for use in HID proxy mode.
Last edited by mind_prepared on 19 Jan 2023, 15:04, edited 5 times in total.

mind_prepared

19 Jan 2023, 14:50

The dongle is also still available, so let's bump this thread once again.

mind_prepared

30 Jun 2023, 10:33

This thing is actually quite popular so what the heck let's bump this thread again to remind you guys this offer is permanently active.

mind_prepared

14 Nov 2023, 17:30

Wow, I've finally gotten around to 'porting' the CLI to Linux (if compiling a few lines of Libusb code qualifies as such), it's in the Github repo if anyone's interested.

mind_prepared

27 Feb 2024, 11:21

To all new members who're interested in the dongle: DT decided to restrict permissions to receive private messages for newly joined members. I can read private messages from newly joined members but I am unable to respond. My public email address is jaygheezy@hotmail.com if you want to reach out directly.

User avatar
Muirium
µ

27 Feb 2024, 12:59

mind_prepared wrote:
27 Feb 2024, 11:21
DT decided to restrict permissions
Untrue.

Do not assume malice when incompetence will suffice. ;)

mind_prepared

16 Nov 2024, 10:58

Bumpety-bump...

Post Reply

Return to “For sale”