Adapting bed slinger macros for corexy printer


My questions are simple I think but I found no real answers so I’ll try to be as clear as possible.

I already have all my macros ready and running fine for my bed slingers.

I’m putting together my 1st corexy printer, and before a lot of trial and error, I’m wondering if all my macros will be ok for this new kinematic or if I have to modify all of them.

My main concerns about gcode commands:
-no Z axis moving up so the bed becomes Z right?
-not really x and y because both are kinda “all in one”?

Let’s say, for example, the M125 macro “park toolhead”: on my bed slinger, z raises 5mm then the toolhead goes to x=0;y=225 (G1 Z5, G1 X0 Y225).

can I use my macros with the existing gcode commands like G1 Z5, G1 X0 Y225 and klipper will understand?

or do I have to modify them, assuming now the bed is moving up&down, not the z axis? So something like: G1 Z-5 for making the bed going down 5mm instead of G1 Z5 moving z up on bed slingers?

And does it make a difference too for x and y?

Hope it’s clear enough :sweat_smile:, total noob about the corexy motion and engineer level posts on the internet doesn’t help to understand…

Honestly, I recommend rereading your post. It is like “I have a car and tuned it. Now I have another car, can I use the same tuning?”

Which macros? Which purpose? Some might depend on kinematics, typically they do not.

1 Like

My recommendation is to start with no macros other than something for homing like:

[gcode_macro _HOME_X]
    G28 X
    G91                                              # Move to centre of build surface
    G1 X110 F1200                                    

[gcode_macro _HOME_Y]
    G28 Y
    G91                                              # Move to centre of build surface
    G1 Y110 F1200                                   

axes: xyz                                            
  {% set home_all = 'X' not in params and 'Y' not in params and 'Z' not in params %}

  {% if home_all or 'X' in params %}
  {% endif %}
  {% if home_all or 'Y' in params %}
  {% endif %}
  {% if home_all or 'Z' in params %}
    G28 Z
    QUAD_GANTRY_LEVEL # Added 2023.07.11
    G1  Z10
  {% endif %}

This is taken from one of my printers so the centre locations for your printer will probably be different (unless you have a 220mm x 220mm bed and have your Z axis sensor 15mm away from your nozzle).

1 Like

Klipper uses Cartesian coordinates to move in X, Y, and Z. This is completely kinematics agnostic. If the coordinates are valid for your bed size, the macros will work on a printer with any kinematics.

1 Like

Sorry for the lack of informations, I’ll be more precise:

Basically, I have custom macros for:
-PID tuning bed and hotend
-Park toolhead (raise z a bit then park toolhead on the left)
-M600 color change (park toolhead then retract filament from the extruder for filament change)
KAMP adaptive bed mesh from Github

I’m trying to figure out the GCODE commands I have to use for the corexy motion system, especially with the bed moving instead of a gantry.

Let’s say I input G1 Z10.
Cartesian will move the gantry 10mm up.
Does the same command work on a corexy or do I have to make it a negative value like G1 Z-10 to get the same result?

I just want to understand the basics of the corexy motion and how to format my gcode commands for it.

Thank you for your time and help.

Thank you, I’ll keep that in mind.

Thank you, this is a good starting point, I’ll try it. Bed will be size on an Ender 3, 235x235 so it’s close.

If you do nothing esoteric in your macros, then it is as @jakep_82 mentioned. Regular gcode command G1, G0, G28 or Klipper’s extended commands work the same on a “regular” Cartesian as well as on a CoreXY Cartesian.

The only exception I can currently think of, would be commands that address a stepper directly, e.g. the [force_move] commands as they are not aware of the kinematic and a CoreXY needs the X and Y stepper to move in a straight line.

1 Like

Thank you guys for the informations! I’m more confident to finish my build now :sweat_smile:. Used to cartesian only, I feel like a toddler doing his 1st steps when it comes to corexy :person_facepalming::sweat_smile:. I am thankful this forum exists, would be a pain to learn and troubleshoot problems all by yourself…


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