aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* config: update Kobra Plus build instructions and fan settingsDerek Kaser2024-03-041-2/+2
| | | | Signed-off-by: Derek Kaser <derek.kaser@gmail.com>
* avr: enable small code size options for atmega32u4Jake2024-03-021-1/+1
| | | | Signed-off-by: Jake Beju <jake.beju@gmail.com>
* docs: updates BED_MESH_CALIBRATE descriptionPedro Lamas2024-02-201-5/+11
| | | | | | Adds the ADAPTIVE and ADAPTIVE_MARGIN parameters to the documentation. Signed-off-by: Pedro Lamas <pedrolamas@gmail.com>
* shaper_calibrate: Fixed crashes in SHAPER_CALIBRATE and TEST_RESONANCESDmitry Butyugin2024-02-172-12/+16
| | | | | | | Fixed crashes due to wrong parameter passed to the shaper selection function and when the custom FREQ_END is specified. Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
* scripts: Added shaper tuning parameters to calibrate_shaper scriptDmitry Butyugin2024-02-164-25/+145
| | | | | | | | | | | | | | | The added parameters include square_corner_velocity, shaper frequencies to optimize, input shapers to test, input shaper damping ratio and damping ratios to test. All these options can be useful for fine-tuning the input shapers when the default suggestions generated by the tuning script are not optimal. Also the `SHAPER_CALIBRATE` command was modified to pass some of these parameters to the shaper tuning routine. Specifically, square corner velocity and the maximum tested frequency are used to adjust shaper tuning and maximum acceleration recommendations. Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
* docs: Note removal of deprecated options in Config_Changes.mdKevin O'Connor2024-02-151-0/+8
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* bed_mesh: Remove deprecated relative_reference_indexKevin O'Connor2024-02-153-44/+6
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* extruder: Remove deprecated commands and configKevin O'Connor2024-02-153-44/+5
| | | | | | | | Remove the deprecated SET_EXTRUDER_STEP_DISTANCE and SYNC_STEPPER_TO_EXTRUDER commands. Remove the deprecated shared_heater config option. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* heaters: Remove deprecated thermistor "NTC 100K beta 3950"Kevin O'Connor2024-02-152-8/+0
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* docs: Fix typo in Skew_Correction.mdKevin O'Connor2024-02-151-1/+1
| | | | | | Reported by @streetgt. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* docs: update BED_MESH_OFFSET descriptionEric Callahan2024-02-152-7/+17
| | | | | | Add the ZFADE parameter to the documentation. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: add ZFADE parameter to BED_MESH_OFFSETEric Callahan2024-02-151-3/+10
| | | | | | | | When a ZFADE value is passed to BED_MESH_OFFSET it is used to adjust how fade is applied. This resolves issues with fade when SET_GCODE_OFFSET is used during a tool change. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* docs: Add required dependency to run numpy with python3 on RPI (#6491)Anders Brujordet2024-02-131-1/+1
| | | Signed-off-by: Anders Brujordet <anders@brujordet.no>
* docs: Fix typo in Probe_Calibrate.mdKevin O'Connor2024-02-091-1/+1
| | | | | | Reported by @nmattia. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* bed_mesh: fix profile_name reporting in get_status()Eric Callahan2024-01-281-10/+8
| | | | | | | | | | | | | | Adaptive meshing avoids saving the mesh after calibration to prevent users from inadvertently overwriting an existing profile with an adaptive mesh. This introduced a change in behavior of how get_status() reports the profile_name, as it can now be an empty string when a mesh is active. This patch assigns adaptive meshes a name with a unique postfix. In addition, it moves profile name tracking from the profile manager to the ZMesh class. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: fix manual mode point generationEric Callahan2024-01-281-5/+8
| | | | | | | Do not generate points for the zero_reference_position or faulty_regions when manual probing is requested. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* virtual_sdcard: fix virtual SD file position count (#6472)Kiswich2024-01-271-1/+1
| | | Signed-off-by: Zhang Qiwei <zxy16305@gmail.com>
* bed_mesh: Implement adaptive bed mesh (#6461)voidtrance2024-01-265-4/+181
| | | | | | | | | | | | | | | | | | | | Adaptive bed mesh allows the bed mesh algorithm to probe only the area of the bed that is being used by the current print. It uses [exclude_objects] to get a list of the printed objects and their area on the bed. It, then, modifies the bed mesh parameters so only the area used by the objects is measured. Adaptive bed mesh works on both cartesian and delta kinematics printers. On Delta printers, the algorithm, adjusts the origin point and radius in order to translate the area of the bed being probe. Signed-off-by: Mitko Haralanov <voidtrance@gmail.com> Signed-off-by: Kyle Hansen <kyleisah@gmail.com> Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* rp2040: Only change SPI settings while peripheral is disabledKevin O'Connor2024-01-251-0/+4
| | | | | | | Make sure to disable/enable the peripheral to ensure the clock polarity is properly set prior to a change in CS. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* rp2040: Load vectortable into ramKevin O'Connor2024-01-252-0/+27
| | | | | | | Load the interrupt vector table into ram at startup. This reduces the chance of a flash cache access causing timing instability. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* rp2040: Run all code from ramKevin O'Connor2024-01-251-2/+3
| | | | | | | Place all normal code into ram. This reduces the chance that rp2040 instruction cache misses could cause subtle timing issues. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* rp2040: Always link using rp2040_link.lds.SKevin O'Connor2024-01-252-3/+11
| | | | | | Use the rp2040 specific linker script even when using a bootloader. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* armcm_boot: Avoid invoking functions in reset_handler_stage_two()Kevin O'Connor2024-01-251-4/+28
| | | | | | | | | | Avoid calling memset() and memcpy() prior to copying the ram and clearing the bss. Also, place both ResetHandler() and reset_handler_stage_two() in an explicit ".text.armcm_boot" linker section. These changes make it easier to support targets that want to run all code in ram. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* mcu: Remove support for set_pwm() cycle_time parameterKevin O'Connor2024-01-234-32/+13
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* pwm_cycle_time: New module for output pins with dynamic cycle timesKevin O'Connor2024-01-239-38/+204
| | | | | | | | | Remove support for changing the cycle time of pwm pins from the output_pin module. Use a new pwm_cycle_time module that supports setting dynamic cycle times. This simplifies the output_pin code and low-level pin update code. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* output_pin: Deprecate the maximum_mcu_duration parameterKevin O'Connor2024-01-233-9/+14
| | | | | | | Advise users to configure a pwm_tool config section if checking for maximum mcu duration is required. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* mcu: Remove support for "static" pinsKevin O'Connor2024-01-234-48/+9
| | | | | | | | | Update static_digital_output.py to directly configure static digital pins. There are no other users of "static" pins, so remove that support from mcu.py, replicape.py, and sx1509.py. This simplifies the low-level pin handling code. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* output_pin: Deprecate static_value parameterKevin O'Connor2024-01-239-41/+42
| | | | | | | | | | | | Remove support for configuring "static" pins in output_pin module. A "static" pin only saves a few bytes of memory in the micro-controller. The savings does not justify the increased code complexity. Deprecate the static_value parameter to warn users. In the interim, a static_value parameter will set both value and shutdown_value parameters. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* stm32: Remove product names from bootloader choices menuKevin O'Connor2024-01-221-7/+7
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* stm32: Add 36KiB bootloader offset option (#6449)Jakub2024-01-221-0/+3
| | | | | - This offset is used by Anycubic Kobra 2 Neo bootloader Signed-off-by: Jakub Przystasz <jakub.przystasz@gmail.com>
* stm32g0: Disable internal pull-down resistors on UCPDx CCx pins, because ↵BIGTREETECH2024-01-211-0/+2
| | | | | klipper never uses UCPD (#6462) Signed-off-by: Alan.Ma from BigTreeTech <tech@biqu3d.com>
* sensor_lis2dw: No need to schedule start of bulk readingKevin O'Connor2024-01-192-53/+18
| | | | | | It's simpler and faster to enable the lis2dw in the python code. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* sensor_mpu9250: No need to schedule start of bulk readingKevin O'Connor2024-01-192-108/+43
| | | | | | It's simpler and faster to enable the mpu9250 in the python code. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* sensor_adxl345: No need to schedule start of bulk readingKevin O'Connor2024-01-192-53/+18
| | | | | | It's simpler and faster to enable the adxl345 in the python code. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* bulk_sensor: Don't assume chip_clock is zero on start of queriesKevin O'Connor2024-01-194-9/+13
| | | | | | | Send an explicit clock query in ChipClockUpdater to seed the initial clock. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* sensor_bulk: New C file with helper code for sending bulk sensor measurementsKevin O'Connor2024-01-1913-189/+153
| | | | | | | | | | Refactor the low-level "bulk sensor" management code in the mcu. This updates the sensor_adxl345.c, sensor_mpu9250.c, sensor_lis2dw.c, and sensor_angle.c code to use the same "bulk sensor" messages. All of these sensors will now send "sensor_bulk_data" and "sensor_bulk_status" messages. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* sensor_angle: No need to send messages when stopping queriesKevin O'Connor2024-01-192-10/+4
| | | | | | Simplify the mcu code as any messages are ignored by the host anyway. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* sensor_lis2dw: No need to send messages when stopping queriesKevin O'Connor2024-01-192-25/+4
| | | | | | Simplify the mcu code as any messages are ignored by the host anyway. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* sensor_mpu9250: No need to send messages when stopping queriesKevin O'Connor2024-01-192-15/+2
| | | | | | Simplify the mcu code as any messages are ignored by the host anyway. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* sensor_adxl345: No need to send messages when stopping queriesKevin O'Connor2024-01-192-24/+2
| | | | | | Simplify the mcu code as any messages are ignored by the host anyway. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* mcu: Add send_wait_ack() support to CommandWrapperKevin O'Connor2024-01-191-0/+3
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* docs: Update to mkdocs to use latest jinj2 versionKevin O'Connor2024-01-181-2/+2
| | | | | | | | There is a jinja2 security advisory on the current Jinja2 version. Klipper is not impacted by this advisory (as it does not run jinja2 on any untrusted data), but there is no harm in updating. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* toolhead: Rename note_kinematic_activity() to note_mcu_movequeue_activity()Kevin O'Connor2024-01-184-10/+10
| | | | | | Rename this function to make it more clear why it is called. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* toolhead: Rename MoveQueue class to LookAheadQueueKevin O'Connor2024-01-182-31/+33
| | | | | | | Rename this class so that is is not confused with the mcu "move queue". Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* force_move: Fix missing call to note_kinematic_activity()Kevin O'Connor2024-01-181-0/+1
| | | | | | | | | Commit 3d3b87f9 incorrectly removed the call to note_kinematic_activity(). A call to toolhead.dwell() is not sufficient to wake up the mcu move queue flushing. The call to note_kinematic_activity() is needed for that. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* config: Add Creality Ender 5 S1. (#6455)grnbrg2024-01-182-0/+171
| | | | | | | | | | Creality released the Ender 5 S1 model in November of 2022. It has enough hardware differences from the previous models that that the existing Ender 5 configs are not compatible. This configuration is based on one provided by Creality that was then tweaked and modified. I have been using these values (plus some additional entries) for about 6 months with no issues. Signed-off-by: Brian Greenberg <grnbrg@grnbrg.org>
* toolhead: Extend flushing slightly past required timeKevin O'Connor2024-01-172-6/+6
| | | | | | | | | There is no harm in enabling flushing for a little longer than necessary. In contrast, a slight rounding issue causing a message to not get flushed properly could result in an error. So, extend the flushing time slightly to avoid potential issues. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* toolhead: Ensure full kin_flush_delay after flush_step_generation()Kevin O'Connor2024-01-162-4/+5
| | | | | | | | | | | | | | | | | | | | Commit b7b13588 made it possible that the kinematic code could be restarted after a flush_step_generation() call without a sufficient delay. Rename last_sg_flush_time to min_restart_time and use that to ensure _calc_print_time() always pauses kin_flush_delay time since the last flush_step_generation() call. Also, update force_move to invoke flush_step_generation() after any movements. This is needed to ensure there is a sufficient delay should force_move be called on a stepper motor that is part of the toolhead kinematics and is using a step generation "scan time". This fixes possible "internal error in stepcompress" reports when using FORCE_MOVE. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* docs: Update Multi_MCU_Homing.md to note the importance of low-latencyKevin O'Connor2024-01-161-3/+9
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* mcu: Increase trsync_state reporting during multi-mcu homingKevin O'Connor2024-01-161-2/+2
| | | | | | | | | | | | | | | The current code has the mcu report a trsync_state message every 10ms and expects a time extension within 25ms. However, this means that if a single mcu->host report is lost then 20ms would elapse until the next report, which would allow for only a 5ms round-trip time before a timeout error is reported. Increase the trsync_state timing so that a message is sent every 7.5ms. This increases the total number of messages per second sent from mcu to host to 133 (from 100). With this change, a single lost message would still allow for up to a 10ms round-trip time. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>