Brltty causes failure to find USB serial devices

Device: Dell Latitude 5410
Zorin OS 17

I am not a developer, but I do work with 3D printers frequently. I decided to install Zorin on a laptop of mine, and everything was going smoothly until I tried to do the same thing I'd done hundreds of times before on various other machines - connect a 3D printer to Pronterface. I was pleased to find pronterface already in the package manager, and installed it without problems. However, when I wired the printer to the laptop via a good USB cable and attempted to connect, nothing happened. No devices popped up in pronterface, no ports becoming available for connection like I'd come to expect from this process. In total, I spent around two hours trying to figure out why something as intuitively basic as connecting a serial device wouldn't work, until I found the seemingly random suggestion to uninstall a package called 'brltty' in an Ubuntu forum. With no idea of what else to try, I did so to find that it suddenly worked flawlessely. The printer showed up in pronterface, and communications were fine.

So... why does a thing for screen readers stop USB serial connections from working properly, why is it included if it causes such an issue, and can it be fixed? Overall the polish so far from Zorin has been excellent, except for this annoying and seemingly preventable niggle.

I suspect the 3d Printer is not your everyday printer. By that I mean I have no issues with my printer connected to my usb port. brltty is not just fo screen readers, it is there for people who access a computer using a Braille input device such as the Brailliant.

Which can also be used to install Devuan by a blind user.

As far as I understand it, normal printers do not connect in the same way as 3D printers, though they use the same connector. I must select Baud rate and a COM port to connect to a 3D printer, and the connection is through a USB serial adapter (ttyUSB). I've also used a normal printer with the laptop prior to the brltty problems without issues. I don't think the functionality of normal printers is relevant here other than to diagnose why it happens with serial devices specifically. I am confident that this issue does not stem with some flaw from my hardware specifically, as numerous similar reports of this have been with Arduino projects, ESP32 boards, and various 3D printers, which as I understand it use a similar system for communication for their microcontrollers and suffer the same issue.

https://www.reddit.com/r/pop_os/comments/uf54bi/how_to_remove_or_disable_brltty/
https://www.reddit.com/r/pop_os/comments/vgn7l9/brltty_fighting_with_my_devttyusb0_for_mcu/
https://www.reddit.com/r/digirig/comments/v4rxer/fix_for_ubuntu_2204_serial_device_issue_credit/
https://www.reddit.com/r/octoprint/comments/usccvr/solved_ender_3_usb_connection_issue_on_ubuntu_2204/

I appreciate your troubles, but accessibility is important for users with no vision also. Perhaps a newer kernel has overcome these issues or perhaps accessibility packages need to adapt to bluetooth drivers which is what the Brailliant uses.

From what I understand about this issue, this only happens with serial devices that have generic USB identifiers, since there are plenty of these Braille displays that use them. It's likely the case that your 3D printer also uses a generic ID, which causes brltty to detect it and get a hold of it, while ignoring other devices.

With the printer connected, what is the output of running lsusb on the terminal?

Hello zenzen,
Connected:
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 0bda:5539 Realtek Semiconductor Corp. Integrated_Webcam_HD
Bus 001 Device 005: ID 1a86:7523 QinHeng Electronics CH340 serial converter
Bus 001 Device 003: ID 8087:0026 Intel Corp. AX201 Bluetooth
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Disconnected:
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 0bda:5539 Realtek Semiconductor Corp. Integrated_Webcam_HD
Bus 001 Device 003: ID 8087:0026 Intel Corp. AX201 Bluetooth
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

That's the one, same as used by other devices that plug in via USB. There is a hard-coded rule to attach to this type of device, and others with specific identifiers, written in /usr/lib/udev/rules.d/85-brltty.rules:

291-# Device: 1A86:7523
292-# Baum [NLS eReader Zoomax (20 cells)]
293:ENV{PRODUCT}=="1a86/7523/*", ENV{BRLTTY_BRAILLE_DRIVER}="bm", GOTO="brltty_usb_run"

I hope at least that answers your question as to why this happened.

Not including brltty by default may seem like a good option, and I don't necessarily disagree, but without a better software alternative to handle Braille input terminals, the choice right now is between which group to inconvenience more. Given that it's a relative easy fix, I think it makes sense the way it is right now.

@Monsieur_Pure Hi and welcome to the forum. I moved this thread from Feedback to General Help, as you were seeking assistance rather than giving OS feedback. Zab

1 Like

Thank you for the explanation. Personally I am in favor of not including it by default but offering it as an accessibility option. I have no idea how many people actually use brltty with Zorin to warrant it as a default installation, but I understand the concern in weighing accessibility features against the expectation of convenience for someone trying to use their computer to connect to serial devices. I suppose I can mark this as solved, and hope that anyone who has the same problem in the future has an easier time finding this.

1 Like