I am new to Klipper and just started setting up my printer coming from Marlin Firmware.
I am able to compile and upload the firmware to the SD card of my BTT SKR v1.4 main board and Klipper is already successfully connected to the MCU. Because the SD card is located very bad I would like to flash the firmware over the USB port of the SKR 1.4 in the future.
The problem is, that when I try to run the command make flash FLASH_DEVICE=/dev/serial/by-id/usb-Klipper_lpc1768_2850000DA498C895ACDD3461C52000F5-if00
I am getting the following error while running:
dfu-util: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
dfu-util: No DFU capable USB device available
So, it looks like the SKR v1.4 is not able to get into DFU mode.
I have attached my “printer.cfg” file if that helps: printer.cfg (5.6 KB)
I don’t have a SKR board. But as far as I use spider and Octopus board. Your board should have buttom or pin need to set to reboot into DFU mode. At least the board I use need to do that.
The MCU ID location is works for normal USB mode. Like kiauh script, it has two mode to flash via USB. normal USB and DFU mode.
You could be right. As described here you need to pull P2.12 to low while resetting to enter DFU mode.
Marlin firmware provided a kind of virtual hard drive to upload the firmware file directly to the sd card using USB. Is there also something implemented for Klipper?
I used this guide to upload the modified bootloader from here and then pulled pin 2 of EXP1 (P0.28) to GND.
That way I was able to enter DFU mode and after running the command make flash FLASH_DEVICE=/dev/serial/by-id/usb-Klipper_lpc1768_2850000DA498C895ACDD3461C52000F5-if00 I could easily flash the MCU!
No I don’t have to unmount the SD card every time I would like to flash the FW which took some minutes due to its location…
EDIT:
I even don’t have to connect P0.28 to ground after flashing Klipper MCU firmware the first time! The command above still works without doing so which is even better!