You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
make
mv ~/katapult/out/katapult.bin ~/binaries/katapult_skipr.bin
2 - Compiling Klipper firmwares
If you don't have all the enviroment already setup by KIAUH, you must clone Klipper repository:
cd ~
git clone https://github.com/Klipper3d/klipper
cd ~/klipper
make clean
make menuconfig
Press Q to exit and Y so save the configuration.
Compile and move the file to a different dir:
make
mv ~/klipper/out/klipper.bin ~/binaries/klipper_skipr.bin
3 - Flashing CanBoot bootloader and Klipper firmware on ZNP GIGA MCU
On the board near the Ethernet plug, there are two buttons labeled RESET and H-RST. H-RST will reset the SBC so be careful to not press that. The place of the BOOT0 button is left empty but we are able to bridge it with a paperclip or similar. Just be careful to not touch any capacitor or the Ethernet shield nearby or the SBC will get blocked. If that's the case, you need to restart the process again.
Put ZNP GIGA STM32F407 MCU in DFU mode, press/bridge both RESET and BOOT0, release RESET and next stop bridging BOOT0.
Check if it's properly connected by issuing lsusb command, the output must list the MCU in DFU mode:
Bus 001 Device 003: ID 0483:df11 STMicroelectronics STM Device in DFU Mode
Flash CanBoot bootloader:
sudo dfu-util -a 0 -D ~/binaries/katapult_skipr.bin --dfuse-address 0x08000000:force:mass-erase -d 0483:df11
While still in DFU mode, flash Klipper firmware:
sudo dfu-util -a 0 -D ~/binaries/klipper_skipr.bin --dfuse-address 0x08008000:force:leave -d 0483:df11
0483:df11 is an example and needs to be replaced with the actual ID on your system.
5 - Setup a CAN0 interface
sudo nano /etc/network/interfaces.d/can0
Copy and paste this configuration:
allow-hotplug can0
iface can0 can static
bitrate 1000000
up ip link set $IFACE txqueuelen 128
Press CTRL+X to exit, Y to confirm and ENTER to save. Reboot your system with sudo reboot now.
After reboot, check if CAN0 state is up and running:
ip -details -statistics link show can0
6 - Get your MCUs UUIDs
Make sure your MCUs UUIDs are not listed in any printer configuration file, or you won't be able to retrieve any node UUID.
The output must list all nodes (ZNP GIGA STM32F407 and printhead with the original Klipper version if still connected):
Found canbus_uuid=06727e55c686, Application: Klipper
Found canbus_uuid=4c61f6fc8b08, Application: Klipper
Total 2 uuids found
7 - Add the MCUs to you printer.cfg
[mcu]
canbus_uuid: <uuid>
8 - Compiling bootloader and firmware for the printhead
cd ~/katapult
make clean
make menuconfig
Choose the RP2040 chip
Change the Communication interface to CAN
Change the RX pin to 8
Change the TX pin to 9
Press Q to exit and Y so save the configuration.
make
The bootloader is made.
If you get a failure when executing anything in katapult, just delete the folder and download it again.
cd ~/klipper
make clean
make menuconfig
Enter the same settings as for the bootloader.
Press Q to exit and Y so save the configuration.
make
9 - Updating the printhead bootloader
Disconnect the printhead from the CAN and power plug and get it off it's mount if you haven't already. You need to be able to get to the USB/UART through holes and to the bootsel button.
You will also need a USB to single pin cable to be able to connect.
The board doesn't need to be disconnected from everything. This is just to more easily show the through holes. (And don't mind my dirty finger nails...I had a rough day)
The USB cables have generally four leads, red, black, green and white. They need to be connected to the board as follows:
-> Red <-> 5V
-> Black <-> GND
-> Green <-> D+
-> White <-> D-
Connect the board to one of the USB-A ports on the SBC while holding down the bootsel (or boot) button and check with lsusb if you see a device called something like Raspberry Pi Boot. If you don't see any device with that name, check all the leads, check if the USB port you chose is actually working and make sur you put the board into bootloader mode.
Stop Klipper service
sudo service klipper stop
or
sudo systemctl stop klipper
cd ~/katapult
make flash
You should get an output like this:
Flashing out/katapult.uf2
Loaded UF2 image with 21 pages
Found rp2040 device on USB bus 1 address 35
Flashing...
Resetting interface
Locking
Exiting XIP mode
Erasing
Flashing
Rebooting device
After it has finished, remove the leads for the USB connection and plug the printhead into the power supply and CAN interface cable.
Check if you can see the printhead on the CAN bus with:
Found canbus_uuid=4c61f6fc8b08, Application: CanBoot
Total 1 uuids found
Don't get nervose if you only see one uuid. That is normal. The script checks for free CAN bus participants and the STM32 is not free anymore as it's tied-in with Klipper
Copy the uuid and flash Klipper with following command:
11 - Updating firmware thru CAN interface !!Not tested on ZNP GIGA!!
To be able to query all the CAN UUIDs, you have to put the printer in emergency mode by issuing a M112 command, clicking in FIRMWARE RESTART and stopping Klipper service within the menus. Doing it manually is bothersome and prone to errors, but you can do it all at once in the terminal pasting all the commands below:
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
1 - Compiling Katapult (Canboot) bootloaders
Clone the Github repository:
Install Python 3 along its serial port extension:
Create a dir for the compiled binaries:
Get bootloader for the MCU
Press
Q
to exit andY
so save the configuration.Compile and move the file to a different dir:
2 - Compiling Klipper firmwares
If you don't have all the enviroment already setup by KIAUH, you must clone Klipper repository:
Press
Q
to exit andY
so save the configuration.Compile and move the file to a different dir:
3 - Flashing CanBoot bootloader and Klipper firmware on ZNP GIGA MCU
On the board near the Ethernet plug, there are two buttons labeled RESET and H-RST. H-RST will reset the SBC so be careful to not press that. The place of the BOOT0 button is left empty but we are able to bridge it with a paperclip or similar. Just be careful to not touch any capacitor or the Ethernet shield nearby or the SBC will get blocked. If that's the case, you need to restart the process again.
Put ZNP GIGA STM32F407 MCU in DFU mode, press/bridge both RESET and BOOT0, release RESET and next stop bridging BOOT0.
Check if it's properly connected by issuing
lsusb
command, the output must list the MCU in DFU mode:Flash CanBoot bootloader:
While still in DFU mode, flash Klipper firmware:
0483:df11
is an example and needs to be replaced with the actual ID on your system.5 - Setup a CAN0 interface
Copy and paste this configuration:
Press
CTRL+X
to exit,Y
to confirm andENTER
to save. Reboot your system withsudo reboot now
.After reboot, check if CAN0 state is up and running:
6 - Get your MCUs UUIDs
Make sure your MCUs UUIDs are not listed in any printer configuration file, or you won't be able to retrieve any node UUID.
The output must list all nodes (ZNP GIGA STM32F407 and printhead with the original Klipper version if still connected):
7 - Add the MCUs to you printer.cfg
8 - Compiling bootloader and firmware for the printhead
Choose the
RP2040
chipChange the
Communication interface
toCAN
Change the
RX pin
to8
Change the
TX pin
to9
Press
Q
to exit andY
so save the configuration.The bootloader is made.
If you get a failure when executing anything in
katapult
, just delete the folder and download it again.Enter the same settings as for the bootloader.
Press
Q
to exit andY
so save the configuration.9 - Updating the printhead bootloader
Disconnect the printhead from the CAN and power plug and get it off it's mount if you haven't already. You need to be able to get to the USB/UART through holes and to the bootsel button.
You will also need a USB to single pin cable to be able to connect.
The board doesn't need to be disconnected from everything. This is just to more easily show the through holes. (And don't mind my dirty finger nails...I had a rough day)
The USB cables have generally four leads, red, black, green and white. They need to be connected to the board as follows:
-> Red <-> 5V
-> Black <-> GND
-> Green <-> D+
-> White <-> D-
Connect the board to one of the USB-A ports on the SBC while holding down the bootsel (or boot) button and check with
lsusb
if you see a device called something likeRaspberry Pi Boot
. If you don't see any device with that name, check all the leads, check if the USB port you chose is actually working and make sur you put the board into bootloader mode.Stop Klipper service
or
You should get an output like this:
After it has finished, remove the leads for the USB connection and plug the printhead into the power supply and CAN interface cable.
Check if you can see the printhead on the CAN bus with:
The output should look something like this:
Don't get nervose if you only see one uuid. That is normal. The script checks for free CAN bus participants and the STM32 is not free anymore as it's tied-in with Klipper
Copy the
uuid
and flash Klipper with following command:And start Klipper again
or
10 - Add the MCU1 to you printer.cfg
11 - Updating firmware thru CAN interface !!Not tested on ZNP GIGA!!
To be able to query all the CAN UUIDs, you have to put the printer in emergency mode by issuing a
M112
command, clicking inFIRMWARE RESTART
and stopping Klipper service within the menus. Doing it manually is bothersome and prone to errors, but you can do it all at once in the terminal pasting all the commands below:Query your CAN UUIDs with
cd ~/katapult/scripts && python3 flash_can.py -i can0 -q
:Now you can flash your device firmware replacing the UUID and PATH:
This description is in part curtesy of fbeltrao-br and taken from https://github.com/fbeltrao-br/canboot-skipr-ebb36/blob/main/README.md
and in part curtesy of Dr. Klipper Wiki taken from https://drklipper.de/doku.php?id=klipper_faq:can:66_-_katapult-bootloader
Beta Was this translation helpful? Give feedback.
All reactions