Commit Graph

2038 Commits

Author SHA1 Message Date
Kevin O'Connor 730ef9d347 serialqueue: Improve timing of sleep durations
If any callback is invoked from the pollreactor then obtain a new
eventtime before calculating a sleep duration.  This improves the
timing of events.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-02-12 13:57:51 -05:00
Kevin O'Connor 1049282eec chelper: Fix check for failed code build
Commit 73b78af6 inadvertently removed the check for a successful gcc
compilation.  Add the check back in.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-02-07 20:48:21 -05:00
Alan Lord 7d4df65920
ds18b20: new module for 1-wire temperature sensor (#3462)
Initial commit of code to support 1-wire (Dallas) sensors such
as the DS18B20. Requires Linux kernel drivers to create a file
in /sysfs which is read by this module, and temperature
typically returned to a temperature_fan.

Signed-off-by: Alan Lord <alanslists@gmail.com>
Signed-off-by: Josh Headapohl <joshhead@gmail.com>
2021-02-02 14:34:56 -05:00
Lane Roberts 19397a0a2b
temperature_fan: Add MAX_SPEED and MIN_SPEED to SET_TEMPERATURE_FAN_TARGET command (#3873)
Allows setting min_speed and max_speed at runtime, rather than updating the config and restarting.

Signed-off-by Lane Roberts <nolatari@vandarin.net>
2021-02-02 14:30:04 -05:00
Dmitry Butyugin d136b1e41a resonance_tester: Increase test max_accel to 10K and max_freq to 133 Hz
Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
2021-02-02 14:13:24 -05:00
Dmitry Butyugin a8b282d67a resonance_tester: Disable input shaping for resonance testing
Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
2021-02-02 14:13:24 -05:00
Dmitry Butyugin 0fb2449be0 adxl345: Add accelerometer chip name to the raw data file name
Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
2021-02-02 14:13:24 -05:00
Kevin O'Connor 6a3f4c7ae6 serialqueue: Improve checking of out-of-order messages
Consider any message block that acks a message never sent as an
out-of-order block and discard it.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-02-01 19:16:23 -05:00
Kevin O'Connor 6e79152f47 htu21d: Implement support for min_temp/max_temp checks
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-02-01 11:30:27 -05:00
Kevin O'Connor a15952770b bme280: Implement support for min_temp/max_temp checks
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-02-01 11:27:16 -05:00
Kevin O'Connor 74244ab0eb spi_temperature: Improve handling of min_temp/max_temp overflows
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-02-01 10:37:19 -05:00
Kevin O'Connor 333f8c210f lm75: Implement support for min_temp/max_temp checks
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-02-01 10:37:19 -05:00
Kevin O'Connor 7775e0ed54 lm75: Use getfloat() for reading the lm75_report_time parameter
Reported by @theopensourcer.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-02-01 10:26:14 -05:00
Thomas Kroll 60e4cddf36 hd44780: Add hd44780 protocol init config
LDO OLED needs a different init string.

Fixes: #3722
Signed-off-by: Thomas Kroll <t.kroll@outlook.com>
2021-01-31 19:35:40 -05:00
Kevin O'Connor 5d960aef37 htu21d: Fix time reporting of temperature measurements
The temperature callback takes a "print time" not a "system time".

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-01-24 15:38:16 -05:00
Kevin O'Connor 8de86ad51f rpi_temperature: Fix time reporting of temperature measurements
The temperature callback takes a "print time" not a "system time".

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-01-24 15:37:37 -05:00
Kevin O'Connor bded15b743 temperature_mcu: Improve handling when in debug output mode
Call mcu_adc.setup_minmax() even in debug output mode so that the
debugging output contains a more accurate configuration.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-01-24 15:28:16 -05:00
Kevin O'Connor 04179f3eae bme280: Disable bme280 when using debug output
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-01-24 15:19:43 -05:00
Kevin O'Connor c3e3b2280a rpi_temperature: Fix missing get_report_time_delta() callback
Reported by @ronald5555.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-01-24 14:00:41 -05:00
Kevin O'Connor cf8d5a6606 rpi_temperature: Disable rpi_temperature when using debug output
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-01-24 13:59:09 -05:00
Kevin O'Connor 29831a2f69 rpi_temperature: Minor formatting changes
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-01-24 13:58:54 -05:00
Kevin O'Connor db86a4edcb temperature_mcu: Disable the temperature_mcu when using debug output
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-01-24 13:56:57 -05:00
Chip b9899a23a3
menu: Update menu.cfg sd_card menu enable condition (#3826)
Change SD card enable condition and add Cancel printing option.

Signed-off-by: John Smith <login721@gmail.com>
2021-01-24 10:35:05 -05:00
Pascal P 1e2eb9a4de
hall_filament_width_sensor: Fix race condition (#3790)
Fix race condition of filament width sensor
Added fix to similar code of TSL1401CL filament width sensor

Signed-off-by: Pascal Pieper <accounts@pascalpieper.de>
2021-01-22 13:41:34 -05:00
Kevin O'Connor 8cc1d84180 configfile: Add printer.configfile.settings command template parameter
Make available the parsed value (or default value) for config options
to command templates and to the api server.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-01-20 16:25:25 -05:00
Kevin O'Connor 023a985bfc gcode_macro: Use deepcopy() on get_status() results
If a get_status() method returns a mutable object (such as a list or
dict) then it would be possible for a gcode command template to
incorrectly alter the program's internal state.  Perform a deepcopy()
operation on all get_status() return results to avoid that.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-01-20 16:25:25 -05:00
Kevin O'Connor 8a6619d18e mcu: Add a get_status() callback with micro-controller info and stats
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-01-19 23:12:41 -05:00
Kevin O'Connor 611b76369f winch: Improve python3 compatibility
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-01-17 22:54:16 -05:00
Kevin O'Connor 0e9cb2abac save_variables: Import ConfigParser as configparser for better Python3 support
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-01-17 22:46:04 -05:00
Alex Zellner dac0fba50d
menu: Update menu.cfg (#3778)
Update min/max in move menu to printer variables.

Signed-off-by: Alex Zellner <alexander.zellner@googlemail.com>
2021-01-17 22:39:54 -05:00
Maël Kerbiriou 9278f56e36
webhooks: Fix use of deprecated Exception.message attribute (#3781)
Since Python 2.6, the BaseException.message attribute is deprecated (PEP-352[1])
in favor of e.args[0] or str(e). This commit replaces e.message with str(e).

[1] https://www.python.org/dev/peps/pep-0352/

Signed-off-by: Maël Kerbiriou <m431.kerbiriou@gmail.com>
2021-01-17 22:37:41 -05:00
Kevin O'Connor c57352a336 homing: Fix references to CommandError()
Commit ea85d419 moved CommandError from homing.py to gcode.py, but
failed to fix the references to CommandError within homing.py.  Fix
that.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-01-11 10:01:14 -05:00
Kevin O'Connor 8260a3a0c3 homing: Make homing.py an "extras" module
Move klippy/homing.py to klippy/extras/homing.py and convert the code
to an "extras" modules.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-01-08 14:01:34 -05:00
Kevin O'Connor ea85d419de gcode: Move definition of CommandError and Coord from homing.py to gcode.py
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-01-08 12:07:45 -05:00
Kevin O'Connor c8434ec54b kinematics: Calculate axis_minimum/axis_maximum in advance
Calculate the get_status() axis_minimum and axis_maximum fields in
advance so that they don't need to be calculated on each get_status()
call.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2021-01-08 11:52:28 -05:00
Janar Sööt e68cf08d15 kinematics: report all axis limits (min/max)
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2020-12-28 10:19:57 -05:00
Justin Schuh a5ebe5825a
heaters: Make MINIMUM optional for TEMPERATURE_WAIT command (#3674)
Signed-off-by: Justin Schuh <code@justinschuh.com>
2020-12-24 11:34:26 -05:00
Justin Schuh 1a9218532b heaters: Add MAXIMUM option to TEMPERATURE_WAIT command
Signed-off-by: Justin Schuh <code@justinschuh.com>
2020-12-23 18:16:46 -05:00
Kevin O'Connor 16963a8e1a configfile: Improve error message when a required option is missing
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-22 20:07:39 -05:00
Kevin O'Connor ca8e6ad89b configfile: Minor line wrapping changes
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-22 20:06:15 -05:00
Dmitry Butyugin 1b1a97e8bd shaper_calibrate: Choose input shapers accounting smoothing
Improved algorithm to choose the 'optimal' shaper frequency taking
shaper smoothing into account. This may choose a frequency with
slightly more vibrations but less smoothing. Also allow users to
limit the maximum input shaper smoothing.

Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
2020-12-22 18:37:41 -05:00
Kevin O'Connor a637c2f110 heaters: Fix TEMPERATURE_WAIT command with extruder and heater_bed
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-22 15:22:13 -05:00
Kevin O'Connor f84a570dde temperature_mcu: Fix slope on stm32f070
The stm32f070 has a negative temperature slope.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-19 11:19:44 -05:00
Kevin O'Connor e0395c69aa temperature_mcu: Fix slope on stm32f1
The stm32f103 has a negative temperature slope.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-19 10:38:50 -05:00
Kevin O'Connor 96eba9f2df endstop_phase: Obtain phases directly from stepper microsteps config
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-18 10:30:32 -05:00
Kevin O'Connor 7dcc778b6c stepper: Calculate step_distance from rotation_distance
Add support for automatically calculating the internal step_distance
from new config parameters - rotation_distance, microsteps,
full_steps_per_rotation, and gear_ratio.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-18 10:30:32 -05:00
Kevin O'Connor e786748f18 heaters: Always register heater pin as a pwm pin
There's no need to sometimes register the pin as a 'digital_out' pin
instead of as a 'pwm' pin.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-15 12:21:04 -05:00
Stefan Dej 77add95675
heaters: add last pwm value to heater.get_status (#3621)
Signed-off-by: Stefan Dej <meteyou@gmail.com>
2020-12-13 20:08:16 -05:00
Kevin O'Connor 0923450286 tmc: Use configfile note_valid=False when inspecting stepper step_distance
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-13 10:42:25 -05:00
Kevin O'Connor 14fd40e3f9 safe_z_home: Use configfile note_valid=False when inspecting z position_max
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-13 10:42:25 -05:00
Kevin O'Connor b25520795d probe: Use configfile note_valid=False when inspecting z position_min
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-13 10:42:25 -05:00
Kevin O'Connor 89183edbda manual_probe: Use configfile note_valid=False when inspecting Z position_endstop
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-13 10:41:40 -05:00
Kevin O'Connor 65a49d17dd hd44780: Make the 4-bit init sequence more robust
The previous init sequence relied on the display ignoring commands if
they are sent faster than 40us.  Some displays may not have this
limit.

Rework the init to make it more robust to command transmission times.
The new init should still transition the display into 4-bit mode even
if the display processes commands faster than 40us.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-12 10:07:53 -05:00
Kevin O'Connor f3c5be0f00 gpiocmds: Merge digital output and soft pwm code
The digital output commands implement a subset of the software pwm
commands.  Change the host code to just use the software pwm commands
and simplify the micro-controller code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-10 12:06:26 -05:00
Kevin O'Connor a1baefc2c2 temperature_mcu: Add enhanced support for monitoring mcu temperature
Add a "temperature_mcu" tool that can monitor builtin micro-controller
temperature sensors.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-10 02:39:06 -05:00
Kevin O'Connor e83801daab heaters: Add a TEMPERATURE_WAIT command
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-07 09:57:13 -05:00
Kevin O'Connor c4a37756ea temperature_sensor: Report temperature in stats
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-06 21:55:26 -05:00
Kevin O'Connor 9e293be5e0 pca9685: Use move queue for pwm updates
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-04 16:10:13 -05:00
Kevin O'Connor 19a96346a8 gpiocmds: Use move queue for software pwm
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-04 16:10:13 -05:00
Pascal Pieper 9cdf9bb6ec gpiocmds: Use move queue for digital output pins
Signed-off-by: Pascal Pieper <accounts@pascalpieper.de>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-04 16:10:13 -05:00
Pascal Pieper e8ec1801ff pwmcmds: Use move queue for hard PWM
Signed-off-by: Pascal Pieper <accounts@pascalpieper.de>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-04 16:10:13 -05:00
Pascal Pieper 99fe290753 mcu: Support reserving move queue slots
Signed-off-by: Pascal Pieper <accounts@pascalpieper.de>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-04 16:10:13 -05:00
Kevin O'Connor 086f0fafde gpiocmds: Send soft pwm cycle_time separately from schedule_soft_pwm_out
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-04 16:10:13 -05:00
Kevin O'Connor 14952ccef5 docs: Add links to default display.cfg and menu.cfg in Config_Reference.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-03 18:11:29 -05:00
Kevin O'Connor 23f547169c rpi_temperature: Don't read min_temp/max_temp directly from config
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-03 12:37:56 -05:00
Al b911db4c0d
rpi_temperature: New module to monitor RPi temperature (#3587)
Module to monitor RPi cpu temperature

Signed-off-by: Al Crate <aleph@al3ph.org>
2020-12-03 12:35:37 -05:00
Kevin O'Connor d7053f6e71 save_variables: Support saving variables to a disk file
Signed-off-by: Dushyant Ahuja dusht.ahuja@gmail.com
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-03 12:19:47 -05:00
Janar Sööt 91de1560a7
menu: modifications (#3262)
- remove lot of helper methods
- differentiate class instantiate from config or directly
- don't use 'enable' template rendering when static value is used.
- new element 'disabled'
- other internal adjustments

Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2020-12-03 10:46:55 -05:00
Kevin O'Connor 1f4c52e7db serialhdl: Improve Python3 compatibility
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-01 12:40:13 -05:00
Kevin O'Connor a4f7ad9ffc heater_fan: Fix typo causing excessive cpu usage
Commit error introduced in a7e90504 and f261a468.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-01 12:31:22 -05:00
Kevin O'Connor f261a4688b controller_fan: Improve timing of fan commands
Don't use the reactor eventtime to schedule micro-controller commands
as that time may have low accuracy.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-01 11:51:29 -05:00
Kevin O'Connor a7e9050439 heater_fan: Improve timing of fan commands
Don't use the reactor eventtime to schedule micro-controller commands
as that time may have low accuracy.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-01 11:51:24 -05:00
Kevin O'Connor f90fbb56d2 input_shaper: Simplify input shaper type reporting
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-01 11:36:37 -05:00
Kevin O'Connor 6ead8dd9d9 lm75: Start temperature measurements from "klippy:connect" callback
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-01 11:36:37 -05:00
Kevin O'Connor 52c6ba3bb5 htu21d: Start temperature measurements from "klippy:connect" callback
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-01 11:36:37 -05:00
Kevin O'Connor 69f06054e1 bme280: Start temperature measurements from "klippy:connect" callback
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-01 11:36:37 -05:00
Kevin O'Connor f3fd814ce0 neopixel: Don't wait for responses when in debug mode.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-01 11:36:37 -05:00
Kevin O'Connor 1af28d8a79 webhooks: Improve python3 compatibility
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-12-01 11:07:36 -05:00
Stefan Dej 7266473fec
controller_fan: add get_status (#3566)
Signed-off-by: Stefan Dej <meteyou@gmail.com>
2020-11-23 11:55:14 -05:00
Kevin O'Connor 665ec5e987 spi_temperature: Fix incorrect max31856 spi initialization
Writes to the max31856 chip use "burst mode", so only one address
during the initialization sequence can be sent.  This fixes erroneous
"Cold Junction Fault" errors.

Reported by @NBouquain.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-11-23 09:58:42 -05:00
Martin Hierholzer fcb78e50e5
hd44780: allow to configure line length (#3543)
This allows to use 16x4 displays rather than only 20x4.

Signed-off-by: Martin Hierholzer <hier@beta-centauri.de>
2020-11-20 14:49:38 -05:00
Kevin O'Connor bdd938b578 board_pins: Use an explicit parameter to specify mcu name(s)
Add an 'mcu' option to the board_pins config and use that to specify
the name of the mcu to apply the aliases to.  Support applying the
aliases to multiple mcus.

Add support for any number of options starting with an "aliases_"
prefix.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-11-20 12:00:36 -05:00
Kevin O'Connor 15b5dbaf8f docs: Move config reference information to new Config_Reference.md
Move all the config reference information from files in the config/
directory to a new Config_Reference.md document.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-11-18 20:10:21 -05:00
Arksine 5970227cbd print_stats: exclude time prior to first extrusion from "print_duration"
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-11-13 20:48:15 -05:00
Kevin O'Connor 90d755dc0a output_pin: Don't flush lookahead queue on a SET_PIN command
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-11-13 18:29:41 -05:00
Kevin O'Connor 9e1697786d neopixel: Apply LED updates at time of transmission
Queue updates so that delays between updates are properly applied.
This fixes macros that would blink LEDs by pausing between update
commands.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-11-05 12:57:14 -05:00
Kevin O'Connor 123908ac7a neopixel: Fix neopixel_result message so that it contains an oid
In order for commit 82156170 to work properly, the neopixel_result
message must contain the oid.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-11-05 11:40:34 -05:00
Kevin O'Connor 821561708d neopixel: Fix failure with multiple simultaneous neopixel updates
Make sure to set the oid parameter of mcu.lookup_query_command() so
responses are routed correctly.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-11-04 18:47:36 -05:00
Arksine 8a5e7d8d28 gcode_macro: implement "action_call_remote_method" context action
Users may use this action to call methods registered by a webhooks client from a command template.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-11-04 18:32:30 -05:00
Arksine 108b66efe9 webhooks: Add "register_remote_method" endpoint
This allows clients to register methods that can be called from Klipper.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-11-04 18:32:30 -05:00
Kevin O'Connor ccc8fe2fc5 itersolve: Convert iterative solver to use "secant method"
The previous code calculates each step time via an "exponential
search" followed by a "false position with Illinois algorithm" search.
Replace with a "secant method" with "bounds check" search.  This
simplifies the code, improves the performance, and does a better job
of finding steps near a direction change.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-11-02 12:07:23 -05:00
Kevin O'Connor e0842e0e03 heaters: Add sensors to printer.heaters.available_sensors even if no gcode_id
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-11-01 20:09:16 -05:00
Kevin O'Connor aaf3dc6ac3 serialqueue: Fix registration of serial fd in debug mode
When in debug output mode, make sure to register the fd correctly.
Otherwise, the poll() call will use the 0 fd which could cause random
results.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-30 14:02:12 -04:00
Kevin O'Connor 19b2363c93 klippy: Remove import of unused threading module
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-30 13:02:44 -04:00
Kevin O'Connor 79877acb14 mcu: Add support for setting reqclock in CommandQueryWrapper.send()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-29 12:00:28 -04:00
Kevin O'Connor 5f96f8a29b dotstar: Don't flush the lookahead queue on a SET_LED command
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-29 12:00:28 -04:00
Kevin O'Connor 6133737215 neopixel: Don't flush the lookahead queue on a SET_LED command
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-29 12:00:28 -04:00
Kevin O'Connor 7263077db5 neopixel: Add support for RGBW LEDs
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-29 12:00:25 -04:00
Kevin O'Connor 2bb30265b5 neopixel: Increase the maximum LED chain length
Rework neopixel updates to use an mcu buffer so that more than 18 LEDs
can be in a chain.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-29 11:59:15 -04:00
Kevin O'Connor 56004c0228 mcu: Don't default serial config option to /dev/ttyS0
If the mcu config section is omitted, it leads to confusing error
messages.  Don't default the serial config option to /dev/ttyS0 to
improve the error reporting.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-28 15:35:08 -04:00
Kevin O'Connor c2c79ff98d bltouch: Fix bug causing incorrect position when "stow_on_each_sample=False"
It is only valid to call raise_probe() when the toolhead is not
moving.  Make sure to call sync_print_time() from multi_probe_end() to
ensure that.  This fixes a bug that could cause the Z axis steppers to
lose their position when "stow_on_each_sample=False".

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-24 00:22:58 -04:00
Kevin O'Connor 1b6b7fc58c kin_extruder: Fix numerical stability when using pressure advance
Avoid using the absolute E position when calculating pressure advance
as that position can grow arbitrarily large, which can result in
"numerical stability" problems.  That instability could eventually
lead to internal errors during step compression.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-23 22:59:20 -04:00
Kevin O'Connor f8cb1e30eb heaters: Don't raise an error if PID Ki is set to zero
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-17 20:48:25 -04:00
Dmitry Butyugin f8c4f90c04
resonance_tester: Resonance testing and input shaper auto-calibration (#3381)
Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
2020-10-14 20:08:10 -04:00
Dmitry Butyugin fac4e53e86 toolhead: Fixed reporting of the kinematic limits
Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
2020-10-14 12:42:15 -04:00
Kevin O'Connor 27249dc709 mcu: Increase the time to reset a pwm pin during startup
Some RPi0 users were reporting "timer too close" errors due to pwm pin
resets - increase the time the host has to complete the startup to
avoid this.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-11 11:14:32 -04:00
Kevin O'Connor d317793171 bltouch: Add an extra 200ms delay to the initialization process
On a reset, the mcu.py code may have sent an initialization message to
the bltouch, which needs time to complete.  Add additional time during
the bltouch setup to avoid a race with these two times.  This avoids
some "timer too close" errors that users of fast host machines were
reporting.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-11 11:14:32 -04:00
Kevin O'Connor 930317fa2a thermistor: Add support for the board thermistor on the Einsy Rambo
Add in support for the "TDK NTCG104LH104JT1" thermistor.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-08 15:25:09 -04:00
jhpadjustable 48b30e0f5a
display_status: fix M117 checksum trimming (#3377)
The M117 command parser discards the last character of the message
whenever the M117 command does not begin the line and there is no *xx
checksum, e.g.
  N0 M117 Look at me
causes the banner area of the printer screen to display "Look at m".
This patch only trims the checksum when one is found to trim.

Signed-Off-By: Jonathan Pickard <jhp@adjustablelabs.info>
2020-09-28 10:11:05 -04:00
Eric Callahan a8e3afd64a
configfile: report "save_config_pending" via get_status() (#3372)
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-09-28 00:05:55 -04:00
Kevin O'Connor 4d0d219716 mcu: Fix set_pwm() for hard pwm
Must use self._pwm_max to calculate range for hard pwm updates.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-27 18:09:53 -04:00
Kevin O'Connor 55e20f2c19 mcu: Add support for changing cycle_time in set_pwm()
Signed-off-by: Guy Shapira <gayuha@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-26 20:55:56 -04:00
Guy Shapira 27cefb2b38 gpiocmds: Add soft-pwm frequency modulation support
Signed-off-by: Guy Shapira <gayuha@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-26 20:51:38 -04:00
Kevin O'Connor 04f9f1b44e chelper: Add missing serialqueue_set_receive_window() def to serialqueue.h
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-26 20:15:33 -04:00
Kevin O'Connor 04b822c3aa chelper: Use standard C type definition for pyhelper_logging_callback
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-26 20:15:21 -04:00
Kevin O'Connor 73b78af6b2 chelper: Rework check for building C code
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-26 20:15:10 -04:00
Kevin O'Connor ad0b76bd4b delta_calibrate: Don't error on an invalid kinematic guess
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-17 22:41:13 -04:00
Kevin O'Connor 6bba285f8e gcode: Don't log debugging output for unknown commands if command is blank
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-17 21:46:00 -04:00
Kevin O'Connor 4c14063404 heaters: Disable unused pwm output debugging info
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-17 02:06:20 -04:00
Kevin O'Connor 1af4a4ae9f reactor: Record time of recent gc collection sweeps
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-17 02:06:20 -04:00
Kevin O'Connor cd23c95760 display: Remove circular references from intermediate context object
Explicilty clear the local context object so that it does not require
a gc sweep to free it.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-16 23:53:45 -04:00
Kevin O'Connor cb0a8f2ed9 reactor: Add support for explicit Python garbage collection
Add support for performing Python gc work only from the main reactor
thread and only when it appears the main thread is idle.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-16 23:53:45 -04:00
Kevin O'Connor 73cd8c241c klippy: Call gc.collect() on a "restart" request
Explicitly run the python garbage collector on a restart.  This cleans
up memory from the previous session.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-16 23:53:45 -04:00
Kevin O'Connor 7d83aed410 reactor: Terminate any greenlets on finalize() call
Make sure to terminate any greenlets that are in a pause() state.
This is necessary to ensure the reactor can be deallocated.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-16 23:53:45 -04:00
Kevin O'Connor 760a0f8df5 reactor: Add explicit finalize() method to clean up reactor state
The existence of a __del__() method prevents deallocation on python2
if there are circular references.  Replace the __del__() method with a
new finalize() call and arrange for it to be called when the main
reactor is released.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-16 23:53:45 -04:00
Kevin O'Connor a3fa11ffd4 serialhdl: Setup for serialqueue_free to be automatically called
Use ffi_main.gc() to automatically free the C serialqueue object.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-16 23:53:45 -04:00
Kevin O'Connor 3dc0522870 serialhdl: Don't define a __del__() method
The existence of a __del__() method prevents deallocation on python2
if there are circular references.  Just remove the method as
disconnect() should already be called directly.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-16 23:53:45 -04:00
Kevin O'Connor 9814daa999 mcu: Setup for steppersync_free to be automatically called
Use ffi_main.gc() to automatically free the C steppersync object.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-16 23:53:45 -04:00
Kevin O'Connor 2447025fa6 mcu: Don't define a __del__() method
The existence of a __del__() method prevents deallocation on python2
if there are circular references.  Just remove the method as
disconnect() should already be called directly.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-16 23:53:45 -04:00
Arksine 7ba1a2a749 bed_mesh: add mesh parameters to BED_MESH_CALIBRATE
This allows the generated points to be modified prior to probing the bed.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-09-15 20:36:55 -04:00
Arksine 9e68105b74 probe: add update_probe_points() method to helper
This allows the consumers of the ProbePoints helper to be reconfigured at runtime.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-09-15 20:36:55 -04:00
Arksine 6e77fd27cd bed_mesh: move algorithm verification to its own method
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-09-15 20:36:55 -04:00
Arksine 98931789d8 bed_mesh: move mesh area configuration to _init_mesh_config
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-09-15 20:36:55 -04:00
Kevin O'Connor a92d995727 chelper: Set compiler flags to never use "x387" floating point math
The default on X86 32bit machines is to use 80bit floating point math
(as found in the ancient "387 coprocessor").  This can cause numerical
stability problems.  Set the compiler flags to make sure the newer SSE
math is always used on X86.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-15 17:12:53 -04:00
Paul McGowan 5a2f406fd1
probe: add get_status wrapper to probe for last_query from query_probe command (#3296)
Add get_status wrapper with last_query status for macros  It is sometimes useful to determine the state of the probe from a macro. If the probe is connected to an endstop pin, the results can be obtained via QUERY_ENDSTOPS but if a physical endstop is in use in addition to the probe the probe state cannot be obtained. This change allows one to use QUERY_PROBE  and then access the printer.probe.last_query object to obtain the state.

Signed-off-by: Paul McGowan <mental405@gmail.com>
2020-09-09 23:10:35 -04:00
rjpatawaran c7ea4b89c9
uc1701: Add x_offset (Used to add horizontal offset on SSD1306/SH1106 displays) (#3284)
Signed-off-by: RJ Patawaran <rjpatawaran@me.com>
2020-09-09 23:07:40 -04:00
Kevin O'Connor 1f5848fc1a adc_scaled: Add support for Duet2 Maestro "vref monitoring"
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-09 22:20:54 -04:00
Kevin O'Connor fc85675145 gcode_button: Add support for analog buttons
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-09 14:21:30 -04:00
Kevin O'Connor 13ee6032ae mcu: Use schedule_pwm_out instead of set_pwm_out on a restart
Some mcu implementations don't like it when the pwm pin is configured
twice, so use the normal schedule_pwm_out implementation to update on
a restart.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-09 13:16:02 -04:00
Kevin O'Connor c285f8b6cf klippy: Improve handling of reactor.run() exceptions
Try to invoke a shutdown on an unhandled exception from reactor.run().
If that fails, try to do a clean exit.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-06 12:45:27 -04:00
Kevin O'Connor 3405095f0a adxl345: Add support for adxl345 accelerometer
Add support for taking measurements from an adxl345 accelerometer via
SPI interface.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-05 09:11:04 -04:00
Kevin O'Connor 2b2b610cff uc1701: Improve Python3 compatibility
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-04 22:29:55 -04:00
Kevin O'Connor d69a496b83 hd44780: Improve Python3 compatibility
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-04 22:14:06 -04:00
Kevin O'Connor 166ce06aea buttons: Improve python3 compatibility
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-04 19:33:04 -04:00
Kevin O'Connor 5cce7f4d55 pid_calibrate: Update for improved python3 compatibility
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-04 19:30:18 -04:00
Kevin O'Connor 3bcb6970f5 probe: Make sure z is homed before probing
Warn if the Z axis is not homed before attempting to probe.  This
improves the error message.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-04 15:47:52 -04:00
Kevin O'Connor 08adecd226 homing: Prefer printer.command_error() instead of homing.CommandError()
Update callers to use the printer.command_error reference instead of
directly using homing.CommandError() when raising or catching errors.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-04 12:10:36 -04:00
Kevin O'Connor f6dd97b784 homing: Remove EndstopError
There's no reason to distinguish between an EndstopError and a
CommandError, so just use CommandError.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-04 11:41:57 -04:00
Kevin O'Connor 1f3a160f47 toolhead: Add a move.move_error() helper
Move the EndstopMoveError() code from homing.py to a new method in the
toolhead Move class.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-03 16:22:54 -04:00
Kevin O'Connor d0ed6e5705 input_shaper: Fix typo in SET_INPUT_SHAPER report of shaper_type_y
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-03 14:19:55 -04:00