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

esp32 microController is identified as Caiku Albatross 46/80 braille display #15671

Closed
beqabeqa473 opened this issue Oct 23, 2023 · 16 comments
Closed
Labels
p5 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation.
Milestone

Comments

@beqabeqa473
Copy link
Contributor

Steps to reproduce:

Plug esp32 pico board like m5stack device into usb port

Actual behavior:

After starting NVDA, if autodetect braille display is selected, it identifies this esp32 board as braille display and is sending commands of pressing routing, wheel or other buttons

Expected behavior:

NVDA should not identify esp32 boards as braille displays

NVDA logs, crash dumps and other attachments:

System configuration

NVDA installed/portable/running from source:

Installed

NVDA version:

Version: alpha-29610,03c8abe6 (2024.1.0.29610)

Windows version:

Windows 10 22H2 (AMD64) build 19045.3448

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

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.

Yes, latest master code

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

@CyrilleB79
Copy link
Collaborator

@beqabeqa473, have you tested NVDA 2023.3rc1?
If the issue is also there, it would be worth mentioning it.
And if you have not tested, it would be worth testing it.

@CyrilleB79
Copy link
Collaborator

Cc @burmancomp

@beqabeqa473
Copy link
Contributor Author

beqabeqa473 commented Oct 23, 2023 via email

@burmancomp
Copy link
Contributor

If it has same pid&vid and if it sends packet starting with \xff and after it any other byte albatross driver has detected albatross braille display. I suppose controller has serial port shown in windows? Other displays (at least many of them) wait that they are queried but albatross sends initialization packet continuously so driver detects it reading bytes. Suggestion is that albatross is excluded from auto detect list.

@seanbudd
Copy link
Member

Yes, you'll have to exclude the albatross display in settings.
It seems that the albatross hardware uses this device, and is likely indistinguishable.

@seanbudd seanbudd closed this as not planned Won't fix, can't repro, duplicate, stale Oct 23, 2023
@beqabeqa473
Copy link
Contributor Author

It is not a case.

In this situation might be not only me, and i advice to disable it by default from autodetection, as this might cause some serious issues. @seanbudd

@burmancomp
Copy link
Contributor

besides me there are no others using albatross actively, and there are very few devices (my estimation is about 5), and at least one is not working properly.

Excluding albatross by default from auto detection is not problem.

@lukaszgo1
Copy link
Contributor

Looking at the BRLTTY driver for Albatross it turns out that in addition to matching on PID&VID they also match on a manufacturer name "Tivomatic Oy". This suggests that the problem is, at least in theory, fixable, though if it is worth the effort for a very few users is an open question.

@beqabeqa473
Copy link
Contributor Author

beqabeqa473 commented Oct 24, 2023 via email

@seanbudd
Copy link
Member

@burmancomp

Looking at the BRLTTY driver for Albatross it turns out that in addition to matching on PID&VID they also match on a manufacturer name "Tivomatic Oy". This suggests that the problem is, at least in theory, fixable, though if it is worth the effort for a very few users is an open question.

Can you confirm this is a reliable way to detect albatross drivers?

@seanbudd seanbudd reopened this Oct 24, 2023
@burmancomp
Copy link
Contributor

As to brltty source code there are handytech and hims displays with same vid and bit as albatross. In those drivers manufacturer is ftdi. In windows usb serial port of albatross is as ftdi usb port.

There is no other driver albatross uses in windows so very likely there are no references to tivomatic.

I can investigate it little however.

@burmancomp
Copy link
Contributor

But there is also ftdi driver in usb drivers category: usb serial converter. In properties, details tab, there is bus reported device description which value is albatross braille display. This value should not be same with esp32.

How to check this in albatross driver?

@beqabeqa473
Copy link
Contributor Author

beqabeqa473 commented Oct 25, 2023 via email

@lukaszgo1
Copy link
Contributor

I haven't worked at that low level, and not having a device to test does not help, but I'd probably start investigating as follows:

  • in hwPortUtils.listComPorts try logging the entire hwID, to make sure there is no manufacturer mentioned there
  • In the same function verify what is friendlyName set to for these ports, though that may not yield anything useful
  • For more inspiration you may also take a look at _getHidInfo in the same module, as that function retrieves additional info from the device

@seanbudd seanbudd added p5 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation. labels Oct 30, 2023
@LeonarddeR
Copy link
Collaborator

LeonarddeR commented Dec 12, 2023

@beqabeqa473 wrote:

It is very serious issue, which should be fixed as soon as possible to eliminate false-positive reactions from screenreader.

If this issue is that serious to you, could you please address @seanbudd's repeated request for feedback in #15693 ? Otherwise it cannot be guaranteed that the problem will be solved in 2024.1.

@beqabeqa473
Copy link
Contributor Author

beqabeqa473 commented Dec 12, 2023 via email

@seanbudd seanbudd added this to the 2024.1 milestone Dec 14, 2023
Adriani90 pushed a commit to Adriani90/nvda that referenced this issue Mar 13, 2024
…5928)

fixes nvaccess#15671

Summary of the issue:
Albatross driver handled Esp32 microcontroller as Albatross display if controller send valid init packet. This is problem especially when displays are detected automatically.

Description of user facing changes
When using usb connection, driver can check that bus reported device description is "Albatross Braille Display". Esp32 is not detected automatically as Albatross.

Description of development approach
_searchPorts function blocks port if VID and PID are correct but bus reported bus reported device description is not "Albatross Braille Display", in other cases port is valid to try to connect.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
p5 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants