If reset_last_position() is invoked prior to the printer being
"ready", then the transform may not be properly accounted for. Handle
this by calling reset_last_position() when the printer becomes
"ready".
This should fix some "must home first" errors on extrude-only moves.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Only set resend_interval if a mcu_duration is specified. This fixes a
bug introduced in commit 861144d8.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Times longer than 5 seconds may result in a 32bit ticks overflow in
the micro-controller (for fast micro-controllers).
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Module which bring support for P2 devices running in connected mode. This enables using a Palette2 directly with Klippy without Octoprint, or without Palette2 plugins for Octoprint which are not functional out of the box with Klipper.
Signed-off-by: Clifford Roche <clifford.roche@gmail.com>
The input shaper can only reduce vibrations by 20x. Therefore,
the best-case achievable vibrations level is max(psd) / 20.
Any vibrations below that level can be ignored for the prupose
of input shaper scoring. This allows tuning script to ignore
wide tails of resonances, because it is not helpful to try to
reduce them with input shaping.
Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
HTU21D sensor class lacked the method `get_report_time_delta` invoked
during watermark control loops. This short fix simply adds that method
in, calling the `self.report_time` attribute created during class
construction.
Signed-off-by: Jon Sanders <jonsan@gmail.com>
This adds support for BMP280 and BME680 sensor ICs,
along with fixing calibration data readout for BME280.
Gas sensor readout for the BME680 is just the raw compensated value.
To get actual meaningful values, more research is needed.
Signed-off-by: Michael Kurz <michi.kurz@gmail.com>
The tmc2660 spec has an ambiguous "SG" field that sometimes refers to
the "stallGuard" flag and sometimes refers to the "SG_RESULT" field.
The tmc2130 and tmc5160 have similar fields that are not ambiguous, so
adopt that naming strategy.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Add functionality to support a Filament Motion Sensor for detecting extruder jams as well as runouts. Works by an encoder toggling the switch_pin 0/1 as the filament is pulled through the sensor.
Signed-off-by: Joshua Wherrett <thejoshw.code@gmail.com>
The tmcuart_send command increases cpu usage on the micro-controller.
Should multiple tmcuart_send commands be issued at the same time to a
single AVR micro-controller, it could increase the load to the point
that it introduces a failure. It could also lead to tmcuart_send
transmission errors, which would cause retransmission requests, which
further increase the load.
Track and share mutexes so that only one tmcuart_send command can be
active on a single mcu at a time.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
The tmc2130 (and tmc5160) will respond back with the value written
during the next SPI command. Use this feature to verify that the
value written matches the value sent.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
None of the other TMC driver enable SFILT by default and it seems
enabling SFILT may not be ideal for sensorless homing.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Machines that have no heaters produce an error when the idle timeout occurs. This commit fixes this by checking if there are any heaters to turn off.
Signed-off-by: Florian Heinze <florian@heinze.at>
Introduce a heaters.set_temperature() command and call that from
commands that set a heater temperature. This new function calls
toolhead.register_lookahead_callback() so that the idle_timeout gets
notification that activity has occurred.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Add new fields to Command_Templates.md.
Remove unused self.rpm variable.
Use an explicit get_frequency() method in keeping with Klipper's
convention of not "peeking into member variables".
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This adds new config options for fans: 'tachometer_pin' to specify the
GPIO pin, and 'tachometer_ppr' (default 2) to specify the number of
signal pulses per revolution. The rpm is also exposed by get_status for
command templates and the API server. For fast fans (at least 10000
RPM), the polling interval can be shortened using the
'tachometer_poll_interval' option.
There is a new mcu object for a generic edge counter, which repeatedly
polls a GPIO pin and periodically reports the count to the host.
Signed-off-by: Adrian Keet <arkeet@gmail.com>
With commit 53b10d3a the setup of sensorless homing could occur before
the driver was enabled which would cause the reinitialization of the
driver settings to undo the sensorless homing setup.
Use set_field() when setting the sensorless homing registers so that
it wont conflict with a driver init.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Check the status of all Trinamic stepper motor drivers once a second.
If the driver reports an error then invoke a shutdown. Also log any
serious warnings.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Send the full TMC stepper motor driver initialization sequence every
time the driver is enabled.
Don't raise an error on startup if unable to contact a tmc2208/tmc2209
driver. If the driver is still unavailable when it is enabled then a
shutdown will be issued. This allows users to troubleshoot (and
possibly bring up communication to the driver) prior to enabling the
driver.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>