Dear all,

For a few weeks now, I have to use a Mac to do my job. I have two braille 
devices:
- a Focus 5 USB device
- A VarioUltra 40 USB-HID device

Before that, I used these two devices on Windows and Linux without any 
particular issues, either on a real Linux system with Brltty 6.6, or in a Linux 
VM hosted by Windows with the same Brltty 6.6.

On MacOS however I noticed something strange with my VarioUltra device: the 
transfer speed of the device (sending braille input / receiving braille dots to 
print) is very very slow. For example, if I type characters quickly, the device 
will freeze for several seconds and then the characters will be processed by 
BRLTTY, making it very inconfortable to use.

About my current setup:
- Running latest macOS Sonoma on an ARM64 (m2Pro) chip
- Running latest VMWare Fusion software version to use a Linux ARM64 Debian 
virtual machine
- Connect my braille device(s) to the VM and not to the Mac, so that BRLTTY can 
see and interact with them.


My observations:
- Using the Focus 40 5th generation connected to USB, everything works very 
well, nothing to complain about. I’m able to read and more importantly write 
very quickly  (typing at around 4 to 6 chars per second), and everything is 
responsive.
- Using the VarioULTRA 40 connected to USB-HID to the same VM, things are very 
sluggish: typing at the same speed will result in the situation described 
above, i.e. slowness / freeze of the device until either a key is pressed, or a 
certain time.


What I tried:
1) With the Focus 40:
- Works well everywhere: in a VM hosted by Windows/Mac, Linux host, and MacOS 
Host using the screen driver.
2) With the VarioULTRA device: Works well on a Linux VM hosted by Windows and 
linux Host, become sluggish on a Linux VM hosted by MacOS.
3) I tried to change hypervisors, and every software behaves the same, either 
with UTM or VMWare Fusion (UTM can use either QEMU backend for virtualisation, 
or Apple’s builtin virtualisation support).
4) I A few years ago, I noticed the very same behaviour with another USB-HID 
device (Brilliant BI 40X) connected to a real Linux host, but unfortunately was 
unable to investigate furthermore as I had this device for a couple of hours.

What I understood from the sources:
1) seems there is no Darwin HID support for now, so unable to test it with a 
compiled version for this OS with a screen driver, like I did with the Focus 40 
5th Generation.
2) It seems that the async_io stack which is responsible for scheduling 
input/ouput events (and other things as well) does some polling so that it does 
not actually « sleeps » for a given time before reading data from the device. I 
tried to understand how timeouts are computed, to see if the issue could come 
from this computation, but I’m still in the early stage of understanding this 
stack and I currently did not find anything regarding this.

Therefore, here are my questions:
1) Does anyone using an USB-HID device already experienced such behaviours in 
the past, and if so, did you manage to solve it?
2) Which logs would be necessary to investigate this furthermore (log 
categories / level)?
3) If you’re thinking about something I did not try yet, feel free to point it 
out, I’ll be happy to try it.

Many thanks in advance for your answers,

Best,

Yannick
_______________________________________________
This message was sent via the BRLTTY mailing list.
To post a message, send an e-mail to: [email protected]
For general information, go to: http://brltty.app/mailman/listinfo/brltty

Reply via email to