Mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/

Basic Information:

Printer Model: Geeetech i3
MCU / Printerboard: BTT Manta v2.0
[klippy.log:
klippy.log (41.5 KB)

Moonraker Log:
moonraker.log (140.7 KB)

by-id

Error:
ls /dev/serial/by-id/ No such file or directory

I initially setup the boards with the latest firmware and hit update all in the Update Manager. After that I began getting the “mcu ‘mcu’: Unable to connect” error.

I reinstalled the firmware for the M8P v2.0 and the CB1 v2.2 but the error persisted.

I am now using the latest minimum install for the CB1 firmware and used Kiauh to install Klipper, moonraker, and etc. ls /dev/serial/by-id/ still gives the error “No such file or directory”.

I have verified the directories do not exist in my file system. On an earlier install I manually made the directories in the hopes that would allow Klipper to write the file that will have my id but no luck.

I reviewed every YouTube video, reddit thread and thread here trying to find a solution but have not found one that works. I’ve been working on this for 3 days and am at my wits end. The good news is I’ve learned a lot about Linux through this, the bad news is I clearly haven’t learned enough.

Has anyone found a solution for this?

I ran lsusb -v and this is the results:

Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 9 Hub
bDeviceSubClass 0
bDeviceProtocol 0 Full speed (or root) hub
bMaxPacketSize0 64
idVendor 0x1d6b Linux Foundation
idProduct 0x0001 1.1 root hub
bcdDevice 5.16
iManufacturer 3 Linux 5.16.17-sun50iw9 ohci_hcd
iProduct 2 Generic Platform OHCI controller
iSerial 1 5311400.usb
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0019
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 255

Hard to tell. At least according to your screenshot, you are querying the wrong path.

Unfortunately this appears to be a common issue with this setup and I haven’t found anyone who has come up with a solution.

I can’t get my board id to set it in my cfg file. I’m beginning to wonder if I don’t have a bad M8P board.

I keep hoping there is a different method of looking up the board id info.

I’d not be aware of any systematic issues here.

Again, going by your screenshot, you are not using the correct command

What incorrect command am I using and in which screenshot?

image

The correct command is ls /dev/serial/by-id/*

I did that and the folders are missing. For some reason Klipper simply isn’t creating those folders. I see now what you were talking about, I must have fat fingered the time I did it for the screenshot.

by-id

I’m trying to see if I can find the info using:

udevadm info --export-db | less

But I’m going blind looking for what is probably not there.

Well I did find references to /dev/serial/by-id/ when I ran the udevadm info but nothing that looks like the id I need for the mcu.

dmesg.txt (30.7 KB)

I ordered another board just in case this one is toast. I plan to switch all of my printers to the cb1/m8p if I can get this one to work. I really like the idea of having a pi right on the controller board.

There is no sign of a printer board in the dmesg output.
Could be a defect board but (at least to my experience) this is often rather due to:

  • Messed up Linux systems, e.g. your seem pretty old and the old sunXX driver and the distributions based upon them are not exactly stability monsters. If you feel comfortable installing Linux, you could probably try an original Armbian server version
  • Other typical issues are listed in Issues flashing the printer board

It’s a Bigtreetech_CB1-V2.2 with a Bigtreetech Manta M8P V2.0. It worked initially, but as soon as I hit the button to update the software the issues started. I have tried several versions of the CB1 firmware since but can only find the 1 version of the M8Ps firmware.

I’m working right now but will try the solutions in the thread you shared. I purchased a new M8P and CB1 just in case I do have a bad board.

Do you know if the latest CB1 firmware is working well for others? I’m formatting my microsd and will flash the board when I get the chance.

Release V2.3.4 · bigtreetech/CB1 (github.com)

Disable SWD at startup
I am unable to do this step because it is not appearing as an option in the menuconfig. I ran menuconfig, set the correct options for the M8P and saved it. I then opened it back again and that option is not there.

Is there another way to disable SWD?

I just found it by running a search but it’s in red and I can’t seem to change the setting.

lsusb.txt (641 Bytes)

I can’t flash the M8P now with the sd card, and I don’t think I can do it via command line without the serial id.

dmesg.txt (32.0 KB)

This is quite surely not needed for this board.

Please refer to Manta-M8P/V2.0 at master · bigtreetech/Manta-M8P · GitHub and in particular Manta-M8P/V2.0/Firmware/generic-bigtreetech-manta-m8p-V2_0.cfg at master · bigtreetech/Manta-M8P · GitHub for the correct setting.

This is exactly what this linked knowledge-base article Issues flashing the printer board is about: There is only one truth when managing firmwares and settings. There is absolutely no “well, lets use this weird setting”

I tried something else I found on the internet but am running into an issue with this.

dfu-util -R -a 0 -s 0x08000000:mass-erase:force -D ~/klipper/out/klipper.bin

dmesg -HW

At least this is seeing the board chip info, but it is stopping before it gives me the last part of the info.

partial info

Can you go through the steps you went through before issuing the command:

dfu-util -R -a 0 -s 0x08000000:mass-erase:force -D ~/klipper/out/klipper.bin

I’m not sure how this command will work without issuing the USB address (0483:df11 for STM32 devices) and you haven’t indicated how you are putting your board into DFU mode.