aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* stm32: spi enable fifo if supported (#6936)Timofey Titovets2025-05-191-7/+21
| | | | Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com> Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* stm32: H7 spi enable use of fifoTimofey Titovets2025-05-191-4/+8
| | | | Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
* stm32: Avoid read-modify-write register access in stm32h7_spi.cKevin O'Connor2025-05-161-20/+16
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* docs: Fix index.md linksKevin O'Connor2025-05-161-7/+5
| | | | | | | Use relative links in index.md and correct the location of the COPYING file. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* docs: BED_MESH_CALIBRATE makes a mesh that is immediately available. (#6919)Rowland2025-05-142-2/+9
| | | | | The docs aren't particularly clear that if you generate a mesh in our start g-code, you can just use it without additional commands. This is causing issues with support on r/klippers Signed-off-by: Rowland Straylight <rowlandstraylight@gmail.com>
* resonance_tester: Fix typoKevin O'Connor2025-05-131-1/+1
| | | | | | Fix typo introduced in 307c03e48. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* klippy_requirements: Update dependencies to support Python v3.13Kevin O'Connor2025-05-121-3/+4
| | | | | Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com> Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* manual_stepper: Support LIMIT_VELOCITY and LIMIT_ACCEL when using gcode axisKevin O'Connor2025-05-122-2/+17
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* manual_stepper: Support position_min and position_max optionsKevin O'Connor2025-05-122-2/+19
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* manual_stepper: Support INSTANTANEOUS_CORNER_VELOCITY on gcode axesKevin O'Connor2025-05-122-12/+21
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* manual_stepper: Support registering as an additional axisKevin O'Connor2025-05-123-1/+83
| | | | | | | 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>
* gcode_move: Support additional toolhead axesKevin O'Connor2025-05-122-6/+26
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* gcode_move: Internally track an axis_map to map gcode axis namesKevin O'Connor2025-05-121-11/+9
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* z_thermal_adjust: Support toolhead positions with more than 4 axesKevin O'Connor2025-05-121-2/+2
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* skew_correction: Support toolhead positions with more than 4 axesKevin O'Connor2025-05-121-2/+2
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* exclude_object: Support toolhead positions with more than 4 axesKevin O'Connor2025-05-121-17/+19
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* resonance_tester: Support toolhead positions with more than 4 axesKevin O'Connor2025-05-121-5/+6
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* bed_tilt: Support toolhead positions with more than 4 axesKevin O'Connor2025-05-121-5/+7
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* bed_mesh: Support toolhead positions with more than 4 axesKevin O'Connor2025-05-121-9/+10
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* toolhead: Initial support for adding extra axes to toolhead movesKevin O'Connor2025-05-122-32/+61
| | | | | | | | 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>
* force_move: No need to pass 4 parameters to toolhead.set_position()Kevin O'Connor2025-05-121-1/+1
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* toolhead: Only alter XYZ coordinates on set_position() callsKevin O'Connor2025-05-121-1/+1
| | | | | | | 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>
* toolhead: Support unregister_step_generator() callKevin O'Connor2025-05-121-0/+3
| | | | | | Allow both registering and unregistering step generation callbacks. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* extruder: Remove update_move_time() callKevin O'Connor2025-05-122-8/+12
| | | | | | | The toolhead can obtain the underlying extruder trapq via extruder.get_trapq(). Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* extruder: Rename extruder.move() to extruder.process_move()Kevin O'Connor2025-05-122-2/+2
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* generic_cartesian: Fixed safe_z_home and manual_probe for new kinematicsDmitry Butyugin2025-05-103-16/+31
| | | | | Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com> Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* stepper: Fix broken manual_stepper rail naming (#6929)Dmitry Butyugin2025-05-103-7/+9
| | | | | The naming got broken during refactoring for generic_cartesian. Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
* stepper: Minor code tweak - remove unneeded parenthesisKevin O'Connor2025-05-091-1/+1
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* stepper: Minor code reorg - remove unneeded HAVE_OPTIMIZED_PATH definitionKevin O'Connor2025-05-091-8/+7
| | | | | | | Make it more clear that stepper_load_next() has three separate code paths - one for each of the optimized stepper_event_X() functions. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* stepper: Also ensure minimum time after dir change and next stepKevin O'Connor2025-05-091-3/+11
| | | | | | | | | In practice the host will not schedule any steps immediately after a direction change (due to acceleration limits and the host "step+dir+step filter"). However, there is also no harm in enforcing a minimum duration in the mcu. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* stepper: Ensure minimum time between step pin and dir pin changeKevin O'Connor2025-05-091-0/+4
| | | | | | | | | | | | | | | Commit 8faed8d9 made it possible to utilize stepper_event_full() while utilizing tmc "step on both edges" optimation. That commit would ensure a minimum step pulse duration, but it did not ensure a minimum duration between step pin and dir pin changes. Commits 0d27195f and 554ae78d optimized the gpio handling on stm32h7 chips, which could potentially cause a very small amount of time between step pin and dir pin changes. Enforce a minimum time after a step pin update before updating the dir pin. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* stepper: Move timer checks from stepper_event_full() to stepper_load_next()Kevin O'Connor2025-05-091-10/+16
| | | | | | | This simplifies the stepper_event_full() and makes it easier to implement more complex checks. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* stepper: Free stepper_move struct near top of stepper_load_next()Kevin O'Connor2025-05-091-18/+26
| | | | | | | | Move up the freeing of the stepper_move struct and setting of s->position in stepper_load_next(). This simplifies the code and will make it easier to add more logic to this function. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* gcode_macro: more descriptive "unable to parse as a literal" error - display ↵Matszwe022025-05-081-2/+2
| | | | | | faulty command Signed-off-by: Mateusz Szwedka <matszwe02@gmail.com>
* config: Update CR6-SE 2021 config with board revision (#6924)JamesH19782025-05-081-1/+3
| | | | | As per #6923 this PR adds the fact that this config works for the late revision CR-ERA_V1.1.0.3 board as well. Signed-off-by: James Hartley <james@hartleyns.com>
* config: Update CR6-SE 2020 config with board revision (#6923)JamesH19782025-05-081-1/+2
| | | | | It has been noted that there are 3 possible boards with 2 possible configs, which we have both of, but this one does not state that it is for the 4.5.2 early kickstarter version. Which was causing some confusion. Signed-off-by: James Hartley <james@hartleyns.com>
* dual_carriage: Fixed broken safe_distance parameterDmitry Butyugin2025-05-074-3/+7
| | | | Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
* kinematics: Generic Cartesian kinematics implementation (#6815)Dmitry Butyugin2025-05-0627-199/+1855
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* klippy-requirements: Add comments to each of the requirementsKevin O'Connor2025-05-021-2/+9
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* build: add msgspec python requirementEric Callahan2025-05-021-0/+1
| | | | Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* webhooks: support msgspec json serializationEric Callahan2025-05-021-22/+34
| | | | Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* docs: Update stm32h723 benchmarks now that it runs at 520MhzKevin O'Connor2025-05-022-8/+8
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* stm32: Run stm32h723 at 520MhzKevin O'Connor2025-05-022-2/+4
| | | | | | Increase speed of stm32h723 chips from 400Mhz to 520Mhz. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* stm32: Support over 400Mhz main clock in stm32h7_adc.cKevin O'Connor2025-05-021-6/+7
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* stm32: Use 12Mhz nominal internal clock in stm32f0_i2c.cKevin O'Connor2025-05-021-9/+9
| | | | | | | Increase the internal nominal clock from 8Mhz to 12Mhz - this improves support for higher chip frequencies. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* docs: Note canbus_query.py limitations in CANBUS_Troubleshooting.mdKevin O'Connor2025-04-291-0/+17
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* docs: Note functioning canbus required even in bridge mode in CANBUS.mdKevin O'Connor2025-04-291-0/+9
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* neopixel: Round up in nsecs_to_ticks()Kevin O'Connor2025-04-281-1/+1
| | | | | | | The rp2040 operates at a fast internal clock with a relatively slow external timer and dividing down could result in a too small delay. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* stm32: Enable VOS0 power mode on stm32h723 if frequency above 400MhzKevin O'Connor2025-04-281-11/+15
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* stm32: Don't try to set incorrect PWR->CR3 register on stm32h7Kevin O'Connor2025-04-281-5/+3
| | | | | | It's not valid to set BYPASS and LDOEN at the same time. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>