1293 Commits

Author SHA1 Message Date
Neelix
373f200ca6 polar: add velocity scaling (#7172)
Print near the origin lead in to fast motor movements, therefore the
movement needs to be scaled down. The start of the scaling is done via
a rotation velocity limit from the config.

Signed-off-by: Nils Hensch <nils.hensch@gmx.de>
2026-04-16 10:52:33 -04:00
Kevin O'Connor
22dbdf1029 trigger_analog: Store pre-generated 25hz lowpass filter (at 250sps)
Store the 12 constants needed for the common probe_eddy_current "tap"
filter in trigger_analog.py code.  This avoids requiring "tap" users
to have the scipy python package installed.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2026-04-12 12:05:39 -04:00
Kevin O'Connor
f3db41c637 docs: Update FAQ now that heaters have a MAX_HEAT_TIME of 3 seconds
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2026-04-08 16:06:57 -04:00
Robert Schiele
dbebcfd638 katapult: Add a Config_changes.md entry for flashtool.py renaming
Signed-off-by: Robert Schiele <rschiele@gmail.com>
2026-04-08 15:03:28 -04:00
Robert Schiele
29e2652777 katapult: Update flash_can.py to succesor tool flashtool.py
This updates the outdated CanBoot flash_can.py with the latest
version of Katapult flashtool.py, which should be fully backwards
compatible.

Signed-off-by: Robert Schiele <rschiele@gmail.com>
2026-04-08 15:03:28 -04:00
Ben Lye
3a0b834f3a hall_filament_width_sensor: Sync runout and width sensor states
Keeps the width sensor state in sync with the associated runout sensor and
normalizes the output when the width sensor is disabled.

When the width sensor was disabled the associated filament sensor remained
enabled but was no longer updated so would be 'stuck' in the last state it
was in before the width sensor was disabled.

The toggle switch and readings in the web interface could also be out of sync
with the actual sensor and filament states, misleading the user.

Now, when the width sensor is disabled:
- The filament sensor is disabled
- The reported filament state is 'present'
- The reported filament diameter is the nominal diameter

When the width sensor is enabled:
- The filament sensor is enabled
- The reported filament state is the derived state
- The reported filament diameter is the measured value

Finally, `min_diameter` is now used to determine the runout state rather than
a fixed value of `0.5`.

Signed-off-by: Ben Lye ben@lye.co.nz
2026-04-08 14:57:04 -04:00
Ben Lye
48446a5448 hall_filament_width_sensor: Add config validation
Adds two checks to prevent config settings which could lead to div-by-zero errors in specific circumstances:

- `raw_dia1` and `raw_dia2` must be different to prevent a possible exception in `adc2_callback`

- `max_difference` must be less than `default_nominal_filament_diameter` to prevent a possible exception in `extrude_factor_update_event`

Doc is also updated.

Signed-off-by: Ben Lye ben@lye.co.nz
2026-04-08 14:57:04 -04:00
Ben Lye
4fba8e4829 hall_filament_width_sensor: Toggle for flow compensation
Adds a toggle to enable or disable flow compensation based on the
filament width sensor readings without disabling the sensor entirely.

Useful on printers where the hall effect sensor is too inaccurate to
helpfully adjust the extrusion multiplier, but is good enough to act as
a filament runout sensor.

The new setting defaults to true to preserve the existing sensor
behavior.

Existing width sensor G-Code commands are updated to optionally enable
and disable flow compensation and to show the state of the sensor and
command outputs are normalized.

Also includes updates to the relevant doc pages.

Signed-off-by: Ben Lye ben@lye.co.nz
2026-04-08 14:57:04 -04:00
Ju Nan
b0e6ca45fc docs: Fix warnings in re pattern and update py-gfm version
1. wipe out syntaxwarnings of "invalid escape sequence '\s'"
2. update py-gfm version to fit python3.8+

Signed-off-by: Ju Nan <junan76@163.com>
2026-04-01 11:50:21 -04:00
Kevin O'Connor
e5c3dfe7a8 probe_eddy_current: Use different defaults for "scan", "rapid_scan" and "tap"
Add a new EddyParameterHelper to override ProbeParameterHelper.

Only use the printer.cfg lift_speed, samples, sample_retract_dist,
samples_result, samples_tolerance, and samples_tolerance_retries
settings for normal probe operations.  Don't use these defaults when
using a "METHOD" set to "scan", "rapid_scan", or "tap".  Each of these
probing mechanisms is distinct and it's unlikely a user could
meaningfully set a default for all of them.

Don't set sample_retract_dist when using "scan" and "rapid_scan"
modes.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2026-03-24 13:13:37 -04:00
Kevin O'Connor
6c8c8d24d7 probe_eddy_current: Support new tap_z_offset config parameter
Theoretically a "tap" probe should detect the exact point that the
nozzle contacts the bed.  In practice, however, there can be a
systemic bias that one may wish to account for.  This bias may be due
to backlash, thermal expansion, a detection bias, or similar issues.

Add a new tap_z_offset config parameter to allow users to specify an
offset.

Also, update the Z_OFFSET_APPLY_PROBE command to support modifying
this value.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2026-03-24 13:07:19 -04:00
Kevin O'Connor
20df766e21 probe_eddy_current: Rename config option z_offset to descend_z
The config option 'z_offset' name is confusing as its behavior is
notably different from how other probe hardware uses 'z_offset'.
Rename to 'descend_z' to make its behavior more clear.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2026-03-24 13:07:19 -04:00
Kevin O'Connor
4046b34a7b docs: Note probe options that can change via G-Code in Config_Reference.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2026-03-24 13:07:19 -04:00
Timofey Titovets
0c32f3bd99 tmc2240: allow enable SG4 threshold
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
2026-03-04 19:56:26 -05:00
Kevin O'Connor
0624cce4b3 probe_eddy_current: Support TAP_THRESHOLD parameter on "tap" probes
Allow the "tap_threshold" to be overriden during PROBE type commands.
This makes it easier to calibrate an initial tap_threshold.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2026-02-28 20:11:16 -05:00
Kevin O'Connor
391834ba12 docs: Rework how METHOD= parameter works in G-Codes.md
Describe the METHOD= parameter in the probe_eddy_current chapter.

Use similar layout for both the load_cell_probe and probe_eddy_current
sections.

Avoid duplicating the METHOD= parmeter for other commands.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2026-02-27 20:20:33 -05:00
Kevin O'Connor
43b2d55d9b motan: Don't default to subscribing to all sensors in data_logger
Subscribing to all sensors can cause a burden on the MCU communication
channels.  Add a new '-s' command line option to data_logger.py that
allows a user to request the subscriptions that they wish to capture.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2026-02-24 10:05:21 -05:00
Dmitry Butyugin
187481e251 dual_carriage: Allow dual carriage inactivation
Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
2026-02-19 21:37:18 -05:00
Kevin O'Connor
57c2e0c960 manual_stepper: Support STOP_ON_ENDSTOP=probe
Support moving a manual_stepper until a trigger event, without
resetting the final position.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2026-02-14 14:08:21 -05:00
Kevin O'Connor
5a877d7220 manual_stepper: Rework STOP_ON_ENDSTOP parameter
Replace the integer values of STOP_ON_ENDSTOP with string values and
deprecate the older format.  The newer string values should make the
commands easier to understand and allow for more homing options in the
future.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2026-02-14 14:08:21 -05:00
FranciscoStephens
8a210d23fe bmi160: Add support for BMI160 accelerometer
This adds host and firmware support for the Bosch BMI160 IMU. It includes support for both SPI and I2C communication protocols.

The firmware implementation includes a specific SPI wake-up sequence (dummy read) required to switch the sensor interface mode reliably. Validated on Linux MCU (SPI) and RP2040 (I2C) with stable 1600Hz ODR.

Signed-off-by: FranciscoStephens <francisco.stephens.g@gmail.com>
2026-02-12 17:46:33 -05:00
Kevin O'Connor
13b4561beb docs: Update Config_Changes.md to reflect i2c changes to sx1509 and uc1701
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2026-02-07 14:32:43 -05:00
Dmitry Butyugin
4c89f7f826 generic_cartesian: Full IQEX printers support (#7165)
Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
2026-02-04 16:54:05 -05:00
Timofey Titovets
29a494aa9e docs: eddy homing correction macro
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
2026-02-02 12:30:11 -05:00
Timofey Titovets
9a04eb5aab docs: eddy tap recommended samples/tolerance/retries
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
2026-02-02 12:30:11 -05:00
Timofey Titovets
4c62220491 docs: eddy probe - tip about PROBE_ACCURACY
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
2026-02-02 12:30:11 -05:00
Timofey Titovets
7047d80b0f docs: eddy probe - tap requires install of scipy
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
2026-02-02 12:30:11 -05:00
Timofey Titovets
dfe6d3f066 docs: describe calibration output
Add a hint about the connection between the calibration output
and tap threshold.

Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
2026-01-29 20:57:55 -05:00
Timofey Titovets
a03eed7115 docs: describe tap calibration routine
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
2026-01-29 20:57:55 -05:00
Kevin O'Connor
5c23f9296a probe_eddy_current: implement tap support
Use SOS filters + derivative filter to generate dF/dT on mcu.
Feed that to the MCU's trigger_analog peak detection.
Interpret peak time as a tap event

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
2026-01-29 20:57:55 -05:00
Kevin O'Connor
32a5f2b042 probe: Deprecate last_z_result and add new last_probe_position
Deprecate the PROBE command's exported value
`{printer.probe.last_z_result}`.  This value effectively returns the
toolhead Z position when the probe triggers and user's then need to
adjust the result using the probe's configured z_offset.

Introduce a new `{printer.probe.last_probe_position}` as a
replacement.  This replacement has an easier to understand behavior -
it states that the probe hardware estimates that if the toolhead is
commanded to last_probe_position.x, last_probe_position.y and descends
then the tip of the toolhead should first make contact at a Z height
of last_probe_position.z .  That is, the new exported value already
takes into account the probe's configured xyz offsets.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2026-01-21 12:13:15 -05:00
Kevin O'Connor
2a1027ce41 probe: Convert pull_probed_results() to return ProbeResult
Change the low-level probe code to return ProbeResult tuples from
probe_session.pull_probed_results().  Also update callers to use the
calculated bed_xyz values found in the tuple instead of calculating
them from the probe's xyz offsets.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2026-01-21 12:13:15 -05:00
Kevin O'Connor
2e0c2262e7 probe: Convert ProbePointsHelper to use ProbeResult
Change the ProbePointsHelper class to return ProbeResult tuples.
Callers of this class are also updated so that they use the tuple's
bed_xyz parameters instead of manually calculating these values from
the probe xyz offsets.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2026-01-21 12:13:15 -05:00
Timofey Titovets
1fc9d81095 docs: describe eddy error messages
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
2026-01-08 12:00:45 -05:00
Timofey Titovets
3d5f352e24 docs: Describe static_pwm_clock section
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
2025-12-30 18:14:37 -05:00
Kevin O'Connor
5d24122c04 _klipper3d: Make sure custom css file is preserved
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-12-23 18:25:59 -05:00
Kevin O'Connor
d9f5da7196 _klipper3d: Remove unnecessary files copied into the main website
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-12-23 18:05:19 -05:00
Kevin O'Connor
94cbde7517 _klipper3d: Rename build-translations.sh to build-website.sh
Rename the build script to make it more clear that it builds the
entire github hosted website.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-12-23 15:26:14 -05:00
minicx
4e3a16d17b docs: Update AHT family sensors documentation
- Document AHT15 and AHT30 sensor support
- Update sensor_type options (AHT1X, AHT2X, AHT3X)
- Add note about some AHT20 working with AHT1X sensor type

Signed-off-by: Lev Voronov <minicx@disroot.org>
2025-11-30 16:50:11 -05:00
Dmitry Butyugin
79189203e2 generic_cartesian: Added option 'axis' for primary carriages
This also enables arbitrary using names for primary carriages
with generic_cartesian kinematics.

Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
2025-11-25 18:12:43 -05:00
Kevin O'Connor
f04895f540 docs: Update Config_Changes.md with recent coordinate changes
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-11-06 10:21:19 -05:00
Kevin O'Connor
c7b1e401f0 docs: Update Status_Reference.md with information on accessing coordinates
Update the docs with information on how to access the "extra axes" of
coordinate values.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-11-06 10:19:00 -05:00
Kevin O'Connor
877b63a28c docs: Fix minor typo in Eddy_Probe.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-11-04 10:58:36 -05:00
Kevin O'Connor
05c4a38279 docs: Fix minor typo in Eddy_Probe.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-11-04 10:57:27 -05:00
JamesH1978
b1dd6a73f7 docs: Update FAQ.md - Typo (#7089)
Kliper is not Klipper!

Signed-off-by: James Hartley <james@hartleyns.com>
2025-10-13 13:53:13 -04:00
Pedro Lamas
a5c764bbe9 docs: Command parameter fix
Signed-off-by: Pedro Lamas <pedrolamas@gmail.com>
2025-10-12 14:37:35 -04:00
Kevin O'Connor
8de426d244 toolhead: Reduce target buffer time to 1 second from 2 seconds
During normal printing the host software would attempt to stay ahead
of the micro-controller by 2 full seconds.  Change that time to 1
second.  This should make the software more responsive to user
requests (such as pause requests).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-10-10 11:07:50 -04:00
Dmitry Butyugin
470803853e docs: Documentation for Z axis input shaper and resonance measurements
Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
2025-10-04 19:50:34 -04:00
Dmitry Butyugin
c570f4e095 docs: Added description of MZV input shaper
Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
2025-10-04 13:07:49 -04:00
Dmitry Butyugin
c98527ff00 docs: Updated the docs to the latest shaper changes and fixed typos
Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
2025-10-04 13:07:49 -04:00