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.

https://www.klipper3d.org/FAQ.html#wheres-my-serial-port

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)

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.