aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/extras
Commit message (Collapse)AuthorAgeFilesLines
* Isort all klippy codeTomasz Kramkowski2025-08-1577-63/+187
|
* Remove logfile supportTomasz Kramkowski2025-08-151-1/+0
|
* Rename everything significant to Kutter except for docsTomasz Kramkowski2025-08-154-5/+5
|
* Remove python2 support (first party)Tomasz Kramkowski2025-08-061-5/+2
|
* Run black on all first party python codeTomasz Kramkowski2025-08-06138-7890/+11752
|
* klippy: fix typos in python code (#6989)Thijs Triemstra2025-07-2515-25/+25
| | | Signed-off-by: Thijs Triemstra <info@collab.nl>
* safe_z_home: correct error callPaul Arthur2025-07-221-1/+1
| | | | Signed-off-by: Paul Arthur <paul.arthur@flowerysong.com>
* mcp4018: Remove support for manual i2c - use standard mcu software i2c insteadKevin O'Connor2025-07-221-65/+4
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* pca9632: Remove custom software i2c - use normal mcu software i2c insteadKevin O'Connor2025-07-221-5/+2
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* heaters: Increase time before clearing the temperature of an inactive heaterKevin O'Connor2025-07-191-2/+4
| | | | | | | | | | | The get_temp() code will stop reporting the last temperature of the heater if there hasn't been any recent temperature updates. However, on a full mcu communication loss this can cause the verify_heater code to report a heating error prior to the mcu code reporting the communication failure. Increase the heater timeout from 5 to 7 seconds to make it more likely the mcu failure is reported first. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* tmc.py: add track of stallguardTimofey Titovets2025-07-124-0/+102
| | | | Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
* tmc: add enriched UART readTimofey Titovets2025-07-121-6/+14
| | | | Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
* tmc: add spi status decodeTimofey Titovets2025-07-121-0/+7
| | | | Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
* tmc2660: add enriched SPI readTimofey Titovets2025-07-121-3/+11
| | | | Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
* tmc: add enriched SPI readTimofey Titovets2025-07-121-5/+16
| | | | | | | Currently TMC spi just drop the data that could be useful. Export that data. Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
* sht3x: reads should be retried with at least 0.5s pauseTimofey Titovets2025-07-112-3/+17
| | | | | | | | | | | | | SHT3x would return a read NACK on host retries. When the MCU receives the I2C CMD, it reads out data. SHT3x clears the data buffer. The MCU fails to deliver a response to the host. The host retries, the device returns NACK, then the MCU goes into the shutdown state. Make sure there is at least 0.5s between retries. Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
* ads1x1x: Rename local 'config' variable to pcfgKevin O'Connor2025-07-081-22/+22
| | | | | | | Avoid using the name "config" as a local register storage variable as it can be confused with the common "config" configfile reference. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* ads1x1x: Revert incorrect removal of assignment to self.configKevin O'Connor2025-07-081-0/+1
| | | | | | | | Commit d120a313b incorrectly removed an assignment to self.config - in this instance the reference was to a local variable not related to the global configfile storage. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* input_shaper: fix printer obj referenceTimofey Titovets2025-06-061-1/+1
| | | Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
* docs: Note 'config' object shouldn't be accessed after initial loadKevin O'Connor2025-06-043-4/+1
| | | | | | | | | | Update Code_Overview.md to note that the config object should not be stored after the "config loading phase". Remove a few inadvertent cases where a 'config' object was stored in module member variables. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* input_shaper: Track kinematics updates by dual_carriageDmitry Butyugin2025-06-041-8/+33
| | | | Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
* htu21: fix crash on unknown dev idTimofey Titovets2025-06-021-16/+22
| | | | Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
* print_stats: Fix for filament statistics bug in print_stats.py for ↵Ingo Donasch2025-05-311-0/+5
| | | | | | | toolchangers (#6946) added extruder:activate_extruder event hook to print_stats.py to update self.last_epos Signed-off-by: Ingo Donasch <ingo@donasch.net>
* sos_filter: Improve error checking on section_idxKevin O'Connor2025-05-291-1/+1
| | | | | | | | | | Validate host provided index prior to accessing memory using that index. Also, consistently use a uint8_t for max_sections (to account for integer overflow issues). Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* load_cell_probe: Avoid peeking directly at config.section member variableKevin O'Connor2025-05-291-1/+1
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* load_cell_probe: Create LoadCellProbeGareth Farrington2025-05-291-0/+658
| | | | | | Initial setup of Load Cell Probing. This implementation supports triggering from the Load Cell Probe on the MCU. It also supports, optiopnal, filtering of the force signal by sos filter to eliminate drift caused by bowden tubes or other mechanical causes. Signed-off-by: Gareth Farrington <gareth@waves.ky>
* probe: Create ProbeVirtualEndstopDeprecationGareth Farrington2025-05-291-0/+11
| | | | | | As probes stop supporting `probe:z_virtual_endstop` this class will give users a polite and specific configuration error. Signed-off-by: Gareth Farrington <gareth@waves.ky>
* sensor_hx71x: Update Sensors to report to load_cell_probeGareth Farrington2025-05-292-0/+13
| | | | Signed-off-by: Gareth Farrington <gareth@waves.ky>
* sos_filter: Second Order Sections MCU FilterGareth Farrington2025-05-291-0/+232
| | | | | | | | | | This is an implementation of the SOS fliltering algorithm that runs on the MCU. The filter opperates on data in fixed point format to avoid use of the FPU as klipper does not support FPU usage. This host object handles duties of initalizing and resetting the filter so client dont have to declare their own commands for these opperations. Clients can select how many integer bits they want to use for both the filter coefficients and the filters output value. An arbitrary number of filter sections can be configured. Filters can be designed on the fly with the SciPy library or loaded from another source. Signed-off-by: Gareth Farrington <gareth@waves.ky>
* lis2dw: if spi is used - disable i2cTimofey Titovets2025-05-261-0/+3
| | | | Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
* dual_carriage: Fixed input shaper stepper kinematics initializationDmitry Butyugin2025-05-221-0/+4
| | | | Signed-off-by: Dmitry Butyugin <dmbutyugin@google.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>
* manual_stepper: Support LIMIT_VELOCITY and LIMIT_ACCEL when using gcode axisKevin O'Connor2025-05-121-2/+13
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* manual_stepper: Support position_min and position_max optionsKevin O'Connor2025-05-121-2/+12
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* manual_stepper: Support INSTANTANEOUS_CORNER_VELOCITY on gcode axesKevin O'Connor2025-05-121-1/+7
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* manual_stepper: Support registering as an additional axisKevin O'Connor2025-05-121-1/+56
| | | | | | | 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-121-6/+22
| | | | 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>
* 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>
* 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>
* 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>
* kinematics: Generic Cartesian kinematics implementation (#6815)Dmitry Butyugin2025-05-064-5/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* heaters: Confirm heater setting in mcu every 3 seconds instead of 5Kevin O'Connor2025-04-281-2/+2
| | | | | | | Increase the confirmation rate of heater enable settings. This allows the mcu to utilize faster internal speeds. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* pwm_tool: Use mcu.min_schedule_time() and mcu.max_nominal_duration()Kevin O'Connor2025-04-281-6/+4
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>