If you connect the server with your printer, it might not work. In this FAQ entry we will show the most common reasons why it does not work and how to solve this.
- Port does not appear
With recent os your serial driver is normally detected out of the box. But in rare cases
you need to install the serial driver. For linux you need a kernel
where the driver was compiled in. - Which port to use
If you do not know which
port belongs to your printer, disconnect printer and check the offered port list. Add then the printer with main power enabled. The newly appeared port is the one you want. - Communication does not start
Make sure you have selected the right firmware type. Also the baud rate must match the one selected in your printer. The most frequently used
baud rates are 115200 and 250000 baud. - Still no communication
Most printers use the signals DTR/RTS to reset the printer. But a few use these to control data flow. In these cases only on combination of low/high, high/low, low/low or high/high will make sending and receiving work. You can change them in connection configuration. - When printer is enabled after server I get communication errors at the start under linux
The typical reason for this is a software called ModemManager that is often installed by default. It opens each appearing serial connection to test if it is a modem and this interferes with the servers communication. If you have no UMTS/5G modem using this you can simply uninstall it with:sudo apt-get remove modemmanager
Otherwise you need to teach the ModemManager to ignore the serial connection.
- After a while I only get timeouts in console
When a printer detects some kinds of errors it may go into an error mode where it does nothing, until you press the reset button. Normally, they send a message before that happens, which you see in the console and often also as warning dialog. However, for some errors and firmwares not in all cases a message is send, so it will look just like the printer is not responding any more when the printer goes into “wait for reset” mode. Known cases so far:
– Marlin 2.0.x with some temperature errors. So it might be, that the reason is a broken/shorted temperature sensor cable. Due to all the movements it is a quite frequent hardware defect and especially at the beginning it might only happen randomly at some positions.We detected that on linux systems the drivers for some serial chips might get into a problematic state where they only send data but won’t receive anything which then causes the timeouts you see. Starting with version 0.94.3 we have added an option on linux versions to reset the usb connection forcing the driver to restart. You find this in the serial connection definition under the name “USB Reconnect on Timeout”.
Enable it and try if this fixes the problem when detected. Some serial driver/printer combinations will
cause the printer to reset, so the help if not as good as for the combinations where it is possible to restart without reset. In that case a print would continue after a short pause. - Other software disturbs serial USB connection
It is possible, that other programs can disturb the serial USB connection. Some Linux distributions have pre-installed the braile reader BRLTTY, that can cause problems. With this command you can remove BRLTTY in SSH or in our terminal:sudo apt autoremove brltty
- Real serial connection hover RX/TX pins contains unidentified content beaking communication
If you connect directly via RX/TX pins to a printer board using a a real serial console there might be additional communication visible in firmware error messages that you can not explain. Here again some other service is talking with the same device and you need to find out which one. One reason for a raspberry pi or alike boards might be linux offering a serial console to work with the board without a display.To disable the serial console on a Raspberry Pi, you need to modify the boot configuration to remove the serial console settings and potentially disable the serial getty service. This prevents the kernel and other processes from using the serial port for outputting messages.
Here’s a breakdown of the process:
1. Modify
/boot/firmware/cmdline.txt
:- Open the
cmdline.txt
file in the/boot
directory using a text editor with root privileges (e.g.,sudo nano /boot/cmdline.txt
). - Locate and remove any lines containing
console=serial0,115200
(or similar, likeconsole=ttyAMA0
orconsole=ttyS0
). These lines specify that the serial port should be used as a console. - Save the changes and exit the editor.
2. Disable the serial getty service (optional but recommended):
- The
serial-getty@ttyAMA0.service
(or similar, likeserial-getty@serial0.service
) is responsible for starting a login process on the serial port. To fully disable the console, you should mask this service:sudo systemctl stop serial-getty@ttyAMA0.service
sudo systemctl mask serial-getty@ttyAMA0.service
- You may need to adjust the service name (
ttyAMA0
orserial0
) depending on your Raspberry Pi model and configuration.
- Open the