Emulating 6 Carriage IDEX by Syncing Steppers

Gday,

I’m a new Kipper user and I’m trying to setup a cartesian moving bed printer with 6 individual X axis carriages sharing a common Z axis.

Because IDEX currently only supports only two carriages I was hoping to emulate that functionality by using the Tool-Change Macro to issue a kind of Sync-Stepper command to selectively sync the carriage steppers to the motion planner’s X axis.

I have studied the documentation and the closest I can find is SYNC_EXTRUDER_MOTION however this only appears to function with extruder steppers.

Is there a undocumented way to Sync/Unsync steppers using gcode or macros during a print job?

Regards.

Hello @bquirky !

IDEX usually is two separate installations for X-movement and extruders. Do you talk about that?

yes the current IDEX implementation seems to be limited to two X axis Carriages,

My system has 6 independent X axis carriage’s (each with its own extruder) with 6 separate steppers on six separate motor drivers.

My goal is to have each carriage/extruder assigned as T0-T6

I want to achieve this by having a Macro selectively Sync the relevant X axis stepper with the motion planner’s “Real” x axis in the same way that SYNC_EXTRUDER_MOTION functions after preforming the necessary parking and unparking moves via other means.

You need a lot of parking space on each side of the X-axes.

That makes 7.

yes you are correct T5 rather.

Its less parking space than you would think. because 3 of carriages are mounted on a 2nd rail and can pass in-front of each other the maximum number of carriages that ever need to be parked on a side is 2.

the missing piece is the ability to select which of the X-Steppers is receives the step signals from the motion planner. the rest is just forced moves and offsets handled by macros

It is not currently possible to activate/deactivate X carriages via g-code commands.

There has been some discussion about extending support for things like this at New generic_cartesian kinematics (incl. CoreXYU/CoreXYUV, generic IDEX and AWD)

-Kevin

@bquirky You may be able to use SET_STEPPER_KINEMATICS command that is part of the proposed generic_kinematics that Kevin linked above. Note that this is not part of the official Klipper yet, but it is under testing now, so you could try it as well (see the first message in the thread linked by Kevin). Basically, you’d define [carriage x], [carriage y] and [carriage z] each, and then 6 steppers for X and corresponding Y and Z stepper(s) like

[printer]
kinematics: generic_cartesian
...

[stepper y]
kinematics: y
...

[stepper z]
kinematics: z
...

[stepper x]
kinematics: x
...

[stepper x1]
kinematics: x
...

[stepper x2]
kinematics: x
...

[stepper x3]
kinematics: x
...

[stepper x4]
kinematics: x
...

[stepper x5]
kinematics: x
...

[extruder]
...
[extruder1]
...
[extruder2]
...
...

and then in the macros you could do

[gcode_macro ACTIVATE_X]
gcode:
  ACTIVATE_EXTRUDER EXTRUDER=extruder
  SET_STEPPER_KINEMATICS stepper='stepper x' KINEMATICS=x
  SET_STEPPER_KINEMATICS stepper='stepper x1' KINEMATICS=
  SET_STEPPER_KINEMATICS stepper='stepper x2' KINEMATICS=
  ...

[gcode_macro ACTIVATE_X1]
gcode:
  ACTIVATE_EXTRUDER EXTRUDER=extruder1
  SET_STEPPER_KINEMATICS stepper='stepper x1' KINEMATICS=x
  SET_STEPPER_KINEMATICS stepper='stepper x' KINEMATICS=
  SET_STEPPER_KINEMATICS stepper='stepper x2' KINEMATICS=
  ...
...

Thanks guys!

ill go through and study the alternative kinematics linked above and report back once I have a handle on it

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