Skip to content

Support for additional G1 axes (6-axis support)#825

Open
as-com wants to merge 23 commits intoKalicoCrew:mainfrom
as-com:manual-stepper-update-2
Open

Support for additional G1 axes (6-axis support)#825
as-com wants to merge 23 commits intoKalicoCrew:mainfrom
as-com:manual-stepper-update-2

Conversation

@as-com
Copy link
Contributor

@as-com as-com commented Feb 1, 2026

I saw that Klipper added more features to manual_stepper, so I cherry-picked these two Klipper PRs:

Klipper3d/klipper#6894
Klipper3d/klipper#6888

These just so happen to be a prerequisite for more exciting changes like Klipper3d/klipper#7001 and Klipper3d/klipper#7034

Checklist

  • pr title makes sense
  • added a test case if possible
  • if new feature, added to the readme
  • ci is happy and green

KevinOConnor and others added 23 commits February 1, 2026 13:46
Avoid lookahead.flush() calling back into toolhead._process_moves().
Instead, rename toolhead._process_moves() to
toolhead._process_lookahead(), have it call lookahead.flush(), and
consistently use it when flushing the lookahead queue.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>

(cherry picked from commit 6202a0f3bcf98b839f188a49609a49570b8340d2)
…_move()

Implement move checking and trapq loading directly from drip_move().
This simplifies the interactions between these components.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>

(cherry picked from commit 765de72f9e2c390ffc1b637be9cb767f6452b401)
…STOP

Currently, `MANUAL_STEPPER STOP_ON_ENDSTOP=1` type commands will move
until hitting the endstop, but it will still always consume the total
amount of move time.  That is, following moves can't be started until
the total possible time of the homing move is completed.

Implement "drip moves" so that the code only schedules the movement in
small segments.  This allows following movements to be scheduled
without a significant delay.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>

(cherry picked from commit db7a9cf071abcd7c57ec788b906ff96d7b3c41d9)
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>

(cherry picked from commit f06eeb5c7aa5b297d0b6128b8cd878a35b6ea89d)
The toolhead can obtain the underlying extruder trapq via
extruder.get_trapq().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>

(cherry picked from commit 01422da9510f576808cc86bfbc190a8e28c308db)
Allow both registering and unregistering step generation callbacks.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>

(cherry picked from commit 8928c394cfc4ffd0ed7e495e5eefe2a89443e282)
It's not valid to alter the extruder position from a call to
set_position(), so don't allow callers to attempt that.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>

(cherry picked from commit ae536b4786981e71e6377524ff546751887bfc64)
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>

(cherry picked from commit 9dbfc76d9dae194a2d782a5d0ce3621405729b74)
Add a new add_extra_axes() to support adding additional axes.  Once
called, toolhead.get_position() will return a list object with more
than 4 items, and toolhead.move() requires the same size list.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>

(cherry picked from commit bb281834b07cc5bc8c892e59bb701a9a079009b0)
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>

(cherry picked from commit 447908ce0cadd8fa3ba08365e65e0478c7b1f861)
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>

(cherry picked from commit 64d6f110a989a67481927ee6cfb6ae411d28377d)
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>

(cherry picked from commit 307c03e4804800ecf5833efe3aa097d91a7fa0e7)
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>

(cherry picked from commit a537ae0ceb1e611ef37ef4d83740240fadd31c47)
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>

(cherry picked from commit 53acdfd0a5421d93a41da0a77a982752af10f8b0)
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>

(cherry picked from commit 20823003098748fe6808793fe5d0c01ae74d47f9)
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>

(cherry picked from commit 4c21e1d00f1d5c827e3213ffde0b7a43497d8033)
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>

(cherry picked from commit d40fd2190d740cf5388299e7f803a9790108a2dd)
Add a new G-Code command that can register a manual_stepper as an
additional axis on standard G-Code G1 commands.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>

(cherry picked from commit 7201f41664ffa658e90146187ce57ad70b71d11c)
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
(cherry picked from commit 64e01f03a20f4d895f4baa5d5f72870f800f5830)
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>

(cherry picked from commit ee0bc3d697a136ff9dea2107430d703c421ba4f9)
…de axis

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
(cherry picked from commit 6c1d5d912ae34991dbe866d2bbf9dc75a6345a0c)
Fix typo introduced in 307c03e48.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
(cherry picked from commit ed36041b67e8bbbacae0710af8c4a5e4ffc030fa)
@rogerlz
Copy link
Contributor

rogerlz commented Feb 24, 2026

Thanks for the cherry-pick. Have you tested the branch?

@as-com
Copy link
Contributor Author

as-com commented Feb 24, 2026

I have been running this merged with bleeding-edge-v2 on my printer and have tested it to the extent practicable (adding a custom gcode axis and manual stepper drip moves using an auxiliary extruder motor - my printer isn’t fancy enough to have more axes :P). I haven’t been able to test the TradRack functionality though.

Note that there is a merge conflict in bev2 that I’m not entirely sure that I resolved correctly

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants