Skip to content

HumanWare driver does not work for Brailliant BI 40X on firmware 2.4.0_build4201 #17518

@bramd

Description

@bramd

Steps to reproduce:

  1. Ensure the Brailliant BI 40X is updated to version 2.4.0_build4201 and connected via Bluetooth (USB not tested as of yet)
  2. Try to select HumanWare Brailliant BI/B series as braille display

Actual behavior:

NVDA is unable to open the display. However, the display now works with the Standard HID driver. Using this driver no pressed keys are being processed, making the display quite unusable.

Expected behavior:

  1. The display should still work with the specific Brailliant BI driver
  2. The display should now work with Standard HID braille as well including ke presses, or it should be temporarily blacklisted if it's HID implementation does not confirm to the HID standard

NVDA logs, crash dumps and other attachments:

DEBUG - autoSettingsUtils.autoSettings.AutoSettings._registerConfigSaveAction (21:52:30.098) - MainThread (14868):
registering pre_configSave action: <class 'brailleDisplayDrivers.brailliantB.BrailleDisplayDriver'>
DEBUG - hwPortUtils.listUsbDevices (21:52:30.098) - MainThread (14868):
USB Id: 'VID_06CB&PID_00FC'
DEBUGWARNING - hwPortUtils.listUsbDevices (21:52:30.098) - MainThread (14868):
Couldn't get DEVPKEY_Device_BusReportedDeviceDesc for {'hardwareID': 'USB\\VID_06CB&PID_00FC&REV_0000', 'usbID': 'VID_06CB&PID_00FC', 'devicePath': '\\\\?\\usb#vid_06cb&pid_00fc#da3c89f1c180#{a5dcbf10-6530-11d2-901f-00c04fb951ed}'}: [WinError 1168] Element not found.
DEBUG - hwPortUtils.listUsbDevices (21:52:30.098) - MainThread (14868):
USB Id: 'VID_04F2&PID_B6EA'
DEBUG - hwPortUtils.listUsbDevices (21:52:30.098) - MainThread (14868):
USB Id: 'VID_8087&PID_0026'
DEBUGWARNING - hwPortUtils.listUsbDevices (21:52:30.098) - MainThread (14868):
Couldn't get DEVPKEY_Device_BusReportedDeviceDesc for {'hardwareID': 'USB\\VID_8087&PID_0026&REV_0002', 'usbID': 'VID_8087&PID_0026', 'devicePath': '\\\\?\\usb#vid_8087&pid_0026#5&389f0089&0&10#{a5dcbf10-6530-11d2-901f-00c04fb951ed}'}: [WinError 1168] Element not found.
DEBUG - hwPortUtils.listUsbDevices (21:52:30.098) - MainThread (14868):
Finished listing USB devices
DEBUG - hwPortUtils.listHidDevices (21:52:30.103) - MainThread (14868):
{'hardwareID': 'HID\\{00001124-0000-1000-8000-00805f9b34fb}_VID&00021d6b_PID&0246&Col02', 'devicePath': '\\\\?\\hid#{00001124-0000-1000-8000-00805f9b34fb}_vid&00021d6b_pid&0246&col02#8&30697e91&1&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'provider': 'bluetooth', 'vendorID': 7531, 'productID': 582, 'versionNumber': 0, 'manufacturer': 'Humanware', 'product': 'Brailliant BI 40X', 'HIDUsagePage': 65}
DEBUG - hwPortUtils.listHidDevices (21:52:30.103) - MainThread (14868):
{'hardwareID': 'HID\\VEN_ELAN&DEV_901C&Col05', 'devicePath': '\\\\?\\hid#elan901c&col05#5&2c55633&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'provider': None}
DEBUG - hwPortUtils.listHidDevices (21:52:30.106) - MainThread (14868):
{'hardwareID': 'HID\\VEN_ELAN&DEV_0672&Col03', 'devicePath': '\\\\?\\hid#elan0672&col03#5&3149a78b&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'provider': None}
DEBUG - hwPortUtils.listHidDevices (21:52:30.107) - MainThread (14868):
{'hardwareID': 'HID\\VEN_ELAN&DEV_0672&Col04', 'devicePath': '\\\\?\\hid#elan0672&col04#5&3149a78b&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'provider': None}
DEBUG - hwPortUtils.listHidDevices (21:52:30.107) - MainThread (14868):
{'hardwareID': 'HID\\VEN_ELAN&DEV_901C&Col01', 'devicePath': '\\\\?\\hid#elan901c&col01#5&2c55633&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'provider': None}
DEBUG - hwPortUtils.listHidDevices (21:52:30.107) - MainThread (14868):
{'hardwareID': 'HID\\{00001124-0000-1000-8000-00805f9b34fb}_VID&00021d6b_PID&0246&Col03', 'devicePath': '\\\\?\\hid#{00001124-0000-1000-8000-00805f9b34fb}_vid&00021d6b_pid&0246&col03#8&30697e91&1&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}\\kbd', 'provider': 'bluetooth', 'vendorID': 7531, 'productID': 582, 'versionNumber': 0, 'manufacturer': 'Humanware', 'product': 'Brailliant BI 40X', 'HIDUsagePage': 1}
DEBUG - hwPortUtils.listHidDevices (21:52:30.107) - MainThread (14868):
{'hardwareID': 'HID\\VEN_ELAN&DEV_901C&Col02', 'devicePath': '\\\\?\\hid#elan901c&col02#5&2c55633&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'provider': None}
DEBUG - hwPortUtils.listHidDevices (21:52:30.107) - MainThread (14868):
{'hardwareID': 'HID\\INTC816&Col01', 'devicePath': '\\\\?\\hid#intc816&col01#3&36043c54&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\\kbd', 'provider': None}
DEBUG - hwPortUtils.listHidDevices (21:52:30.107) - MainThread (14868):
{'hardwareID': 'HID\\VEN_ELAN&DEV_901C&Col03', 'devicePath': '\\\\?\\hid#elan901c&col03#5&2c55633&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'provider': None}
DEBUG - hwPortUtils.listHidDevices (21:52:30.107) - MainThread (14868):
{'hardwareID': 'HID\\INTC816&Col02', 'devicePath': '\\\\?\\hid#intc816&col02#3&36043c54&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'provider': None}
DEBUG - hwPortUtils.listHidDevices (21:52:30.107) - MainThread (14868):
{'hardwareID': 'HID\\VEN_ELAN&DEV_901C&Col04', 'devicePath': '\\\\?\\hid#elan901c&col04#5&2c55633&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'provider': None}
DEBUG - hwPortUtils.listHidDevices (21:52:30.107) - MainThread (14868):
{'hardwareID': 'HID\\VEN_ELAN&DEV_0672&Col01', 'devicePath': '\\\\?\\hid#elan0672&col01#5&3149a78b&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'provider': None}
DEBUG - hwPortUtils.listHidDevices (21:52:30.107) - MainThread (14868):
{'hardwareID': 'HID\\{00001124-0000-1000-8000-00805f9b34fb}_VID&00021d6b_PID&0246&Col01', 'devicePath': '\\\\?\\hid#{00001124-0000-1000-8000-00805f9b34fb}_vid&00021d6b_pid&0246&col01#8&30697e91&1&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'provider': 'bluetooth', 'vendorID': 7531, 'productID': 582, 'versionNumber': 0, 'manufacturer': 'Humanware', 'product': 'Brailliant BI 40X', 'HIDUsagePage': 147}
DEBUG - hwPortUtils.listHidDevices (21:52:30.111) - MainThread (14868):
{'hardwareID': 'HID\\VEN_ELAN&DEV_0672&Col02', 'devicePath': '\\\\?\\hid#elan0672&col02#5&3149a78b&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'provider': None}
DEBUG - hwPortUtils.listHidDevices (21:52:30.111) - MainThread (14868):
Finished listing HID devices
DEBUG - hwPortUtils.listComPorts (21:52:30.111) - MainThread (14868):
{'hardwareID': 'BTHENUM\\{00001101-0000-1000-8000-00805f9b34fb}_LOCALMFG&0000', 'port': 'COM4', 'bluetoothAddress': 0, 'friendlyName': 'Standard Serial over Bluetooth link (COM4)'}
DEBUG - hwPortUtils.listComPorts (21:52:30.112) - MainThread (14868):
{'hardwareID': 'BTHENUM\\{00001101-0000-1000-8000-00805f9b34fb}_VID&00010047_PID&f000', 'port': 'COM3', 'bluetoothAddress': 32226523796, 'bluetoothName': 'Basic Braille BB4/B2-17100', 'friendlyName': 'Standard Serial over Bluetooth link (COM3)'}
DEBUG - hwPortUtils.listComPorts (21:52:30.112) - MainThread (14868):
Finished listing com ports
DEBUG - hwIo.hid.Hid.__init__ (21:52:30.112) - MainThread (14868):
Opening device \\?\hid#{00001124-0000-1000-8000-00805f9b34fb}_vid&00021d6b_pid&0246&col02#8&30697e91&1&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
DEBUG - hwIo.hid.Hid.__init__ (21:52:30.112) - MainThread (14868):
usage ID: 0X1
DEBUG - hwIo.hid.Hid.__init__ (21:52:30.112) - MainThread (14868):
usage page: 0X41
DEBUG - hwIo.hid.Hid.__init__ (21:52:30.112) - MainThread (14868):
Report byte lengths: input 14, output 41, feature 17
DEBUG - hwIo.hid.Hid.getFeature (21:52:31.116) - MainThread (14868):
Get feature b'\x01' failed: [WinError 1] Incorrect function.
DEBUG - hwIo.hid.Hid.getFeature (21:52:31.318) - MainThread (14868):
Get feature b'\x01' failed: [WinError 1] Incorrect function.
DEBUG - hwIo.hid.Hid.getFeature (21:52:31.518) - MainThread (14868):
Get feature b'\x01' failed: [WinError 1] Incorrect function.
DEBUG - hwIo.base.IoBase.close (21:52:31.518) - MainThread (14868):
Closing
DEBUG - hwIo.hid.Hid.__init__ (21:52:31.518) - MainThread (14868):
Opening device \\?\hid#{00001124-0000-1000-8000-00805f9b34fb}_vid&00021d6b_pid&0246&col03#8&30697e91&1&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
DEBUG - hwIo.hid.Hid.__init__ (21:52:31.518) - MainThread (14868):
Open failed: [WinError 5] Access is denied.
DEBUGWARNING - brailleDisplayDrivers.brailliantB.BrailleDisplayDriver.__init__ (21:52:31.518) - MainThread (14868):
Traceback (most recent call last):
  File "brailleDisplayDrivers\brailliantB.pyc", line 150, in __init__
  File "hwIo\hid.pyc", line 160, in __init__
PermissionError: [WinError 5] Access is denied.
DEBUGWARNING - hwIo.base.IoBase.__del__ (21:52:31.518) - MainThread (14868):
Couldn't delete object gracefully
Traceback (most recent call last):
  File "hwIo\base.pyc", line 172, in __del__
  File "hwIo\hid.pyc", line 326, in close
AttributeError: 'Hid' object has no attribute '_isClosed'
DEBUG - hwIo.hid.Hid.__init__ (21:52:31.518) - MainThread (14868):
Opening device \\?\hid#{00001124-0000-1000-8000-00805f9b34fb}_vid&00021d6b_pid&0246&col01#8&30697e91&1&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
DEBUG - hwIo.hid.Hid.__init__ (21:52:31.518) - MainThread (14868):
usage ID: 0X1
DEBUG - hwIo.hid.Hid.__init__ (21:52:31.518) - MainThread (14868):
usage page: 0X93
DEBUG - hwIo.hid.Hid.__init__ (21:52:31.522) - MainThread (14868):
Report byte lengths: input 46, output 44, feature 39
DEBUG - hwIo.hid.Hid.close (21:52:31.522) - MainThread (14868):
Attempted to close an already closed device.
DEBUG - hwIo.hid.Hid.getFeature (21:52:32.983) - MainThread (14868):
Get feature: b'\x01\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
DEBUG - hwIo.hid.Hid.getFeature (21:52:33.206) - MainThread (14868):
Get feature: b'\x01\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
DEBUG - hwIo.hid.Hid.getFeature (21:52:33.425) - MainThread (14868):
Get feature: b'\x01\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
DEBUG - hwIo.base.IoBase.close (21:52:33.426) - MainThread (14868):
Closing
ERROR - braille.BrailleHandler.setDisplayByName (21:52:33.427) - MainThread (14868):
Error initializing display driver 'brailliantB'
Traceback (most recent call last):
  File "braille.pyc", line 2515, in setDisplayByName
  File "braille.pyc", line 2585, in _setDisplay
  File "braille.pyc", line 2555, in _switchDisplay
  File "extensionPoints\util.pyc", line 216, in callWithSupportedKwargs
  File "brailleDisplayDrivers\brailliantB.pyc", line 186, in __init__
RuntimeError: No display found
DEBUG - hwIo.hid.Hid.close (21:52:33.428) - MainThread (14868):
Attempted to close an already closed device.
IO - speech.speech.speak (21:52:33.553) - MainThread (14868):
Speaking [LangChangeCommand ('en_GB'), 'Braille Display Error', 'dialog', 'Could not load the brailliantB display.', CancellableSpeech (still valid)]
IO - speech.speech.speak (21:52:33.558) - MainThread (14868):
Speaking [LangChangeCommand ('en_GB'), 'OK', 'button', CancellableSpeech (still valid)]
IO - inputCore.InputManager.executeGesture (21:52:34.933) - winInputHook (17828):
Input: kb(laptop):NVDA+control+shift+f1

System configuration

NVDA installed/portable/running from source:

Installed

NVDA version:

2024.4.1

Windows version:

Version 23H2 (OS Build 22631.4602)

Name and version of other software in use when reproducing the issue:

N/A

Other information about your system:

Other questions

Does the issue still occur after restarting your computer?

Yes

Have you tried any other versions of NVDA? If so, please report their behaviors.

No

If NVDA add-ons are disabled, is your problem still occurring?

Yes

Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?

Yes

Metadata

Metadata

Assignees

No one assigned

    Labels

    component/braille-display-driversp2https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#prioritytriagedHas been triaged, issue is waiting for implementation.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions