For a recent hobby project, I wanted to access a Raspberry Pi 3 B+ via serial console using an USB-to-serial cable. The setup is fairly easy and basically involves enabling the serial console via
raspi-config, connecting the USB-to-serial (a.k.a. USB-to-TTL) adapter cable to the right pins (the UART pins) and using a serial console emulator like
tmux or PuTTY to connect to the Raspi.
Despite this straight forward setup, I couldn’t get the serial console connection running. The console emulator (I’m using
screen on Linux) was either not responding or showing gibberish. I tried out other console emulators, other USB-to-serial adapters or a fresh installation of Raspberry Pi OS – still, nothing worked. There was not much advice on the web, either. Most posts only reiterated enabling the serial console via
/boot/config.txt or highlighted that using the correct baud rate was important. Others recommended disabling bluetooth and remapping the GPIO pins to use the hardware UART on the Raspi 3 which I didn’t want to mess around with.
In the end, I found the solution by chance: My Raspi most of the time complained about low voltage, but I couldn’t fix this since none of the power supplies and none of the USB cables that I tried seemed to satisfy the machine. The Raspi worked anyway so I didn’t bother much for the moment. However, I noticed that sometimes the serial console worked for a few seconds and this happend to coincide with the few seconds when there was no “low voltage” warning. In the end, the solution was using a USB-to-TTL adapter with strong enough power supply and short cables (long cables cause voltage loss), which fixed the low voltage problem and with it the unstable serial console connection. It’s important to note that you should disconnect the Raspi’s standard power supply (via mini-USB) before you connect the USB-to-TTL adapter’s power supply.
So the moral of the story is that the UART pins of the Raspi (at least of my version 3) seem to be very sensitive to power supply problems and you should always make sure that your Raspi doesn’t complain about “low voltage” when using a serial console connection.