Hi, my 3D printer has two Z-axes, and I want them to work independently of each other.
For example, using the macro T0, you can switch the nozzle to extruder. With T1, you can switch the nozzle to extruder1.
As far as I’m aware, this is not possible. Klipper even automatically synchronizes stepper_z and stepper_z1 as it assumes they belong to the same axis.
That kinematic did not support what you wanted to achieve directly. However, now I added a new command SET_STEPPER_KINEMATICS and it can be used to disable or re-enable the steppers as explained in the last post there. So with that, you could probably do
How does this step work?" Assuming you define that new generic_cartesian kinematics as explained in that thread and [stepper z0] and [stepper z1] specifically."
This whole thing (generic_cartesian kinematics in general and SET_STEPPER_KINEMATICS command) is a new feature that was not integrated into the mainline Klipper yet, and is under testing now. You can install it from a different branch, if you know how. In principle, KIAUH supports that.
If you feel adventurous, you can install the new code from this branch: GitHub - dmbutyugin/klipper at generic-cartesian. Back up the old Klipper installation and configs, just in case. You can follow the instructions here how to add a custom repository (the file is available as ~/kiauh/klipper_repos.txt.example on the pi, you need to copy it as ~/kiauh/klipper_repos.txt and add
dmbutyugin/klipper,generic-cartesian
line there, then run KIAUH script, select 6 to go to ‘Setttings’, then 1 to ‘Set custom Klipper repository’, and then choose the appropriate branch:
(after you’ve done with the testing, or this feature is merged into the mainline Klipper, you can use the same sequence to select back the original Klipper (all the other options in the screenshot, including option 0 will get you there).
And then you can read the first post in the thread on how to configure the generic_cartesian kinematics (basically, how to convert your existing config to it).
However, SET_STEPPER_KINEMATICS is still not recognized from the command bar."
As you said in the last sentence, there should be some errors in my printer.cfg.
Although I have read a lot of your articles, I still don’t know how to start modifying printer.cfg.
Can you help me, Savior!
Klipper won’t load in this configuration that you posted, so it cannot recognize or not recognize the command, right? You need to fix the configuration. The first post that I linked describes how the configuration should look like for generic_cartesian kinematics, so please read it. But the basic idea (for you) would be that for each section [stepper_x] (and y, z), you split it into two sections: [carriage x] and [stepper x], and as per post, some configuration options from the old [stepper_x] section go into [carriage x] and some - into [stepper x]. In addition, you’d add a kinematics: x option to [stepper x] section. And repeat that for y and z steppers. If you miss or mix up something, Klipper will tell you about missing or wrong options (if you forget to put some options into their appropriate places).
Thank you, Superman!
I did exactly what you said and watched your post!But there are still some problems!
My system is just the simplest cartesian, not corexy and others!
1.When I define [carriage x] and [stepper x], I also define y, z, z1.
Of the three scenarios I’ve listed, I think the 1 of the 1 2 3 comes closest to success!
Carriage z1 have already been referenced by z1 stepper kinematics in the above code.
Do I need to mention the carriage z1 referenced by z1 stepper kinematics again in macros?
I was so close to finishing it!
I really want to get this done after all your teaching!
Please no need to ping me too much, I’ll reply when I have time. In your latest case, you need to match the stepper name to the one in your config, e.g. STEPPER='stepper stepper_z'
In my latest case 3,when I used [kinematic_stepper z] to define stepper z, klipper did not work and an error .
In my case 1 and 2, I can only use [stepper z] or [stepper stepper_z] to define stepper z. klipper at least works.
These days, according to your step-by-step instructions, I still don’t succeed. I’m sorry. I’m so stupid.But I really want to try this feature you developed
Thankyou!
You should really just read the first post in the thread which describes the configuration now. You configuration for carriages are probably fine now, but you should not use kinematic_stepper (this was an older proposal) and instead define, for example
[stepper stepper_x]
kinematics: x
...
[stepper stepper_y]
kinematics: y
...
[stepper stepper_z]
kinematics: z
...
[stepper stepper_z1]
kinematics: z1
Ah, OK, then add DISABLE_CHECKS=1 to all SET_STEPPER_KINEMATICS commands in Z0/Z1 macros. Two of the commands had them already, but the other two didn’t.
Please send the full klippy.log when you try the problematic sequence of GCode and experience a failure, and also send the commands you were sending to Klipper.