Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Brailliant BI driver does not work over Bluetooth in Windows 10 #5195

Closed
nvaccessAuto opened this issue Jul 3, 2015 · 18 comments
Closed

Brailliant BI driver does not work over Bluetooth in Windows 10 #5195

nvaccessAuto opened this issue Jul 3, 2015 · 18 comments
Labels

Comments

@nvaccessAuto
Copy link

Reported by bramd on 2015-07-03 13:54
The Brailliant BI driver works fine in Windows 10 as long as the display is connected over USB. However, a connection over Bluetooth is not working. The correct COM port is recognized, but it seems the display is not responding. The traceback indicates the exception at line 127 of brailliantB.py is thrown.

@nvaccessAuto
Copy link
Author

Comment 1 by jteh on 2015-07-05 23:28
Since you mention Windows 10 specifically, I assume this did work fine for you in an earlier version of Windows? Have you updated the firmware of your display or anything like that recently?

How do you know the correct COM port is recognised? I assume you tried manually running the code in the _getPorts function, as the driver doesn't log attempted ports.

Do you see anything from the driver at log level debug warning?

@nvaccessAuto
Copy link
Author

Comment 2 by dkager on 2015-07-31 10:28
Just a quick note that I didn't get this display to work with Windows 10 build 10240 using another screen reader, too. There, neither USB nor Bluetooth works. With NVDA I got USB to work after a few tries. Bluetooth pops up an error message, worked fine on Windows 7 on the same machine. Using firmware 2.0.15 (the latest at the time of writing).

@nvaccessAuto
Copy link
Author

Comment 3 by jteh on 2015-08-09 23:29
Can one of you please do the following:

  1. Press NVDA+control+z to open the NVDA Python console.
  2. Paste the following line into the console:
    import hwPortUtils as h; list(h.listComPorts())
  3. Press enter.
  4. Press f6.
  5. Press control+a to select all, then control+c to copy.
  6. Paste what you copied into your reply.

@nvaccessAuto
Copy link
Author

Comment 4 by dkager on 2015-08-10 13:59
Here goes:

>>> import hwPortUtils as h; list(h.listComPorts())

[u'Standard Serial over Bluetooth link (COM6)', 'bluetoothName': u'Brailliant BI 40 DAVY', 'hardwareID': u'BTHENUM\\{00001101-0000-1000-8000-00805f9b34fb}_LOCALMFG&000a', 'bluetoothAddress': 162873314725L, 'port': u'COM6'}, {'friendlyName': u'Standard Serial over Bluetooth link (COM5)', 'hardwareID': u'BTHENUM\\{00001101-0000-1000-8000-00805f9b34fb}_LOCALMFG&0000', 'bluetoothAddress': 0, 'port': u'COM5'}, {'friendlyName': u'Communications Port (COM1)', 'hardwareID': u'ACPI\\VEN_PNP&DEV_0501', 'port': u'COM1'}, {'friendlyName': u'HumanWare Brailliant Virtual Com Port (COM4)', 'hardwareID': u'USB\\VID_1C71&PID_C005&REV_0002', 'port': u'COM4'}, {'friendlyName': u'TOSHIBA Software Modem', 'hardwareID': u'HDAUDIO\\FUNC_02&VEN_11C1&DEV_1040&SUBSYS_11790001&REV_1002', 'port': u'COM3'}]({'friendlyName':)

@nvaccessAuto
Copy link
Author

Comment 5 by jteh on 2015-08-11 00:51
Okay. So the correct COM port should be found (COM6).

The only thing I can think is that for some reason, the display seems to respond more slowly in Windows 10. Can you try this?

  1. Set braille display to no braille.
  2. Open the NVDA Python console.
  3. Type: import brailleDisplayDrivers.brailliantB as bb; import brailleDisplayDrivers.brailliantB as bb; bb.TIMEOUT = 1
  4. Try to set your display to Brailliant B via Bluetooth.

@nvaccessAuto
Copy link
Author

Comment 6 by dkager on 2015-08-12 09:01
Right, if I have the display connected to a USB power source and first press the power button on the BI 40 to turn on and blank the display, then I can select it in NVDA. However if I then exit NVDA and start it again without doing the power button trick it reverts to no braille. I tried the same thing on Windows 7 and there the display is also found without the power button needing to be pressed. Changing the timeout had no effect. So this is with USB power (from a PC) but the channel set to Bluetooth only.

Incidentally, using SuperNova on Windows 7 it also fails to activate the display half the time. Either the driver has problems or this display is a bit weird. I'm guessing the latter since Bluetooth doesn't need USB drivers.

@nvaccessAuto
Copy link
Author

Comment 7 by jteh on 2015-10-19 05:13
Does the fix for #5406 resolve/improve this?

@nvaccessAuto
Copy link
Author

Comment 8 by dkager on 2015-10-26 20:28
A quick test on a Windows 10 PC indeed shows improvements. I could exit and cold start NVDA and the BI 40 was picked up over Bluetooth. Not sure if that's due to the updated NVDA driver or because of the new Windows 10 installation, though. I'll test on my other PC too.

@nvaccessAuto
Copy link
Author

Comment 9 by bramd on 2015-10-26 22:15
I got mixed results on my Windows 10 machine and could not get it to work a few days ago. Even with the workaround of double pressing the power button to let the display show an empty line instead of the status information it didn't work. I had no time so just grabbed a USB cable, but will do another test tomorrow at my office.

However, on the same machine a few weeks ago it worked. So, I don't see a pattern yet.

@jcsteh
Copy link
Contributor

jcsteh commented Feb 8, 2016

@dkager, @bramd: I borrowed one of these displays while working on #5612. I wasn't able to reproduce this issue both with and without the changes from #5612. However, #5612 does tighten some things up a bit, so it may have improved things. It's also possible it was improved by a Windows Update; who knows given Microsoft's pathetic lack of documentation on updates. Anyway, unless you can still reproduce this, I think I'll just close this. Note that I don't have the display any more.

@dkager
Copy link
Collaborator

dkager commented Feb 15, 2016

Connecting the BI 40 through USB worked straight away without custom driver installation, but...
With firmware 2.0.15 on Windows 10 I just got the following traceback while reading with the thumb keys:

ERROR - unhandled exception (16:00:36):
Traceback (most recent call last):
  File "_ctypes/callbacks.c", line 314, in 'calling callback function'
  File "hwIo.pyc", line 116, in _ioDone
  File "hwIo.pyc", line 183, in _notifyReceive
  File "serial\serialutil.pyc", line 377, in setTimeout
  File "serial\serialwin32.pyc", line 177, in _reconfigurePort
ValueError: Cannot configure port, some setting was wrong. Original message: [Error 31] A device attached to the system is not functioning.

After that my thumb keys stopped working but braille output was unaffected. Choosing the braille display again from the settings fixed it.

@jcsteh
Copy link
Contributor

jcsteh commented Feb 15, 2016 via email

@dkager
Copy link
Collaborator

dkager commented Feb 16, 2016

This was USB, but with the slightly older firmware that doesn’t yet do HID I think. Maybe Windows 10 knows where to get a driver? It hasn’t happened since yesterday, so seems a rare thing.

From: James Teh [mailto:notifications@github.com]
Sent: Tuesday, February 16, 2016 00:00
To: nvaccess/nvda nvda@noreply.github.com
Cc: Davy Kager mail@davykager.nl
Subject: Re: [nvda] Brailliant BI driver does not work over Bluetooth in Windows 10 (#5195)

I'm confused. That traceback is serial, not HID, so that means you
should have needed a custom driver. Or was this exception when connected
via Bluetooth?


Reply to this email directly or view it on GitHub #5195 (comment) .

@dkager
Copy link
Collaborator

dkager commented Jun 1, 2016

Regarding the serial error in the comment above:
This seems to happen mostly if the system is under load, for example when compiling NVDA, and especially when you rapidly press the thumb keys. Could it be that the serial port is reconfigured by pyserial while the Brailliant still has some output (keypresses) queued? In that case setting a higher timeout value would probably not work.

Switching to the new firmware with HID support should avoid this problem. I'll probably upgrade soon, but wanted to document my findings in case it is of benefit to other serial displays. Would Bluetooth be affected?

@jcsteh
Copy link
Contributor

jcsteh commented Jun 1, 2016

Would you mind filing a separate issue for this exception/input failure? It's definitely not specific to the Brailliant. Thanks.

Btw, unless there's been another firmware release since December, I wouldn't recommend using Brailliant HID just yet. There are serious bugs in that mode (which I've reported to Humanware). Among other things, in HID mode, your display won't charge via USB while powered on. There's also slightly increased latency for key presses in HID mode. And I can't remember the exact details, but I encountered an issue where the display seems to hang when powered down and you have to force reset it. IMO, the QA on that release was utterly atrocious (which I also pointed out to Humanware, if a little more diplomatically).

@jcsteh
Copy link
Contributor

jcsteh commented Jun 1, 2016

Also, are you seeing any issues specific to the Brailliant and Bluetooth now? If not, I think we can close this.

@dkager
Copy link
Collaborator

dkager commented Jun 1, 2016

Also, are you seeing any issues specific to the Brailliant and Bluetooth now?

I mainly use a desktop PC without Bluetooth, but I believe @bramd has recent experience.

@bramd
Copy link
Contributor

bramd commented Jun 16, 2016

@jcsteh Yes, I used this display over Bluetooth recently. I usually try to prevent this due to latency and sluggishness. However, this seems to be related to the device/firmware and not NVDA specific.

There are a few BT issues with firmware 2.0.15, which are all firmware related. I'll document them here:

  1. Bluetooth doesn't seem to work at all in OpenBraille HID mode
  2. Bad performance, sluggishness, sometimes display updates quite slowly
  3. Pressing one of the space bars when the braille keyboard is turned off in the firmware crashes the display, it will just shut down
  4. After a while of inactivity, the display seems to hang and can only be get to work again with a hard reset (holding power button for 15 sec or so), this also happens over USB and also with BRLTTY on Linux, so not NVDA specific. Disabling/enabling sleep doesn't seem to matter for this issue.
  5. Display doesn't get recognized all the time on Bluetooth, power cycling and/or going in and out of the firmware config menu sometimes helps. However, this also seems to be a generic problem and not NVDA specific.

In short, yes, I think we can close this issue and hope there will be new firmware that will get some more QA and testing.

@jcsteh jcsteh closed this as completed Jun 16, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants