MCU not detected after DFU flash (SKIPR v1.0)

Hi everyone, I’m new to this and still learning Klipper setups, so I might be missing something obvious.


Basic Information:

Printer Model: Mercury One Zero G
MCU / Printerboard: MKS SKIPR v1.0 (STM32F407)
Host / SBC: Linux (Mainsail + Moonraker)

klippy.log: attached

I am trying to set up an MKS SKIPR v1.0 (STM32F407) with Klipper.

The board enters DFU mode correctly and is detected without issues. Flashing Klipper via dfu-util also completes successfully (“download done / file downloaded successfully”).

However, after rebooting the board, it never enumerates over USB again:

  • no device appears in lsusb
  • no /dev/serial/by-id is created
  • Klipper cannot connect to the MCU

Error in Klipper:


mcu 'mcu': Unable to connect
Error configuring printer

What I already tried:

  • different bootloader offsets (0x08002000)
  • multiple recompiles
  • switching clock between 8 MHz and 12 MHz
  • switching communication interface from USART1 to USB (PA11/PA12)

The behavior stays the same: DFU works and flashing completes successfully, but the board never appears as a USB device after reboot.

There is no klippy.log file.
Please attach it to your next post.

klippy (3).log (117.8 KB)

Are you sure the USB cable is able to transfer data?

Yes, I’m sure. I can access the SKIPR through SSH, and the board is detected correctly in DFU mode. The issue is that after flashing Klipper and rebooting, it no longer enumerates as a USB device.

Are you running the software image from MKS on the embedded host SBC?

I cannot find any information on MCU updates at “official” MKS sites. This does look legit:

It says MCU firmware must ne flashed from SD card.

I find no reference to DFU mode.
I find no reference to the boot & reset switches except they show up in the schematic as wired to the MCU not the SOM (host).

If you have not updated Klipper on the host try flashing the precompiled .bin from MKS: