New version of CanBoot

Apologies if it is the wrong place3 to ask, but I’m very interested in CanBoot improvements announced recently, especially a possibility of using CanBoot to update CanBoot. Would it be possible to learn - if this PR is merged, how to updated it on my PI and how to use this feature?


You have to differentiate between two things:

Is a bootloader by @Arksine that can be installed on certain boards. It will allow to flash new Klipper firmwares easily without having to attach the device via USB or SD-Card. See here for a how-to on the SKR 1.3 / 1.4 boards: CanBoot: Flash BTT SKR 1.3 / 1.4 / 1.4 Turbo
To profit from new CanBoot updates you need to install CanBoot on your devices, for example following above linked how-to.

Can Implementation in the Klipper Firmware
The Klipper firmware natively supports to use Can Bus as an addition / replacement to USB / Serial connections. This means that you connect additional MCU boards via Can Bus instead of USB. If in addition CanBoot is installed on the MCU the full benefit can be achieved.
The recently announced Can improvements relate to the firmware implementation, making it more robust.
The respective PR has already been merged. All you need to do is to update the Klipper firmware on the MCU. See Frequently Asked Questions - Klipper documentation

Thanks for clarification, didn’t make myself clear. I do have CanBoot (and Can) installed and working on my setups. Few days ago, I think @koconnor (again apologies if I’m mixing things up) announced in FB group(s) that in addition to the revision of Klipper Can implementation, he manged to improve @Arksine CanBoot code (there was a PR linked in that post) . I’m not sure I understand what these changes exactly are (some sort of deployment app was mentioned) but apparently it should be possible to update CanBoot via CanBoot. So I’m essentially asking for more info on that. Hope it does make sense.

I guess you are referring to Automated CanBoot "deployer" application by KevinOConnor · Pull Request #36 · Arksine/CanBoot · GitHub
This basically mean that CanBoot will in future be able to “update itself”, i.e. you do no longer need low level flashing with DFU mode, ST-Link etc but you can update the bootloader as you update Klipper today.
Impact will mainly be depending on how often a bootloader needs updating. The first CanBoot deployment needs to be via low level still.
Very cool approach in any case

Exactly. Very interested in this feature and was under impression it is already available (merged?). So was basically asking how do I get my CanBoot installation on RasPI updated and how to use this feature.

The use case I have in mind is very simple. I’m trying different can speeds on one of the setups and since CanBoot requires reflashing when can speed changes that feature is super handy.

I hope it will work line that:

  • current speed 250K and CanBoot is flashed with 250K set
  • compile 500K canboot.bin
  • flash over 250K network via that deploy application.
  • edit can0 to 500K and reset.
  • flash Klipper compiled with 500K over 500K network via 500K CanBoot.

Much better than pulling toolboard out to use stlink or dfu via USB.

Have not tried yet but merged yes. Surely a documentation will follow by either @Arksine or @koconnor. Stay tuned :wink:

1 Like