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
Alva BC680 doesn't initialize or initializes with wrong number of cells #8106
Comments
Thanks for your eport! @DrSooom commented on 21 mrt. 2018 12:45 CET:
The ALVA protocol doesn't tell anything about different behavior for the USB sockets on the ALVA BC680.
So you're saying the device is connected both with USB 1.1 and USB 2.0 at the same time to different pc's. Does this issue also occur when you only connect the device using USB 2.0, leaving the USB 1.1 port disconnected?
This issue is not clear to me. Could you provide exact steps to reproduce this issue?
Is this problem also not present when using USB 1.1?
I'm afraid I can't make anything sensible out of what Google translate made out of this.
This is a known bug, see #2315. We could probably avoid this by initializing the HID connection in non exclusive mode, though that's not the cleanest solution.
This should be covered by braille display auto detection (#1271)
Are you using both smartpads simultaneously to cause this, or only one smart pad? If the latter, i'm pretty sure this should be reproducible |
Could you also tell me on what firmware you are now? I hope some of the issues you're experiencing are just issues in firmware that have been resolved since than. |
1: There is an build-in USB hub on the USB1 connection, but not on USB2. The 4 GB USB Disk is connected via USB-A to this hub in the braille display itself. That also means that the USB Disk doesn't appear via USB2 on a PC. Here the plain text of the SETTINGS.A6 (config file of the ALVA BC680): Edit: The "#" before the digits was deleted. |
I'm pretty sure these ports are just called USB1 and USB2 because of that they are the first and second USB port, not because one port is USB1.1 and the other port is USB2.0. That's something a manual should tell me, though. I"m going to investigate this later this week.b |
NVDA protocol according to double set up the ALVA BC680: ERROR - braille.BrailleHandler.setDisplayByName (09:08:41.032): |
2: Yep, this issues also exists when only USB2 is connected to the braille display. The five characters was shown on the logon screen as well as directly after the login. The NVDA protocols also shows that the braille display only have 5 cells - which of course is wrong. See the zip archive for details (ignore the warnings regarding to the Audio-Themes-Add-on). "p1.txt" is the protocol directly after the login, "p2.txt" after restarting NVDA and "p3.txt" after restarting NVDA again with CTRL+ALT+N. Settings from the system menu of the ALVA BC680 (because this is easier to read instead of the A6-file):
Here the list of all braille hotkeys regarding to the firmware 3.0.2 that I know: |
Thanks for your logs. Could you please produce another log for the 5 cells situation as follows?
It would also help to have a log of the display failing to initialize even though it is connected. |
NVDA Bug #8106_20180322_p4.zip
The new logfile "p4.txt" shows the reconnecting phases via the braille setting window and the hanging situations after the iPhone has connected to the ALVA BC680. During all this the ALVA BC680 was connected to the NUC via USB1 and it was set up in NVDA 2015.3 - but I didn't make anything on the NUC during this time. The logfile was produce on my PC via USB2 and NVDA 2018.1. Edit: Start with the line 297 in the logfile. Edit 2: On line 1.382 the iPhone BT connection begins. |
I should note that I had trouble going from the DLL-based driver to the native driver without disconnecting and rebooting my BC640. So if you have both drivers installed and go from the old to the new in the braille settings dialog, this may fail. That could also explain why NVDA 2015.3 (DLL-based) and NVDA 2018.1 (native) aren't cooperating. |
As the issues also exists on USB2 while the braille display isn't connected to the NUC via USB1 (NVDA 2015.3), the different driver can't be the problem here. btw: I updated NVDA on my PC (USB2) from 2017.4 to 2018.1 last Sunday and had absolutely no problems with NVDA 2017.4 on USB2 and NVDA 2015.3 on USB1 at the same time until after the update. Braille display splitting was disabled all the time. And the manual says that the ALVA BC640 only have one USB port - not two. And the ability to insert a PC keyboard on the left USBA-A port on the ALVA BC680 is also available here. But as I wrote before there are no power supply and no USB-A cable (keyboard) plugged in on the left side of my ALVA BC680. |
This line really bothers me:
This display is sending a malformed display settings feature report, and because of this, NVDA assumes that the displays advertise 0 cells. That's why the connection fails here. Could you please place the alva.py file from this alva.zip into C:\Users\Daniel Mayr\AppData\Roaming\nvda\brailleDisplayDrivers and provide information about how that driver functions? If the behaviour is still broken, please provide another debug log. |
NVDA Bug #8106_20180323_p5 and p6.zip The log "p5.txt" shows the same procedure as "p4.txt but with your "alva.py". "p6.txt" shows that NVDA still recognize the above mentions braille specific hotkeys (e.g. open braille system menu, changing the interface and so on). Maybe you could lock this few braille key combos permanently in NVDA (NVDA should ignore dhem). Switching between USB1, SB2 and BT works now correctly - but I didn't test BT with BrailleBack at the moment. And I also have to test the whole thing with USB1 too. |
@DrSooom commented on 23 mrt. 2018 13:12 CET:
This is the byte compiled version of the ALVA.py file. When removing the modified driver, you have to remove both alva.py and alva.pyo
Were these key combinations ignored by the old driver? |
USB1 works fully correctly (excluding the braille specific hotkeys) and BrailleBack connects also correctly with the ALVA BC680 on USB1 and USB2 (including changing the interface). But one thing I don't understand: I disabled the default value fo SP2+Sp3 (emulating the Windows key), but when I press SP2+Sp3+SpUp (or SPDown or SpLeft or SPRight) NVDA says that I press the emulated key-combo WIN+ArrowKey. Why? You will find my "gestures.ini" in the first zip archive I posted. See also: #7783 The old driver in NVDA 2017.4 ignored them. |
I guess we can forcefully override the modifiers behavior for the keys that activate internal functionality. Is there a list of those, or can we safely assume that the only keys that trigger internal functionality are sp2+sp3+spUp/spDown/spLeft/spRight/spCenter? @DrSooom commented on 23 mrt. 2018 13:43 CET:
If no.2 is fixed, no.1 is fixed as well. 5 to 7 are beyond the scope of this issue as noted in #8106 (comment). Regarding the 9th point (keys not being released by the driver), I'd like an attempt from @dkager to reproduce. |
So, No. 1 was now successfully tested. Well done. Thanks a lot. No. 5 to 7 can now also be checked in this issue - I wanted to wait for this until I successfully tested your modified ALVA driver on the logon screen. And as far as I know there are only those five braille specific hotkeys on each side. I didn't figure more out (I took a look on my notes from January 3, 2018). Sadly not all the mentioned hotkeys above and as follow are written down in the manual. To complete the list from above:
As long as NVDA doesn't make any differences between the left and the right Smartpad (VoiceOver on iOS 10.3.3 does via BT) it should be enough just to block this five hotkeys. Sadly I couldn't figure out if BrailleBack also make this difference in detecting the braille keys. It didn't work as I want - I just moved the cursor in the learning-mode from VoiceView (build-in Screenreader on Fire OS) around ... and around ... and around and the Fire-Tablet only gave me the sound feedback that the cursor can't be moved in this direction. But what braille key was pressed wasn't spoken by VoiceView. Hmm... I can't remember if this ever worked. Well, doesn't matter. |
Some more points:
|
@dkager: I fully agree with your first two points. line 33 from my gestures.ini: "review_currentWord = br(baum):d2+d5+routing, br(alva.bc680):sp2+sp3, br(alvabc6):sp2+sp3, kb:downarrow+nvda+shift" Routing and SecondRouting works fully correctly from cell 1 to 80. |
Regarding the smartpad, I cannot reproduce the issue where keys get stuck using a BC640. This could also be a hardware issue. |
And here is the logfile: NVDA Bug #8106_20180324_p7.zip This issue doesn't exist on my NUC (USB1) with NVDA 2015.3 (tested now) and it didn't exist in December 2017 with NVDA 2017.1 (or 2017.4 - can't remember anymore) on my PC (USB2). Edit: Both smartpads were tested on the NUC and only the left one on the PC. The logfile shows an error in the new driver (go to the lines 247, 703 and 1.387). |
I guess we can forcefully override the modifiers behavior for the keys that activate internal functionality. Is there a list of those, or can we safely assume that the only keys that trigger internal functionality are sp2+sp3+spUp/spDown/spLeft/spRight/spCenter? @DrSooom commented on 23 mrt. 2018 13:43 CET:
If no.2 is fixed, no.1 is fixed as well. 5 to 7 are beyond the scope of this issue as noted in #8106 (comment). Regarding the 9th point (keys not being released by the driver), I'd like an attempt from @dkager to reproduce.
Could you please disable the broken audiothemes add-on as well as try to reproduce the bug while you aren't focussing an object with a blinking cursor in it? That makes reading the log quite a lot easier. Also: please describe exactly the steps you're taking to make the keys become in a disrupted state (i.e. which keys are you pressing in what sequence, when do the keys start hanging?) |
NVDA Bug #8106_20180326_p8.zip I did the following after changing the protocol/log-level:
|
Hmm, I think I found the issue, there's an error regarding using the startswith method on a None. Could you please try this try build? Please make sure that you remove the alva.py and alva.ppyo files, or run this as a portable copy. |
I created a portable version of NVDA as I thought that you changed more than the ALVA driver. That also means that I didn't use my own config - the default one was used. I now tested SP1+SP2+SP3, SP2+SP3+SP4 and SP1+SP2+SP3+SP4 on the left and on the right smartpad section via USB2 on my PC. Both now works correctly. In other words: The keys are recognized correctly by NVDA. Other keys on the ALVA BC680 can be pressed normally after pressing one of this three combos. What I mean exactly is the new combo feature in NVDA 2018.1 I mentioned before.
But this isn't now a new bug - it is just the result of #7783. |
@DrSooom: Could you also try pressing the smartpad buttons with the portable copy, but with your own gesture file? |
Okay, following happens:
|
Here is another try build. Could you please test this one as well with your gestures file? Also, just to make sure, could you share your gestures file again so I can check its validity manually? |
NVDA Bug #8106_20180329_p10, p11 and gestures.zip Well, with the NVDA snapshot_try-i8106-14989,3bb476b3.exe the second mentioned bug with the strange sound doesn't occur anymore. "p10.txt" is the logfile without my "gestures.ini" and "p11.txt" with it. In the input help mode I didn't recognized any differences. When now pressing SP1+SP2+SP3 simultaneously NVDA still interprets this as Shift+Win+Tab and so on with my "gestures.ini". Maybe a new "none" line in the "gestures.ini" could be a workaround for this - but this is not a suitable solution. btw: SP2 alone isn't regarding to the ALT key anymore by default in your new snapshot. |
@DrSooom commented on 29 mrt. 2018 14:41 CEST:
To make sure, is this also the case when using this snapshot without your gestures.ini? It looks like your gestures.ini has many outdated entries, referring to the old alva driver. May be it is better to start from scratch. |
This was tested without my "gestures.ini". My "gestures.ini" says: "review_previousCharacter = br(alvabc6):sp2, br(baum):d3+routing, kb:leftarrow+nvda+shift, br(alva.bc680):sp2" And the old "br(alvabc6):*" entries shouldn't care NVDA anymore at all. |
What happens if you press sp2 with keyboard help on? I can't find anything regarding that key press in the log. |
This is correct. You couldn't find this in the log because I only pressed these three SP-combos. Here is the logfile without my "gestures.ini" where I'm pressing SP1 alone followed by SP2, SP3 and SP4. NVDA Bug #8106_20180329_p12.zip In the Input Gesture windows SP2 isn't listed at the emulated ALT key entry too. And sorry, it seems that this time I forgot to close the python console during pressing those four SP-keys (= blinking cursor on the braille display). If you want I can test the whole thing via USB1 too - without a blinking braille cursor of course. ;) |
Ah, now I know what this was all about. There was a duplicate assignment for kb:alt in the gesture map. That has now been fixed in this try build. |
The following hotkeys regard now to no command - maybe because SP2 is now matched with the ALT key again:
But: SP2+SP3+SP4 = emulates now Alt+Win+B (combo of SP2 and SP3+SP4). All this was tested with and without my "gestures.ini". The Result is now exactly the same. NVDA snapshot_try-i8106-14994,fcd1ac68 was used as a portable version - as the other snapshots before. |
That looks like an unintentional, but nice fix for one problem you reported.
Is that a problem somehow? |
No, because this is exactly the behaviour regarding to #7783. Edit: I totally forgot that the above mentioned result also exists WITH my "gestures.ini". In that case the answer is "Yes", not "No". I will open a new bug report regarding this later because I think that this issue isn't ALVA-specific. -- Edit-End But it would be more useful that the five SP2+SP3+SP*-combos are mapped by default firm to nothing (= no reactions by NVDA when pressing these combos) or to the CTRL key. Emulating the CTRL key alone make less "damages" than any other keys. I think that this have to be defined in the ALVA driver itself. The Goal here should also be that the end user can't allocate any commands to those combos via the input gestures window because NVDA fully ignore them. |
Regarding to my last comment I opened now bug #8149. And regarding to this issue here I now successfully tested all 15 combos of etouch1 to etouch4, all 15 combos of SP1 to SP4 and all (hopefully) 31 combos of T1 to T5 via USB2 with nvda_snapshot_try-i8106-14994,fcd1ac68 (portable version). As there are thousands of combinations which can be pressed on an ALVA BC680 I'm not going to test this all. ;) But if you wish I can test those 61 combos via USB1 as well. |
@LeonarddeR: Could you please do the following:
As the device specific allocations overwrite the general divice allocations this new line should disable the five SP2+SP3-combos on the ALVA BC680 as well as on the ALVA BC640, even if one or all keys are allocated with an emulated key via "br(alva):". but those five combos are still not ignored by NVDA - the end user can still allocated them with any command via the input gestures dialog. Perhaps this solution is better than fully ignoring them at all. |
At the SightCity 2018 I could take a look on the ALVA 640 Comfort and the ALVA USB 640 Comfort. Both braille display have no SmartPad-keys anymore and the ALVA USB 640 Comfort has no braille keyboard, no Bluetooth, no build-in battery and no internal braille system menu. Optelec Germany also told me that the ALVA BC640 is no longer manufactured. btw: The headquarters of Optelec is located in The Netherlands. (I was wrong according this in my very first post. Sorry for the confusions and the inconveniences.) Regarding to the ALVA 640 Comfort there are two additional hotkeys which should be allocated by default to no command ("None"-line, see my previous post) or totally ignored by NVDA:
|
On Sunday, 18th March 2018, I sent an e-mail to info@optelec.de and as CC to 'info@nvaccess.org' From Optelec GmbH I got the info that the latest Firmware for the Optelec ALVA BC680 is 3.0.2 and that the main developer in the Netherlands has nothing to do with the new ALVA-driver in NVDA 2018.1.
As I have a few other time-consuming task to do in the upcoming days and weeks I just use google Translate for translating my German e-mail into English. If something makes no sense, just let me know and I will translate it manually. You will find the German original below the English translation.
The "nvda.ini" in the user-config-folder has the same checksum (SHA-256) as the one in the systemconfig-folder in (C:\Programme (x86)\NVDA). And in addition to #8 the ALVA BC680 also hangs immediately after connecting and disconnecting a Bluetooth connection to a iPhone (iOS 10.3.3)or tablet (Fire OS 5.6.0.1 with BrailleBack). This issue exists since NVDA 2018.1 while the braille display is connected via USB2.
===== Translation of the German e-mail into English by Google Translate =====
[...] Firmware version of my Optelec ALVA BC680: 3.0.2 (Bluetooth version: 1.20.0)
There is no network and no keyboard (USB-A socket on the Braille display) connected to the ALVA BC680. The USB1 port (left) is connected to my stand PC with my NUC and the USB2 interface (right).
In NVDA 2017.4, the Braille display driver via USB1 also worked perfectly smoothly via USB2. In NVDA 2018.1, the driver was rewritten from scratch, and I also had to reiterate the importance of the functions of the Braille display. But I would not write an e-mail now, if that had already become everything. There are a lot of new bugs in NVDA 2018.1.
I would like to ask you to e-mail the firmware version for the Optelec ALVA BC680. Maybe you can fix a bug here - maybe.
My main system (stand-pc): Windows 7 64-bit SP1, NVDA 2018.1 is installed, update of the current version of the BC680 via USB2 with the PC (USB 2.0 port directly on the mainboard)
Note: The ALVA BC680 is installed via USB1 with the NUC (Intel NUC5i3RYH, Win7x64Sp1, NVDA 2015.3, here no NVDA update planned for 2018.1 in the near future), connected to USB2 to the USB 3.0 port does not work properly because the Intel USB drivers under Windows 7 do not work properly. However, the connection via USB1 (possibly in the Braille itself) also works perfectly.
Here is the new list of bugs that do not yet apply with NVDA 2017.4:
===== Original e-mail in German =====
[…] Firmware-Version meiner Optelec ALVA BC680: 3.0.2 (Bluetooth-Version: 1.20.0)
Es ist kein Netzteil und auch keine Tastatur (USB-A-Buchse links an der Braillezeile) an der ALVA BC680 angeschlossen. Der USB1-Port (links) ist mit meinem NUC und der USB2-Port (rechts) mit meinem Stand-PC verbunden.
In NVDA 2017.4 funktionierte der Braillezeilen-Treiber via USB1 sowie via USB2 absolut problemlos. In NVDA 2018.1 wurde jener Treiber von Grund auf neu geschrieben, weshalb ich auch sämtliche Bedientasten der Braillezeile wieder den von mir gewünschten Funktionen zuweisen musste. Ich würde Ihnen jetzt aber keine E-Mail extra schreiben, wenn das schon alles gewesen wäre. Es kamen nämlich einige zahlreiche neue Bugs in NVDA 2018.1 dazu.
Zuvor darf ich Sie allerdings darum bitten mir so rasch wie nur möglich die aktuellste Firmware-Version für die Optelec ALVA BC680 via E-Mail zukommen zu lassen. Vielleicht können hierdurch ein paar der neuen Bugs gleich behoben werden – vielleicht.
Mein Haupt-System (Stand-PC): Windows 7 64-Bit SP1, NVDA 2018.1 ist installiert (keine portable Kopie, Update erfolgte heute Morgen von 2017.4 auf 2018.1), Anschluss der ALVA BC680 via USB2 mit dem PC (USB-2.0-Port direkt am Motherboard)
Anmerkung am Rande: Die ALVA BC680 ist via USB1 mit dem NUC (Intel NUC5i3RYH, Win7x64Sp1, NVDA 2015.3 installiert, hier kein NVDA-Update auf 2018.1 in der nahen Zukunft geplant) angeschlossen, da dort der Anschluss via USB2 an den USB-3.0-Port nicht korrekt funktioniert, weil die Intel-USB-Treiber unter Windows 7 nicht vollumfänglich ordentlich arbeiten. Der Anschluss via USB1 (möglicherweise dank dem USB-Hub in der Braillezeile selber) funktioniert aber tadellos.
Hier nun die Auflistung der neuen Bugs, die mit NVDA 2017.4 noch nicht auftragen:
The text was updated successfully, but these errors were encountered: