I’m trying to set up an MKS SKIPR v1.0 (STM32F407) on a Mercury One Zero G using Klipper (Mainsail + Moonraker on a Linux host).
I can successfully put the board into DFU mode and it is detected without issues. Flashing Klipper via dfu-util also appears to complete successfully (“download done / file downloaded successfully”).
The problem starts after rebooting the board: it never comes back as a USB device on the system.
- it does not show up in
lsusb - there is no
/dev/serial/by-id - no new serial device is created at all
The USB host is working correctly because the U2C CAN adapter is detected normally.
In Klipper, I get the following error:
Klipper reports: ERROR
mcu 'mcu': Unable to connect
Once the underlying issue is corrected, use the
"FIRMWARE_RESTART" command to reset the firmware, reload the
config, and restart the host software.
Error configuring printer
What I already tried:
- changing bootloader offset (0x08002000)
- recompiling multiple times
- switching clock between 8 MHz and 12 MHz
- changing communication interface from USART1 to USB (PA11/PA12)
The behavior stays the same: DFU works, flashing completes without errors, but after reboot the board never enumerates over USB and Klipper cannot connect to the MCU.
It looks like the firmware is not properly initializing (or not running at all) after reset.