Automatic spool switching, config help request


I almost finished building a large (1275x300) printer, and I want to use Klipper for it.

I want to make automatic spool change system, so printer would not stay idle if spool ends during the night.

My idea:

  • Single nozzle, single direct NEMA14 feeder on the printhead
  • Y-adapter for filament
  • 2 x simple NEMA17 feeders on the back of the printer, connected to Y-adapter
  • 2 x BTT SFS v2.0 filament sensors.

The BTT SFS v2.0 filament sensor has two switches, one for filament presence, second for filament motion.

So, before starting the print I install two spools and instert filament up to the Y-adatper.
Print starts from first spool. Direct feeder and first feeder on the back of the printer are pushing filament synchroniously.
When spool ends (detected by fillament presence sensor):

  • Pause and park printhead
  • Retract first spool filament up to the Y-adapter entrance
  • Check if filament is present in the second feeder
  • If yes, disable first back feeder, enable second. Disable first filament sensor, enable second.
  • Feed filament up to nozzle.
  • Purge, continue printing.

Same for switching from second to first spool.

Is it possible to implement with Klipper? If yes, where to look for solution? I could not find anything about such setup.

Generally, yes. Like it is done with the MMU2 adaptation of Klipper for example.

You did not mention what type of printer it is: Cartesian, CoreXY, Delta, …

It’s H-BOT.

I totally forgot about MMU. Great place to start digging and great opportunity to learn Klipper scripting. Thanks!

1 Like