Is a CanBus cold swap toolhead possible in Klipper?

Basic Information:

Printer Model: Custom build
MCU / Printerboard: BTT Octopus Maz Ez

Describe your issue:


I’ve got a printer upgrade I’m planing in the near future and I know how to do the cold swappable tool heads in Marlin but I became interested in the idea of the CAN Bus system allowing for much fewer wires to be ran to the tool heads.
I have a custom cartesian printer that is currently running a RPi 3b and SKR Mini E3 V3 with marlin and a Hemera hotend combined with a piezo sensor to use the nozzle as the end stop in a heated and enclosed/filtered chamber.

I going to swap the SKR Mini E3 for a BTT Octopus Max EZ and will start with three cold swappable carriages. A water cooled Revo Hemera, a water cooled E3D Chimera dual hotened, and a standard air cooled Revo V6 with more that will be added later. I wanted to be able to use a cold swappable carriage system to manually load a printer head assembly and click a button that will load all the settings for the print head that I have installed and selected. Is this something Klipper is capable of doing on a CAN Bus tool head?

The planed dual direct drive extruder chimera would be the worst offender for required wiring needing up to 36 wires for the planed configuration so it that can be avoided I would very much like to avoid it.

You can reference different configs via [include ...] but it will always require a Klipper restart.

Ok so just to check my understanding and the process that would need to followed to make this work.

  1. When building Klipper I would need to relocate any extruder/hotend/z end stop and leveling settings into a separate Toolhead.cfg file for each device I intend to use

  2. Add lines for each tool head like [include ../toolheads/toolhead1.cfg] into the printer.cfg file leaving all lines commented out except for the desired active tool head.

  3. Configure klipper canbus for hotplug and under the printer.cfg add a field like bellow leaving only one field un-commented at a time like:

[mcu EBB_Toolheads]
## --- Revo Hemera ---
canbus_uuid: xxxxxxxxxxxx
## --- Chimera Dual ---
## canbus_uuid: xxxxxxxxxxxx
## canbus_uuid: xxxxxxxxxxxx
  1. When ready to switch tool heads, I would edit the printer.cfg file changing the commented lines for the desired tool head, shutdown the machine, change the tool head, and power the machine back up on the new tool head.

Is this correct? I’m assuming there is no way to create a macro to make the changes and issue a reset command is there? While it may seem somewhat a cumbersome method to complete the task I think I would prefer this to more than 30 individual wires to the carriage with all the connectors to make it work.

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.