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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>