Quickie: Problems with the PIUART

All rights reserved to LadaAda

It’s been a while since I’ve done a quickie, but I wanted to put this out there before I forget it.

Now, I openly admit that I found this by searching for a while and am basically going to copy and paste the answer; however, I’m going to add some additional information so that when Google (or some other search engine) crawls across my website it’ll be easier for others to find this page and they won’t have to spend so much time searching.

So I got the Adafruit PiUART from Microcenter, just to pick it up and I thought it looked cute as it fit just perfectly on the Pi itself (unlike using a “traditional” USB to Serial converter).

So I followed the directions listed here, which basically show how to enable a serial console using `raspi-config`; however, when plugging it in, I got this in `dmesg`:

[121428.924972] usb 2-1.3: new full-speed USB device number 6 using xhci_hcd
[121429.033381] usb 2-1.3: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00
[121429.033386] usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[121429.033390] usb 2-1.3: Product: CP2104 USB to UART Bridge Controller
[121429.033392] usb 2-1.3: Manufacturer: Silicon Labs
[121429.033395] usb 2-1.3: SerialNumber: 01A0FEC4
[121429.640723] usbcore: registered new interface driver cp210x
[121429.640737] usbserial: USB Serial support registered for cp210x
[121429.640791] cp210x 2-1.3:1.0: cp210x converter detected
[121429.645560] usb 2-1.3: cp210x converter now attached to ttyUSB2
[121429.768218] usb 2-1.3: usbfs: interface 0 claimed by cp210x while 'brltty' sets config #1
[121429.769908] cp210x ttyUSB2: cp210x converter now disconnected from ttyUSB2
[121429.770030] cp210x 2-1.3:1.0: device disconnected
[121430.260637] input: BRLTTY 6.0 Linux Screen Driver Keyboard as /devices/virtual/input/input19
[121770.452594] usb 2-1.3: USB disconnect, device number 6
[121772.725940] usb 2-1.3: new full-speed USB device number 7 using xhci_hcd
[121772.838333] usb 2-1.3: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00
[121772.838339] usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[121772.838342] usb 2-1.3: Product: CP2104 USB to UART Bridge Controller
[121772.838344] usb 2-1.3: Manufacturer: Silicon Labs
[121772.838347] usb 2-1.3: SerialNumber: 01A0FEC4
[121772.841427] cp210x 2-1.3:1.0: cp210x converter detected
[121772.846646] usb 2-1.3: cp210x converter now attached to ttyUSB2
[121773.460377] usb 2-1.3: usbfs: interface 0 claimed by cp210x while 'brltty' sets config #1
[121773.461454] cp210x ttyUSB2: cp210x converter now disconnected from ttyUSB2
[121773.461551] cp210x 2-1.3:1.0: device disconnected
[121773.955520] input: BRLTTY 6.0 Linux Screen Driver Keyboard as /devices/virtual/input/input20

So as we can see, it starts to register the device as /dev/ttyUSB2, but then `brltty` takes over and says “thanks, but I’ll take it from here” and when I try to connect to it, the device is no longer there.

First off, what is brltty? Well it’s the Braille tty daemon, simply put. I didn’t put too much stock into trying to figuring it out; however, I knew that was the problem.

Adafruit’s directions doesn’t give any troubleshooting advice. My first guess was to try and search currently running daemons using systemctl and stop the daemons. I tried that, but systemctl wouldn’t let me stop them…something about them being a prereq to something (IIRC). So with that not working I had to search until I came across an OpenSuSE Forum post.

Solution

Basically, I was able to solve it by just removing brltty. Now if you need Braille support, then this obviously won’t work for you, but I’m (relatively) able-bodied, so I had no problems just chucking it.

su
zypper rm brltty brltty-driver-at-spi2 brltty-driver-brlapi brltty-driver-espeak brltty-driver-speech-dispatcher brltty-driver-xwindow brltty-lang

Now, for me it said there was some errors and to check with `zypper ps`, so I did and I shut down all of the brltty instances:


zypper ps
systemctl stop brltty@

After doing that, unplugging and replugging the device back in, I was successfully able to connect using picocom (my preferred serial terminal emulator). The baud speed is 11500, but you can get that from the Adafruit docs.

Now, I’m using it on a Pi0W, so using a serial console doesn’t make too much sense, since I can just ssh over Wi-Fi, but that’s a different story. 🙂

This entry was posted in Computer Science, Engineering and tagged , , , . Bookmark the permalink.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.