Cannot find my printer, cannot flash, cannot find MCU

Basic Information:

Printer Model: Ender 3 v2
MCU / Printerboard: STM32 f103chip , 4.2.2 board
Linux Mint: Linux SERVER-CED 5.15.0-101-generic #111-Ubuntu SMP Tue Mar 5 20:16:58 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

Describe your issue:

I can neither flash nor find the MCU of my board on the computer.
I have tried the debian bullseye fix, brittly and modemanager and i still cant find anything to make it work.
Linux_debugging.zip (29.7 KB)
Linked my klippy log and my dmesg.txt file if you can find anything worthwile, im a few days away from buying a new motherboard T_T

Cannot find my printer

Well that’s your first problem, you need to find where your printer escaped to so you can use it.

Once you handle that… I don’t see in your dmesg where linux is recognizing a connected board.

Instead of piece-mealing this… Have you tried following a guide designed for your printer? Such as…

First question I would have is what settings you used when you flashed the board.

Probably the board is not correctly flashed due to any of the reasons listed here: Issues flashing the printer board

Okay i managed to make it work… i reflashed my board at least 5 times but i was always still getting back a .bin so i was thinking that it wasn’t working… So i gave up, plugged the printer and when i went to mainsail in my printer.cfg it detected a serial device so i just put the full path in the MCU. it looks like this:
[mcu]
serial:/dev/serial/by-path/pci-0000:00:1a.0-usb-0:1.1:1.0

It is by path tho, but i don’t plan on restarting it so i don’t mind so far.

Where’s my serial port?

The general way to find a USB serial port is to run ls /dev/serial/by-id/* from an ssh terminal on the host machine. It will likely produce output similar to the following:

/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0

The name found in the above command is stable and it is possible to use it in the config file and while flashing the micro-controller code. For example, a flash command might look similar to:

sudo service klipper stop
make flash FLASH_DEVICE=/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
sudo service klipper start

and the updated config might look like:

[mcu]
serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0

Be sure to copy-and-paste the name from the “ls” command that you ran above as the name will be different for each printer.

If you are using multiple micro-controllers and they do not have unique ids (common on boards with a CH340 USB chip) then follow the directions above using the command ls /dev/serial/by-path/* instead.

You’re good, some are by-path

Just to leave a comprehensive picture here. Linux creates multiple endpoints for such aboard:

  1. /dev/ttyXXX → Unstable, depends on the sequence of enumeration
  2. /dev/serial/by-path/... → Quite stable, depends on the used USB port
  3. /dev/serial/by-id/... → Highly stable, but might lead to collisions if multiple devices with the same serial, e.g. CH34x, FTDI, etc, are connected

If No 2 is created then there is usually No 3 present as well and I’m currently not aware of any constellation that would spoil this (except multiple devices that produce the same serial)