[BRLTTY] [issue] HID braille device very slow under certain conditions

Jason J.G. White jason at jasonjgw.net
Tue Jun 4 08:03:14 EDT 2024


Although I can't assist with your problem, I would suggest that, if no 
solution becomes available quickly, you could investigate the Asahai 
Linux project and its Fedora integration. This would allow you to dual 
boot your Mac by installing Linux alongside MacOS.

On 4/6/24 04:20, Yannick PLASSIARD wrote:
> 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: BRLTTY at brltty.app
> For general information, go to: http://brltty.app/mailman/listinfo/brltty


More information about the BRLTTY mailing list