Skip to content

catchup with upline#13

Open
SteveGotthardt wants to merge 1109 commits intoSteveGotthardt:masterfrom
Klipper3d:master
Open

catchup with upline#13
SteveGotthardt wants to merge 1109 commits intoSteveGotthardt:masterfrom
Klipper3d:master

Conversation

@SteveGotthardt
Copy link
Copy Markdown
Owner

No description provided.

nefelim4ag and others added 30 commits November 4, 2025 12:15
Move the definition of the struct so that it is more clear that it has
its own locking.

Signed-off-by: Kevin O'Connor <[email protected]>
There's no reason to attempt to handle multiple buffer transmissions
in a single command_event() call.  Handle the transmit case outside of
the command building loop.

If data is transmitted, then get a new timestamp from the pollreactor
and retry before sleeping.

Signed-off-by: Kevin O'Connor <[email protected]>
Move the upcoming queue movement logic to a new function.

Signed-off-by: Kevin O'Connor <[email protected]>
Maintain the next needed wakeup time for entries in the pending
queues.  This avoids needing to walk the upcoming queues when it is
known that nothing is ready to be released.

Signed-off-by: Kevin O'Connor <[email protected]>
Only hold the lock in the serialqueue thread when moving messages to
the ready queue and when setting the next need_kick_clock.

Only set the need_kick_clock just prior to sleeping.

Signed-off-by: Kevin O'Connor <[email protected]>
Keep moving messages from the pending queues to the ready queues even
if it's not currently valid to transmit messages to the mcu.  This
improves the statistics when debugging.

Signed-off-by: Kevin O'Connor <[email protected]>
Rename the function and perform list appending and locking in that
function.

Signed-off-by: Kevin O'Connor <[email protected]>
Replace the existing Coord() class with one that supports more than 4
coordinates.

Signed-off-by: Kevin O'Connor <[email protected]>
Instead of passing arguments as parameters, pass them as a list (or
tuple).  This simplifies the callers and makes it easier to pass
additional parameters.

Signed-off-by: Kevin O'Connor <[email protected]>
Change "homing_origin" and "position" to support more than 4
components.  Export a new "axis_map" value to describe the contents at
each component index.

Signed-off-by: Kevin O'Connor <[email protected]>
Update the "position" status to include extra axes.  Export a new
"extra_axes" value that describes the class associated with each
component of the coordinate.

Signed-off-by: Kevin O'Connor <[email protected]>
…nates

Update the docs with information on how to access the "extra axes" of
coordinate values.

Signed-off-by: Kevin O'Connor <[email protected]>
A "dummy extruder" that is created when no "[extruder]" config section
is defined does not have a "name".  Avoid reporting that empty name in
the `{printer.toolhead.extra_axes}" status report.

Signed-off-by: Kevin O'Connor <[email protected]>
This timing is also known as T1H in various datasheets. Increasing it
should improve compatibility with various revisions and clones of the
WS2812 LED.

The short version is that 800 is the timing used by Adafruit's popular
NeoPixel Arduino library, and it has no problem driving my BTT RGBW kit
LEDs, while Klipper cannot drive them properly without this patch. The
real upper limit to this value is something like 5000ns so increasing
it should not cause new compatibility problems for LEDs that currently
work.

Signed-off-by: Alistair Buxton <[email protected]>
Signed-off-by: Timofey Titovets <[email protected]>
…ation (#7122)

This adds a dedicated check for that case to be able to
find the root cause of a misconfiguration earlier.

Also, replace occurrences of hardcoded max tick count.

Signed-off-by: Pascal Pieper <[email protected]>
Signed-off-by: Timofey Titovets <[email protected]>
* Do not recommend ZV shaper by default if possible
* Try to find more optimal shaper out of more aggressive ones

Signed-off-by: Dmitry Butyugin <[email protected]>
This also enables arbitrary using names for primary carriages
with generic_cartesian kinematics.

Signed-off-by: Dmitry Butyugin <[email protected]>
benlye and others added 30 commits April 8, 2026 14:57
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 [email protected]
Race conditions exist when `M221 S100` commands are sent outside the
timer, while the sensor is active. This intermittently prevents the flow
multiplier resetting to 100% when either flow compensation or the width
sensor are changed to disabled.

We can avoid this by moving the diable actions, including the `M221 S100`
commands, inside the timer loop and only using `M221` outside the timer
while the sensor is disabled.

Signed-off-by: Ben Lye [email protected]
Allow specifying only one unnamed accelerometer in the configuration file, which becomes the default.

Signed-off-by: Maksim Bolgov <[email protected]>
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 <[email protected]>
A bouncing button can generate a lot of pending G-code
Each G-Code command will lock on the G-Code mutex

Decrease pressure by ignoring empty G-Code requests

Signed-off-by: Timofey Titovets <[email protected]>
PB6 used on cartographer v4

Signed-off-by: Timofey Titovets <[email protected]>
Signed-off-by: Timofey Titovets <[email protected]>
Add new add_lowpass(), add_highpass(), add_notch(), and
setup_initial_state() methods to DigitalFilter.  Use these instead of
creating the filters from the constructor.

Also remove the unused filtfilt() method.

Signed-off-by: Kevin O'Connor <[email protected]>
Replace the DerivativeFilter() class with a new add_derivative()
method in DigitalFilter() class.

Signed-off-by: Kevin O'Connor <[email protected]>
Support exporting the current SOS filter size from the DigitalFilter()
class.  Pass that value to the MCU_SosFilter() class to avoid
allocating unneccessary MCU memory (previously 5 entries were
allocated while only 3 are currently needed).

Signed-off-by: Kevin O'Connor <[email protected]>
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 <[email protected]>
Use a different base frequency and base z value for the internal "tap"
least squares analysis to improve the numerical stability of the
calculations.

Rework the formulas being solved so that only the depressed slope
calculation is relative to the estimated z contact point.  This
results in less variables that are dependent on the z contact.

Signed-off-by: Kevin O'Connor <[email protected]>
Use the least squares solution code in the local mathutil.py module
instead of using the numpy package.  This allows users to utilize the
"tap" functionality without requiring additional package installation.

Signed-off-by: Kevin O'Connor <[email protected]>
…lation

Directly calculate the evaluated matrices instead of using
mat_mat_mult() and mat_transp().

Cache the intermediate summations to improve processing when using
similar z guesses.

Signed-off-by: Kevin O'Connor <[email protected]>
Continue to run least squares evaluations until the uncertainty range
is within 50 nanometers (reduced from 250nm).

Signed-off-by: Kevin O'Connor <[email protected]>
Implement some basic checks on the tap results and report an error if
the results look obviously incorrect.

Signed-off-by: Kevin O'Connor <[email protected]>
There have been some reports of the sanity check throwing an error
when the bed is depressed just under 50um.  For now, increase the
valid depress range to avoid unnecessary errors.

Signed-off-by: Kevin O'Connor <[email protected]>
Have the callers convert convert the trigger_value from a float to an
integer (if necessary).  This is in preparation for implementing
rounding in to_fixed_32().

Signed-off-by: Kevin O'Connor <[email protected]>
Round the SOS filter coefficients to the nearest integer (instead of
truncating).

Signed-off-by: Kevin O'Connor <[email protected]>
The coeff_frac_bits and scale_frac_bits can be automatically
calculated, so there's no need for the callers to specify this
information.

Signed-off-by: Kevin O'Connor <[email protected]>
…lter

Scale the internal mcu values to units of milli-hz to reduce the
chance of roundoff error in the internal calculations.

Signed-off-by: Kevin O'Connor <[email protected]>
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 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.