wmertens / textblade-dongler

Tools to convert a CSR8510 Bluetooth dongle to a pre-linked wireless USB keyboard
MIT License
36 stars 9 forks source link

CSR8510 A10 and Filco keyboard #8

Open giner opened 3 years ago

giner commented 3 years ago

@wmertens, thank you for sharing these tools and docs. There is so little information I could find about HID Proxy anywhere. I've got a CSR8510 based bluetooth dongle and I'm able to switch it to HID mode and back. However I'm lost in looking for a way to pair my Filco keyboard with the dongle. The tools from this repo don't work and I'm not able to find any docs on CSR EEPROM / Firmware so that I could update the tools to support more Keyboards. Any suggestion where to look at? Does anybody have access to any related documentation?

Some details regarding Filco Keyboard:

[LinkKey] Key=611683A7423F971307B5536B99F2C4CC Type=0 PINLength=0

[DeviceID] Source=2 Vendor=2652 Product=34050 Version=283

wmertens commented 3 years ago

This is definitely a question for @awh-tokyo :)

jagonga commented 3 years ago

Dear @giner, I'm in the same step as you, I have a BT820 working on HID mode but no luck in store the keyboard to automatically connect to the dongle. Did you solved your problem? How you did it? This is my pairing information: `[General] Name=Bluetooth 3.0 Keyboard Class=0x002540 SupportedTechnologies=BR/EDR; Trusted=false Blocked=false Services=00001124-0000-1000-8000-00805f9b34fb;00001200-0000-1000-8000-00805f9b34fb;

[LinkKey] Key=E846043129422DFC7EE8FCE92E5DD16A Type=4 PINLength=0

[DeviceID] Source=2 Vendor=1256 Product=28705 Version=1`

It is a cheap chinese keyboard. I tried to follow the information of BT820 Laird website to put into HID mode, but I can't connect the keyboard. I look forward to hearing from you soon. Thanks.

Kind regards, Javier

424778940z commented 2 years ago

well run into this issue then did some research the hid proxy mode on csr8510a10 seems ONLY support BLE devices. Both people above and me are using a BT3.0 keyboard, this is also why there is only LinkKey. Also interesting find is, according to CSR document, you could also pair a mouse that support BLE in hid proxy mode.

wmertens commented 2 years ago

Ah yes you are correct it's BLE only. I believe one or two people got their BLE mouse and BLE keyboard both working, it's a matter of choosing the correct register to write the connection to.

Tomaszal commented 1 year ago

Hi, I'm trying to accomplish a similar setup using a keyboard based on nice!nano v2 board (which is BLE) with ZMK firmware. I'm using this dongle, which I believe is CSR8510. I'm able to pair using the HCI, write the PSKEYs (with a modification) and switch back to HID mode successfully. However, the connection doesn't work when in HID mode. This is the pairing information with the keyboard:

[General]
Name=Naked60BMP
Appearance=0x03c1
AddressType=static
SupportedTechnologies=LE;
Trusted=true
Blocked=false
WakeAllowed=true
Services=00001800-0000-1000-8000-00805f9b34fb;00001801-0000-1000-8000-00805f9b34fb;0000180a-0000-1000-8000-00805f9b34fb;0000180f-0000-1000-8000-00805f9b34fb;00001812-0000-1000-8000-00805f9b34fb;

[PeripheralLongTermKey]
Key=6EE65867E17A8E6F121C544919A019DB
Authenticated=2
EncSize=16
EDiv=0
Rand=0

[SlaveLongTermKey]
Key=6EE65867E17A8E6F121C544919A019DB
Authenticated=2
EncSize=16
EDiv=0
Rand=0

[DeviceID]
Source=1
Vendor=7504
Product=24926
Version=1

[ConnectionParameters]
MinInterval=6
MaxInterval=12
Latency=30
Timeout=400

Since there is no LongTermKey, I modified the script to take the keys from PeripheralLongTermKey instead. Not sure if that's part of the problem. I tried investigating it myself, however, I was not able to find any information on what the relevant keys actually mean. Specifically, it would be great to know where the 1482 value comes from for generated PSKEY_USR42 key, and where the specification for that key came from in general. I can also see that PSKEY_USR40 changes sometimes when switching between the different modes, and that it is almost identical to PSKEY_USR42 after clearing the keys using this tool.

I would greatly appreciate any help at this point, as information on this kind of stuff is so sparse and impossible to find.