SB CAN Toolhead Board (V1.3).
Flashing Firmware
In this guide i used a Catalyst V2 control board with a max baud rate of 500000
this may work at 1000000
but it is untested, I advise using 500K first to confirm functionality.
In this guide we're flashing Katapult (Formerly CanBoot) to the board with an 8KB Bootloader which will allow us to update/flash in the future without the need for a USB cable.
Cables
Start out by inserting your 24V Power, GND, CanH + CanL connections, these usually come pre-terminated as part of an umbilical with the board.
Next insert your Micro USB Cable and connect it to your host/Pi.
Enter DFU Mode
Hold the "Reset" button for 2 seconds (Thats 1 Elephant, 2 Elephants). the reset button is on the side of the board, between the USB and CAN Connections.
From your console you can now type lsusb
and you should see a line like so:
Bus 007 Device 012: ID 0483:df11 STMicroelectronics STM Device in DFU Mode
Your board is now in DFU mode and ready for flashing.
Download Katapult (CanBoot)
From your command line paste these commands
cd /
git clonehttps://github.com/Arksine/katapult.git
cd katapult
make clean
make menuconfig
Flashing Katapult
Once complete press ESC
or Q
to exit, press Y
when prompted to save your changes.
Then compile the new firmware using the command make
followed by the Enter
key, this may take a few minutes but when successful you will see:
...
Linking out/katapult.elf
Creating bin file out/katapult.bin
At this point you are now ready to flash the device, do that using the following command, followed by the Enter
key.
sudo dfu-util -a 0 -D ~/katapult/out/katapult.bin --dfuse-address 0x08000000:force:mass-erase:leave -d 0483:df11
Once complete, you will see something like this:
Download [=========================] 100% 4212 bytes
Download done.
File downloaded successfully
Transitioning to dfuMANIFEST state
You are now done with flashing Katapult, and you can find your canbus uuid using the following command, followed by the Enter
key.
python3 ~/katapult/scripts/flash_can.py -i can0 -q
You should see an output like so:
pi@voron-02-pro:~/katapult$ python3 ~/katapult/scripts/flash_can.py -i can0 -q
Resetting all bootloader node IDs...
Checking for Katapult nodes...
Detected UUID: c860602e72cb, Application: Katapult
Query Complete
The UUID we want here is c860602e72cb
paste this somewhere safe.
Unable to find the UUID?
If you are unable to find the UUID then your board may not be booted into katapult, to boot into the bootloader you simply need to double click the reset button twice within 500ms. Then run the command again and you should see your UUID.
Flashing Klipper
Flashing Klipper is a very similar proceedure to Katapult and is done like so, this guide assumes you already have Klipper installed on your machine.
Again, ensure that your settings are identical to those above, press Q
followed by Y
to Save & Exit, then type the command make
followed by the Enter
key.
You will see something like this when klipper has finished compiling the firmware:
Building out/compile_time_request.o
Version: v0.12.0-179-g434770ea
Preprocessing out/src/generic/armcm_link.ld
Linking out/klipper.elf
Creating hex file out/klipper.bin
You're now ready to flash Klipper onto the MCU. Flash klipper onto the MCU using the following command, followed by the Enter
key. Pay attention to the UUID here, you will need to replace mine with your own.
python3 ~/katapult/scripts/flash_can.py -i can0 -u
c860602e72cb
-f ~/klipper/out/klipper.bin
Once the flash has been installed you will see a message saying Flash Success.
Provided you don't already have klipper configured for this UUID (this is a fresh install) you will be able to verify this by running the following command.
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
You should see the same UUID again, only this time with Application: Klipper.
Found canbus_uuid=c860602e72cb, Application: Klipper
Total 1 uuids found
And you're done! Pat yourself on the back and go ahead and configure your toolhead board in your printer.cfg.
Last updated