I am working on a program to read Samsung gearVRC (remote controller). Its a device that does not have windows drivers but one can directly read it with a custom program (https://github.com/rdady/gear-vr-controller-linux)
I was able to scan for devices, services and characteristics on the device using the standard service_explorer.py example, however I was getting the "Unreachable" and not connected errors.
I found that a reliable way to solve the problem is by removing the device from the system and starting with a system that has no prior knowledge of the bluetooth device:
- Settings
- Bluetooth & devices
- Devices
- Click on 3 dots next to the device name
- Remove Device
- Bluetooth Slider to Off and back to On
- If device reappears, repeat removal (above two steps), after one repetition device should be permanently removed
The unreachable problem is likely Windows related as it also occurs with BLEConsole (https://github.com/sensboston/BLEConsole)
Hypothesis is that when bluetooth connection is closed, Windows retains device information that triggers a disconnection (either by Windows or the device itself). Its also possible that the incorrect device information is related to pairing. Since there is no BLE command line tool for pairing in Windows, its difficult to test.
Request
It would be useful if the documentation section Troubleshooting would list how to completely remove a Bluetooth device from a Windows system, and suggesting this as troubleshooting step before investigating the device with Wireshark.
What I Did
I made my own program to read the battery status of my device and below, in LOG file section, is the sample output.
One can see that the GattService is getting closed before its possible to read the characteristic. The same behaviour can be seen with examples/service_explorer.py:
I removed battery from the device to reset it. It did NOT solve the issue.
I attempted pairing with:
paired = await client.pair(protection_level=2)
print("{} is {}".format(DEVICE_NAME, 'paired' if paired else 'not paired'))
regardless of the protection_level, bleak reports device is NOT paired.
I removed the device from the system as described above and it SOLVED the issue. I need to remove the device manually each time before I can use it though.
Therefore, I attempted creating a powershell script for automatic device removal (see below) but so far I have NOT been able to mimic the manual steps listed above.
Description
I am working on a program to read Samsung gearVRC (remote controller). Its a device that does not have windows drivers but one can directly read it with a custom program (https://github.com/rdady/gear-vr-controller-linux)
I was able to scan for devices, services and characteristics on the device using the standard service_explorer.py example, however I was getting the "Unreachable" and not connected errors.
I found that a reliable way to solve the problem is by removing the device from the system and starting with a system that has no prior knowledge of the bluetooth device:
The unreachable problem is likely Windows related as it also occurs with BLEConsole (https://github.com/sensboston/BLEConsole) Hypothesis is that when bluetooth connection is closed, Windows retains device information that triggers a disconnection (either by Windows or the device itself). Its also possible that the incorrect device information is related to pairing. Since there is no BLE command line tool for pairing in Windows, its difficult to test.
Request
It would be useful if the documentation section Troubleshooting would list how to completely remove a Bluetooth device from a Windows system, and suggesting this as troubleshooting step before investigating the device with Wireshark.
What I Did
I made my own program to read the battery status of my device and below, in LOG file section, is the sample output. One can see that the GattService is getting closed before its possible to read the characteristic. The same behaviour can be seen with examples/service_explorer.py:
I attempted changing options for
which did NOT solve the unreachable issue.
I removed battery from the device to reset it. It did NOT solve the issue.
I attempted pairing with:
regardless of the protection_level, bleak reports device is NOT paired.
I removed the device from the system as described above and it SOLVED the issue. I need to remove the device manually each time before I can use it though.
Therefore, I attempted creating a powershell script for automatic device removal (see below) but so far I have NOT been able to mimic the manual steps listed above.
Logs