This repo is my current live Zero config i use... The readme explains how i get to the latest version of Kalico..
This guide assumes you have completed the initial setup from Kalico on the Sovol Zero wiki and have Kalico installed and working.
- Ensure you are on the
sovol-zerobranch of your Kalico repository - Confirm your remotes are set up correctly (origin and upstream)
Navigate to your Kalico directory and update to the latest firmware.
cd ~/klipper
# Check current branch (should be sovol-zero)
git branch
# Switch to sovol-zero if necessary
git checkout sovol-zero
# Check remotes
git remote -v
# If upstream is not present, add it
git remote add upstream https://github.com/KalicoCrew/kalico.git
# Fetch upstream changes
git fetch upstream
# Merge upstream main into current branch
git merge upstream/mainStop Klipper and reboot for a fresh start.
# Stop Klipper
sudo systemctl stop klipper
sudo systemctl disable klipper
# Reboot
sudo rebootAfter reboot, navigate back to Klipper and query CAN bus.
cd ~/klipper
# Query CAN bus
~/klippy-env/bin/python3 ~/klipper/scripts/canbus_query.py can0
# [can0] Found canbus_uuid=e5093890c14e, Application: Kalico, Assigned: 04
# [can0] Found canbus_uuid=62b63a8995c1, Application: Kalico, Assigned: 05
Confirm the CAN bus UUIDs in your printer.cfg:
- Main MCU:
e5093890c14e - Extruder MCU:
62b63a8995c1
Compile and flash the mainboard firmware.
# Configure and build
make KCONFIG_CONFIG=main.mcu menuconfig
make KCONFIG_CONFIG=main.mcu clean
make KCONFIG_CONFIG=main.mcu -j4
# Attempt CAN flash (may fail)
~/klippy-env/bin/python3 lib/canboot/flash_can.py -i can0 -u e5093890c14e -f out/klipper.bin
# If CAN flash fails, use USB
ls /dev/serial/by-id/
# Replace with your mainboard's USB ID
make KCONFIG_CONFIG=main.mcu FLASH_DEVICE=/dev/serial/by-id/usb-katapult_stm32h750xx_1C0028000451333138373234-if00 flashCompile and flash the toolboard firmware.
# Configure and build
make KCONFIG_CONFIG=toolboard.mcu menuconfig
make KCONFIG_CONFIG=toolboard.mcu clean
make KCONFIG_CONFIG=toolboard.mcu -j4
# Query CAN bus again to find Katapult UUID
~/klippy-env/bin/python3 ~/klipper/scripts/canbus_query.py can0
#[can0] Found canbus_uuid=e5093890c14e, Application: Kalico, Unassigned
#[can0] Found canbus_uuid=62b63a8995c1, Application: Kalico, Assigned: 05
# Attempt CAN flash using toolboard id, might fail
~/klippy-env/bin/python3 lib/canboot/flash_can.py -i can0 -u 62b63a8995c1 -f out/klipper.bin
then if it does, use Katapult id ..
~/klippy-env/bin/python3 lib/canboot/flash_can.py -i can0 -u 61755fe321ac -f out/klipper.bin
# If CAN flash fails, use USB (ensure it's not the mainboard's ID)
ls /dev/serial/by-id/
# Replace with your toolboard's USB ID
make KCONFIG_CONFIG=toolboard.mcu FLASH_DEVICE=/dev/serial/by-id/usb-katapult_stm32h750xx_<toolboard_id>-if00 flashRestart Klipper.
# Start Klipper
sudo systemctl start klipper
sudo systemctl enable klipperYou are now done! Your Sovol Zero should be running the latest Kalico firmware.
At some point the hope is that the Zero will be fully supported by both Kalico and Klipper and we can dispense with the initial part of this ...