aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/kinematics/delta.py
Commit message (Collapse)AuthorAgeFilesLines
* kinematics: Calculate axis_minimum/axis_maximum in advanceKevin O'Connor2021-01-081-17/+17
| | | | | | | | Calculate the get_status() axis_minimum and axis_maximum fields in advance so that they don't need to be calculated on each get_status() call. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* kinematics: report all axis limits (min/max)Janar Sööt2020-12-281-2/+9
| | | | Signed-off-by: Janar Sööt <janar.soot@gmail.com>
* homing: Remove EndstopErrorKevin O'Connor2020-09-041-1/+1
| | | | | | | There's no reason to distinguish between an EndstopError and a CommandError, so just use CommandError. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* toolhead: Add a move.move_error() helperKevin O'Connor2020-09-031-2/+2
| | | | | | | Move the EndstopMoveError() code from homing.py to a new method in the toolhead Move class. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* delta: Add print_radius option to customize valid XY radiusKevin O'Connor2020-01-231-1/+2
| | | | | | Add ability to override the default XY move checking radius. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* kinematics: Remove support for identifying Z steppersKevin O'Connor2020-01-231-1/+1
| | | | | | | | | The caller can now determine which steppers are connected to cartesian Z movement via the new stepper.is_active_axis() method. It is therefore no longer necessary for the kinematic code to identify these steppers. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* delta: Simplify DeltaCalibration state trackingKevin O'Connor2020-01-061-42/+46
| | | | | | Limit the use of coordinate descent "params". Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* delta: Move low-level delta calibration to delta.pyKevin O'Connor2020-01-061-2/+66
| | | | | | | Move the linear delta specific calibration code from delta_calibrate.py to delta.py. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* toolhead: Report which axes are homed via get_status()Kevin O'Connor2019-11-241-2/+2
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* stepper: Add get/set_tag_position() and convert calc_position()Kevin O'Connor2019-11-131-2/+2
| | | | | | | | | Rename calc_position() to calc_tag_position() and have it calculate the value of the position from the last stepper set_tag_position() call. This enables the calc_tag_position() code to be more flexible as it can be run with arbitrary positions. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* stepper_enable: Move motor_off() logic to stepper_enable.pyKevin O'Connor2019-11-121-3/+3
| | | | | | | | Directly disable all the stepper motors on a global motor_off() from the StepperEnable() class in stepper_enable.py. This simplifies the toolhead and kinematic classes. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* toolhead: Rename register_move_handler() to register_step_generator()Kevin O'Connor2019-11-071-1/+1
| | | | | | | Rename the function so it is more clear what the step generation code path is. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* toolhead: Remove kinematic move() callKevin O'Connor2019-11-061-2/+0
| | | | | | | Now that all kinematics use the trapq system, there is no need to call into the kinematics on each g-code move. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* delta: Convert step generation to use trapq systemKevin O'Connor2019-11-061-11/+7
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* kinematics: Add get_status() method to kinematicsFlorian Heilmann2019-08-091-0/+3
| | | | Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
* homing: Remove no longer needed homing time delay codeKevin O'Connor2019-07-101-2/+1
| | | | | | | | Now that homing is implemented via "drip moves", it is no longer necessary to round the homing speed and it is no longer necessary to add a delay for cpu processing time. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* delta: Make sure to clear limit_xy2 after a homing moveKevin O'Connor2018-10-271-0/+1
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* delta: Make sure to also exempt the homing retract move from boundary checksKevin O'Connor2018-10-271-8/+11
| | | | | | | | | Commit 459e5219 added a special case to the boundary checks to permit homing moves. In some cases, the second home retract could also be outside the normal boundary checks - extend the special case to also permit that move. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* homing: Move homing offset adjustment logic to generic homing codeKevin O'Connor2018-10-101-4/+0
| | | | | | | Move the "stepper phase" adjustment logic from the kinematic classes to the generic homing.py code. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* delta: Add a special case to the limit checks for the homing positionKevin O'Connor2018-10-101-4/+5
| | | | | | | | | | When a delta printer has different arm lengths or different endstop positions then the homing position falls outside of the normal printable area. Add a special check to the range checking code to permit this move instead of homing to a position near the actual homing position. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* delta: Reorganize init()Kevin O'Connor2018-10-101-18/+18
| | | | | | Just code movement. Move boundary check init to after tower init. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* homing: Implement second home from homing.pyKevin O'Connor2018-10-101-15/+4
| | | | | | | Move the logic for performing the second home from the kinematics classes to the generic homing code. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* delta: Wrap lines to 80 columnsKevin O'Connor2018-10-101-5/+6
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* cartesian: Use homing_speed for homing retract speedKevin O'Connor2018-10-091-1/+1
| | | | | | | | Commit b0d859f2 introduced a second_homing_speed parameter, and it also changed the retract speed. Revert the retract speed change (use homing_speed when the head retracts). Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* stepper: Adding support for a second_homing_speed parameter (#677)Chris Whiteford2018-10-041-2/+3
| | | Signed-off-by: Chris Whiteford <chris@chrisandtennille.com>
* delta: Move "stable position" logic to delta_calibrate.pyKevin O'Connor2018-09-251-33/+9
| | | | | | | Move the "stable position" logic from the delta.py kinematics code to the delta_calibrate.py calibration code. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* delta: Fix maximum halt velocity calculationKevin O'Connor2018-09-121-2/+3
| | | | | | | | | | | If an arm is nearly parallel to the bed then that tower's carriage may have a velocity up to 3 times greater than the toolhead's maximum velocity (relative to the print). Take that into account when calculating the stepper's maximum halt velocity. This fixes some rare "No next step" shutdowns on delta printers. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* kinematics: Convert get_rails() method to get_steppers()Kevin O'Connor2018-07-161-2/+2
| | | | | | | All callers of get_rails() actually just want the steppers, so return them directly. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* delta: Store stable positions as integersKevin O'Connor2018-07-151-11/+13
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* delta: Minor change to get_position_from_stable()Kevin O'Connor2018-07-141-12/+16
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* mcu: Enhance itersolve stepper kinematics allocationKevin O'Connor2018-07-131-6/+2
| | | | | | | Allocate the stepper_kinematics directly in mcu.py - that way the kinematic classes don't have to interact with the chelper code. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* toolhead: Fill cmove in toolhead instead of in each kinematic classKevin O'Connor2018-07-131-9/+1
| | | | | | This simplifies the kinematic classes. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* toolhead: Move kinematic modules to new kinematics/ directoryKevin O'Connor2018-07-121-0/+203
Move extruder.py, cartesian.py, corexy.py, and delta.py to a new kinematics/ sub-directory. This is intended to make adding new kinematics a little easier. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>