Arduino connection issue with Linux Mint 21.0
Every 3 or 4 years I try to wean myself off Apple computers and embrace the open source, non proprietary software option offered by diverse Linux distros. I have in the living room a Lenovo X201 running Linux Mint for playing Spotify and web browsing. The old laptop has been doing the job well for about 4 years. But when I try to use Linux on my main machine, after messing about with settings and installs for a couple of weeks I return to my slick macbooks and their crystal clear user experience.
December 2022: I felt the itch again and bought a decent Lenovo X1 laptop fifth generation for £230. I wiped Windows 11 and installed Linux Mint 21.0 XFCE. I often make robots and other programmable hardware things powered by Arduino microcontrollers. After installing the Arduino 2.0 software using the out of the box Software Manager I quickly found out that none of my Arduino boards were recognised by the system. The Arduino application displayed the message “No Board detected”. As a Linux newbie here is the detail of the fix, might be useful for someone :>))
I had joined the Dialout group as instructed (https://support.arduino.cc/hc/en-us/articles/360016495679-Fix-port-access-on-Linux). You can check if you belong to the dialout group by typing in Terminal the command: groups
Trailing Linux and Arduino forums I found a mention of a utility called BRLTTY that could be the cause of the problem. I had to do a bit more digging for fixing the fault.
First check if your board is listed in the tty devices:
Connect your Arduino to a USB port
in Terminal type: ls /dev
A long list of devices will appear. Look for ttyACMx or ttyUSBx [ x will be a number, for example ttyACM0 ].
If you don’t find anything like that it shows that your system has not loaded the board.
In Terminal type: dmesg
A very long list of Kernel-related information will appear. Look for information about your USB ports that looks like the following:
[ 8831.372900] ch341 1-6:1.0: ch341-uart converter detected
[ 8831.374994] usb 1-6: ch341-uart converter now attached to ttyUSB0
[ 8831.421366] input: PC Speaker as /devices/platform/pcspkr/input/input27
[ 8831.964820] input: BRLTTY 6.4 Linux Screen Driver Keyboard as /devices/virtual/input/input28
[ 8832.095593] usb 1-6: usbfs: interface 0 claimed by ch341 while ‘brltty’ sets config #1
[ 8832.100489] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[ 8832.100615] ch341 1-6:1.0: device disconnected
This shows that the system detected the board and attached it to USB0, then loaded BRLTTY utility. BRLTTY claimed the serial interface and subsequently the board was disconnected.
BRLTTY is an accessibility utility for blind people. If you do not need it, you can remove it from your system, together with its not needed dependent packages, by typing in Terminal:
sudo apt-get remove –auto-remove brltty
Unplug and re-plug your board, type again in Terminal: ls /dev
If all goes to plan you should now see a ttyUSBx or ttyACMx, and your Arduino IDE will now show the port.