aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/kinematics/idex_modes.py
Commit message (Collapse)AuthorAgeFilesLines
* Run black on all first party python codeTomasz Kramkowski2025-08-061-99/+149
|
* input_shaper: Track kinematics updates by dual_carriageDmitry Butyugin2025-06-041-12/+8
| | | | Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
* dual_carriage: Fixed input shaper stepper kinematics initializationDmitry Butyugin2025-05-221-3/+9
| | | | Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
* stepper: Fix broken manual_stepper rail naming (#6929)Dmitry Butyugin2025-05-101-1/+1
| | | | | The naming got broken during refactoring for generic_cartesian. Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
* kinematics: Generic Cartesian kinematics implementation (#6815)Dmitry Butyugin2025-05-061-110/+184
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tests: Added a regression test for generic_cartesian kinematics * kinematics: An intial implementation of generic_cartesian kinematics * generic_cartesian: Refactored kinematics configuration API * generic_cartesian: Use stepper instead of kinematic_stepper in configs * generic_cartesian: Added SET_STEPPER_KINEMATICS command * generic_cartesian: Fixed parsing of section names * docs: Generic Caretsian kinematics documentation and config samples * generic_cartesian: Implemented multi-mcu homing validation * generic_cartesian: Fixed typos in docs, minor fixes * generic_cartesian: Renamed `kinematics` option to `carriages` * generic_cartesian: Moved kinematic_stepper.py file * idex_modes: Internal refactoring of handling dual carriages * stepper: Refactored the code to not store a reference to config object * config: Updated example-generic-cartesian config * generic_cartesian: Restricted SET_STEPPER_CARRIAGES and exported status * idex_modes: Fixed handling stepper kinematics with input shaper enabled * config: Updated configs and tests for SET_DUAL_CARRIAGE new params * generic_cartesian: Avoid inheritance in the added classes Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
* idex_modes: Improved restoring position in RESTORE_DUAL_CARRIAGE_STATEDmitry Butyugin2024-08-031-6/+28
| | | | | | | | Previous implementation could crash the idex carriages into each other. The new code moves the idex carriages together, eliminating this risk and decreasing the time needed to restore the carriages positions. Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
* idex_modes: Bugfix for kinematic position calculation.Frans-willem Hardijzer2024-05-161-7/+8
| | | | | | | | | | | | | | | idex_mode would swap the X and dual-carriage rail in some cases (homing), but not in others. As such, the position calculation was correct while homing, but incorrect for the second carriage during normal moves. This commit fixes homing to work without swapped rails, removes the swapping of rails while homing, and removes the ability to swap rails (as it is now no longer used). Fix has been tested in a Hybrid_CoreXY IDEX printer (Voron Double Dragon). Hybrid_CoreXZ has identical changes and is similar enough that I am confident it will work as intended. Changes to cartesion seem simple enough, but would benefit from someone running a couple of tests. Signed-off-by: Frans-Willem Hardijzer <fw@hardijzer.nl>
* idex_modes: Fixed the case when carriages home in the same direction (#6310)Dmitry Butyugin2023-09-291-8/+45
| | | | | | | | | | | | | | | | | | | | | Previous version of the code assumed that dual carriages home away from each other, which is not true on some machines, which have the second dual carriage homing on the first carriage. The new code correctly identifies the relative order of the carriages now. This fixes discrepancies between the documentation and the actual implementation of the carriages kinematic ranges calculation. Notes about dual_carriage homing and proximity checks changes Fixed clearing of homing state after homing in certain modes In case of multi-MCU homing it is possible that the carriage position will end up outside of the allowed motion range due to latencies in data transmission between MCUs. Selecting certain modes after homing could result in home state clearing instead of blocking the motion of the active carriage. This commit fixes this undesired behavior. Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
* idex_modes: A small fix for MOVE_SPEED paramDmitry Butyugin2023-08-011-1/+1
| | | Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
* idex_modes: COPY and MIRROR mode implementation (#6297)Dmitry Butyugin2023-08-011-91/+182
| | | | | | | | | | | COPY and MIRROR mode implementation Correctly apply input shaper params to new dual_carriage Added SAVE_/RESTORE_IDEX_STATE commands Documentation updates for the new IDEX modes Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
* idex_modes: Native input shaping support with dual carriagesDmitry Butyugin2023-06-061-16/+41
| | | | Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
* idex_modes: Fix get_status (#4550)Tircown2021-08-011-1/+1
| | | | | Fix get_status to be called without eventtime parameter. Signed-off-by: Fabrice GALLET <tircown@gmail.com>
* kinematics: Add dual_carriage to hybrid-corexyz (#4296)Tircown2021-06-271-0/+105
- Add dual_carriage abilities for hybrid-corexy and hybrid-corexz - Introduce the module idex_mode - Fix add_stepper to the correct rail in hybrid-corexy Signed-off-by: Fabrice GALLET <tircown@gmail.com>