Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Windows connection problems

We've built a device with the nRF5 17.1.0 SDK on nRF52832 which operates as a HID keyboard. On iOS and Android this is working fine, and it's working fine sometimes on Windows, but not all the time, particularly on slower machines, so I'm trying to figure out what is failing. I've used the Bluetooth Virtual Sniffer (https://docs.microsoft.com/en-gb/windows-hardware/drivers/bluetooth/testing-btp-tools-btvs) to get a packet trace which I've attached (Wireshark). This is from when it is working fine as I can't reproduce the issues locally, but I'm still seeing a number of error responses such as to this find by type value request:

Fullscreen
1
119 23.654527 localhost () c0:7d:0e:48:3b:0b (BT500S-6 v3.0.7-b.1 FAA6) ATT 18 Sent Find By Type Value Request, GATT Primary Service Declaration, Handles: 0x000e..0xffff
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Fullscreen
1
128 23.715589 c0:7d:0e:48:3b:0b (BT500S-6 v3.0.7-b.1 FAA6) localhost () ATT 14 Rcvd Error Response - Attribute Not Found, Handle: 0x000e (Unknown)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Why would the softdevice send that response? It seems windows is requesting primary services in a range 0xe to 0xffff - all my services are primary services in that range, but the SD returns attribute not found. For info, here is my list of attributes:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
0x0E (14): Service Battery handle
0x10 (16): Service Battery Characteristic Battery value handle
0x11 (17): Service Battery Characteristic Battery CCCD handle
0x25 (37): Service AT State handle
0x27 (39): Service AT State Characteristic Digital port state value handle
0x28 (40): Service AT State Characteristic Digital port state CCCD handle
0x2A (42): Service AT State Characteristic Analog port state value handle
0x2B (43): Service AT State Characteristic Analog port state CCCD handle
0x2D (45): Service AT State Characteristic Device mode value handle
0x2E (46): Service AT State Characteristic Device mode CCCD handle
0x2F (47): Service AT Charging handle
0x31 (49): Service AT Charging Characteristic Charging state value handle
0x32 (50): Service AT Charging Characteristic Charging state CCCD handle
0x33 (51): Service AT Info handle
0x35 (53): Service AT Info Characteristic Mode features value handle
0x37 (55): Service AT Info Characteristic Digital availability value handle
0x39 (57): Service AT Info Characteristic Analog availability value handle
0x3E (62): Service AT Info Characteristic Pairing state value handle
0x3F (63): Service AT Info Characteristic Pairing state CCCD handle
0x40 (64): Service AT OTA handle
0x42 (66): Service AT OTA Characteristic SDK version value handle
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

https://devzone.nordicsemi.com/cfs-file/__key/support-attachments/beef5d1b77644c448dabff31668f3a47-427ce2ba20f9407cba3f41fb7cbbf9d0/trace.pcapng

Parents
  • On further inspection I see that the value field in the request is 0118, i.e. 0x1801, i.e. Generic Attribute service, which isn't in that range so the SD returns not found. I'll continue investigating the issue.

Reply
  • On further inspection I see that the value field in the request is 0118, i.e. 0x1801, i.e. Generic Attribute service, which isn't in that range so the SD returns not found. I'll continue investigating the issue.

Children
No Data