Manta M8P v2.0 + CB2: USB CDC port disappears after restart (only returns after DFU flash)

Basic Information:

Printer Model:HevORT
MCU / Printerboard: BTT Manta M8P v2.0
Host / SBC: BTT CB2
klippy.log

Fill out above information and in all cases attach your klippy.log file (use zip to compress it, if too big). Pasting your printer.cfg is not needed
Be sure to check our “Knowledge Base” Category first. Most relevant items, e.g. error messages, are covered there

Describe your issue:

  • PSU: MeanWell 24 V 10 A (also tried 12 V earlier)

Firmware build (Klipper make menuconfig)

  • MCU: STM32H723

  • Bootloader offset: 128 KiB (SKR SE BX v2.0)

  • Clock: 25 MHz crystal

  • Interface: USB (PA11/PA12)

What works / current behavior

  • On power-up: /dev/serial/by-id is missing.

  • If I put the MCU into DFU (hold BOOT0, tap RESET) and run:

    sudo dfu-util -a 0 -D out/klipper.bin -s 0x08020000:leave -d 0483:df11
    
    

    the device reboots and I immediately get:

    /dev/serial/by-id/usb-Klipper_stm32h723xx_1F0003001751313433343333-if00
    
    

    Klipper can connect and I can issue commands; RESTART usually works.

  • However, after FIRMWARE_RESTART or power cycle, the CDC device disappears again and Klipper reports “mcu: unable to connect” until I repeat the DFU cycle.
    (The DFU flash ends with the typical Error during download get_status, then the CDC port appears.)

What I’ve already tried

  1. restart_method: command in [mcu]

  2. Bound [mcu].serial to the stable by-id, and also tried by-path
    (/dev/serial/by-path/...)

  3. systemd drop-in for klipper to wait for the device:

    [Unit]
    Wants=dev-serial-by\x2did-usb-Klipper_stm32h723xx_<...>-if00.device
    After=dev-serial-by\x2did-usb-Klipper_stm32h723xx_<...>-if00.device
    [Service]
    ExecStartPre=/usr/bin/udevadm settle -t 10
    
    
  4. Disabled USB autosuspend and ensured the ACM driver loads:

    echo cdc_acm | sudo tee /etc/modules-load.d/cdc_acm.conf
    sudo modprobe cdc_acm
    echo 'options usbcore autosuspend=-1' | sudo tee /etc/modprobe.d/usbcore.conf
    
    

    (also tried a udev rule to set power/control=on for 1d50:614e)

  5. Verified power: now on a 24 V MeanWell, board 5 V LED solid

Logs / symptoms

  • dfu-util -l shows nothing until BOOT0+RESET, then:

    Found DFU: [0483:df11] ... alt=0 name="@Internal Flash /0x08000000/8*128Kg"
    
    
  • After DFU flash, /dev/serial/by-id/usb-Klipper_stm32h723xx_<...>-if00 appears and Klipper connects.

  • Following FIRMWARE_RESTART, the serial node sometimes vanishes and Klipper can’t reconnect.

  • Past dmesg has shown (when it does appear):

    usb 1-1.4: New USB device found, idVendor=1d50, idProduct=614e
    cdc_acm 1-1.4:1.0: ttyACM0: USB ACM device
    
    

    and occasionally a subsequent USB disconnect.

Config snippets

[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32h723xx_1F0003001751313433343333-if00
restart_method: command

(also tried serial = /dev/serial/by-path/…)

biqu@bigtreetech-cb2:~$ ls /dev/serial/by-id/
ls: cannot access '/dev/serial/by-id/': No such file or directory
biqu@bigtreetech-cb2:~$ ls -l /dev/serial/by-id/
ls: cannot access '/dev/serial/by-id/': No such file or directory
biqu@bigtreetech-cb2:~$ sudo dfu-util -l
dfu-util 0.11

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2021 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

biqu@bigtreetech-cb2:~$ 

then I pressed Boot0 + Reset

biqu@bigtreetech-cb2:~$ sudo dfu-util -l
dfu-util 0.11

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2021 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

Found DFU: [0483:df11] ver=0200, devnum=4, cfg=1, intf=0, path="1-1.4", alt=1, name="@Option Bytes   /0x5200201C/01*88 e", serial="333634523431"
Found DFU: [0483:df11] ver=0200, devnum=4, cfg=1, intf=0, path="1-1.4", alt=0, name="@Internal Flash   /0x08000000/8*128Kg", serial="333634523431"
biqu@bigtreetech-cb2:~$ cd ~/klipper
biqu@bigtreetech-cb2:~/klipper$ sudo dfu-util -a 0 -D out/klipper.bin -s 0x08020000:leave -d 0483:df11
dfu-util 0.11

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2021 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

dfu-util: Warning: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release
Opening DFU capable USB device...
Device ID 0483:df11
Device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Interface #0 ...
Determining device status...
DFU state(2) = dfuIDLE, status(0) = No error condition is present
DFU mode device DFU version 011a
Device returned transfer size 1024
DfuSe interface name: "Internal Flash   "
Downloading element to address = 0x08020000, size = 41076
Erase           [=========================] 100%        41076 bytes
Erase    done.
Download        [=========================] 100%        41076 bytes
Download done.
File downloaded successfully
Submitting leave request...
dfu-util: Error during download get_status
biqu@bigtreetech-cb2:~/klipper$ ls -l /dev/serial/by-id/
total 0
lrwxrwxrwx 1 root root 13 Sep  6 11:57 usb-Klipper_stm32h723xx_1F0003001751313433343333-if00 -> ../../ttyACM0
biqu@bigtreetech-cb2:~/klipper$

Questions

  1. Is there a known CB2 + M8P v2.0 problem after MCU reboot that causes this?

  2. Any ideas what else I could try? For 2 days, I’ve been trying everything i fould online and what ChatGPT and Gemini told me. The problem is repeatedly “solved” by the mentioned sequence (BOOT0 + Reset, then flash the MCU, then click Restart in mainsail) but that cant be the whole solution.

Thanks for any tips!

Just a note in case somebody notices: Yes, the post was partly written by ChatGPT in order to make it a bit more structured and to not forget anything.

klippy (6).log (673.8 KB)

moonraker (6).log (188.6 KB)

Try following approach:

  1. Follow this to burn the bootloader
  2. Build Klipper according to instructions, e.g. Manta-M8P/V2.0/BIGTREETECH MANTA M8P V2.0 User Manual.pdf at master · bigtreetech/Manta-M8P · GitHub
  3. Flash via SD card process (also described in the manual)

Thank you, wonderful person.

I only flashed the bootloader since I already had the rest of the firmware configured according to the manual, so I figured I’d try if that was enough. And it was.

Even after a power cycle or firmware restart, everything seems to work now.

That shows again that AI might be useful for some things, but for specific problems it’s often absolutely useless. At some point, gemini tried its best to make me believe that the power supply was the issue, later that the board has a defect.

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