Commit Graph

950 Commits

Author SHA1 Message Date
Kevin O'Connor 5a6a429bc0 bltouch: Take into account clock skew when calculating command duration
We want the duration of each command to be an exact multiple of
SIGNAL_PERIOD.  The durations might not be exact if the bltouch is on
a secondary mcu.  Account for this in send_cmd().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-21 09:56:08 -05:00
Kevin O'Connor 8a97bc592b bltouch: Add a pin_up_touch_mode_reports_triggered config option
Rework the undocumented test_sensor_pin config option into a
pin_up_touch_mode_reports_triggered option and document it.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-21 09:52:11 -05:00
Kevin O'Connor 56141c21d7 bltouch: Raise probe on startup
Send a pin_up command during startup and try to verify that the probe
actually raises.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-21 09:52:11 -05:00
Kevin O'Connor e36122797b bltouch: Attempt to verify that the probe raises after each probe attempt
Query the bltouch state during the pin_up command to try and verify
that the probe does actually retract.  This may be useful to detect if
the bltouch enters into an "error" state.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-21 09:52:11 -05:00
Kevin O'Connor 99f96f2832 bltouch: Use pin_down mode for probing
The BLTouch is more accurate when probing in "pin_down" mode than
"touch_mode" (at least on some hardware).  Rework the code to use that
mode.

When probing in pin_down mode, the BLTouch can go into an error state
if a pin_up is not sent immediately after a touch signal.  Rework the
pin_up code to reduce the time it takes to transmit the command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-21 09:52:11 -05:00
Kevin O'Connor 04f5baa182 bltouch: Simplify time keeping of scheduled events
Introduce a sync_print_time() method and update send_cmd() to track
the duration of bltouch commands.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-21 09:52:11 -05:00
Kevin O'Connor 26e818d900 bltouch: Verify probe always deploys during a homing operation
Verify that there is always some movement during a probing operation.
This is normally done by the homing.py code (via its verify_movement
check), but that check may not be enabled when z_virtual_endstop is
used.  So, always enable the check in the bltouch.py code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-21 09:52:11 -05:00
Kevin O'Connor 293366d033 thermistor: Breakout thermistor math to its own class
Separate the thermistor math from the heater temperature callback
system.  This may make it easier for debugging.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-20 18:51:00 -05:00
Víctor Martínez 432e6c490a util: Don't crash when calling get_cpu_info on OS X (#1102)
Signed-off-by: Víctor Martínez <knoopx@gmail.com>
2019-01-11 13:00:44 -05:00
Kevin O'Connor f0b7d6d67a klippy: Report the first error generated
Only update the status message with the first error report.
Subsequent errors are often the result of the first error and
reporting the last error can be misleading.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-11 12:41:55 -05:00
Kevin O'Connor 32632c8226 mcu: Fix timing of endstop checking
Make sure to not query the given endstop until after the start of the
requested operation.  This ensures that the operation has started
prior to querying the status of that operation.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-10 12:27:56 -05:00
Kevin O'Connor 0119e42d13 homing: Always start endstop checking before the nominal move start
Make sure the endstop checking is started prior to any movement.  This
helps ensure the verify_movement check is accurate.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-10 12:17:57 -05:00
Master92 a27838bc05 controller_fan: Add support for a fan cooling the controller-board (#1070)
Whenever a stepper driver or a heater becomes active, it is desirable to turn on a fan cooling the associated parts on the controller board. This module implements such a fan that turns on whenever a stepper or specified heater turns on, decelerates to a configurable speed when all of the watched parts turn off, and returns to an off-speed, when a user-defined timeout is met.

Signed-off-by: Nils Friedchen <Nils.Friedchen@googlemail.com>
2019-01-10 12:12:15 -05:00
Kevin O'Connor 2c31fd8313 tmc2208: Check for debugging mode before checking for a retransmit
Allow the tmc2208 code to be run from regression test cases.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-10 09:55:54 -05:00
Kevin O'Connor c0ea0312e5 klippy: Fix error handling during connect phase
Make sure to exit the _connect() method if a connect event handler
raises an error.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-08 13:46:26 -05:00
Kevin O'Connor bf647749dd menu: Don't peek into printer.objects member variable
Use the printer.lookup_objects() method to get the list of available
printer objects.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-08 12:03:46 -05:00
Kevin O'Connor 857e7ed5f1 klippy: Convert printer_state("connect") to an event handler
Convert all users of the printer_state("connect") handler to register
a "klippy:connect" event handler instead.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-08 11:09:55 -05:00
Kevin O'Connor 797367b9f5 klippy: Convert printer_state("ready") to an event handler
Convert all users of the printer_state("ready") handler to register a
"klippy:ready" event handler instead.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-08 10:59:43 -05:00
Kevin O'Connor f4be0ac7be klippy: Convert printer_state("disconnect") to an event handler
Convert all users of the printer_state("disconnect") handler to
register a "klippy:disconnect" event handler instead.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-08 10:59:43 -05:00
Kevin O'Connor fb7fe282c8 klippy: Convert printer_state("shutdown") to an event handler
Convert all users of the printer_state("shutdown") handler to register
a "klippy:shutdown" event handler instead.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-08 10:59:43 -05:00
Petri Honkala b2d5a8e65b z_tilt: unresolved reference fixed
Signed-off-by: Petri Honkala <cruwaller@gmail.com>
2019-01-08 08:44:25 -05:00
Janar Sööt 3a4a1d678e menu: allow empty command gcode if action is present
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2019-01-07 21:39:50 -05:00
Janar Sööt 0cbe851777 menu: enhancements
- changes that make easier to use menu as module UI
- new helper method for delayed callbacks
- method for getting the menu instance from display
- new action for sending menu:action events
- allow_without_selection option for cards

Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2019-01-07 21:39:50 -05:00
Janar Sööt 005cbe157a menu: allow names in card content and simplify define single card decks
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2019-01-07 21:38:53 -05:00
Janar Sööt b9cccc5959 menu: support for click button long press
- long press with timer (button release is not needed anymore)
- initial support for edit mode long press gcode

Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2019-01-07 21:38:45 -05:00
Janar Sööt 265769787f reactor: support for delayed callbacks
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2019-01-07 21:38:36 -05:00
Kevin O'Connor e26d1a3567 i2ccmds: Pass the i2c address as a 7-bit number (0-127)
The sam3 i2c code and the linux code use a 7-bit i2c address, while
the avr, lpc176x, and samd21 i2c code uses an 8-bit address with the
least significant bit always zero.  A similar issue occurred in the
host code (sx1509.py and replicape.py use 7-bit addresses while
uc1701.py and mcp4451.py use 8-bit addresses).

Consistently use 7-bit addresses in all the code.  This breaks
compatibility between host and mcu software, so make a change to the
config_i2c command to force users to synchronize software updates.
This also breaks common Smoothieboard configs, so update the mcp4451
code to validate the i2c_address.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 20:00:44 -05:00
Kevin O'Connor 75ad16ea1a sam3: Add support for sam4s8c chips
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 19:34:31 -05:00
Master92 6ccc0732c1 menu: Fix filament loading and unloading feature (#1082)
As discussed in #1057, the default loading- and unloading procedure does
not behave as expected. Setting the extruder to relative mode fixes this.

Signed-off-by: Nils Friedchen <Nils.Friedchen@googlemail.com>
2019-01-07 10:25:19 -05:00
Paulo Drugos ffbb4198c1 menu: Correction for the resume option appears when the toolhead is not printing (#1077)
Signed-off-by: Paulo Drugos paulodrugos@gmail.com
2019-01-05 19:11:03 -05:00
Kevin O'Connor c3efcd9c8d bus: Set all SPI CS pins high before first config_spi message
If an SPI device is shared among many devices, then all the device's
CS pins should be set high prior to setting up the clk pin.
(Otherwise, there's a chance a device could interpret the clk pin
setup as part of a transmission.)

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-04 22:26:34 -05:00
Kevin O'Connor 24fe606d4d toolhead: Do not apply main printer accel/velocity to extrude only moves
Limit speed and acceleration of extrude only moves to just the
max_extrude_only_velocity and max_extrude_only_accel config settings.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-04 12:47:45 -05:00
Kevin O'Connor a2f0c36e7d toolhead: Don't report an error if request too high in SET_VELOCITY_LIMIT
If a requested value is higher than the configured maximum, then just
limit the value to the configured maximum instead of raising an error.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-04 12:47:40 -05:00
Kevin O'Connor 7fe14f05e6 thermistor: Avoid divide by zero error if min_temp=-273.15
Reported by @TheGuv.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-04 12:47:37 -05:00
Kevin O'Connor c2086796bf mcp4728: Add initial support for the mcp4728 i2c dac chip
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-02 18:17:56 -05:00
Alec B. Plumb 59e9b6562f respond: An extra for sending messages to the printer host. (#1053)
I have made one change to `gcode.py` to support quoted parameter
values.

I have added support for the basic `M118` command (see
https://reprap.org/wiki/G-code#M118:_Echo_message_on_host). I have
also added a `RESPOND` command that takes extended parameters.
`ECHO` might be a better name than `RESPOND` but is already defined
in `gcode.py`.

Signed-off-by: Alec B. Plumb <alec@etherwalker.com>
2019-01-02 17:45:35 -05:00
john-- f6c9150349 heater: take a gcode_id when setting up a heater (#1028)
Allow an arbitrary gcode_id to be supplied during heater setup. This allows future extras to register additional IDs beyond B, and T#.

Signed-off-by: John Jardine <john@gprime.net>
2019-01-02 17:44:02 -05:00
bondus f4d323adbc gcode: Minor change to make M220 command take effect immediately (#1000)
This makes M220 (change print speed) command effect the next move command (G0/G1).
Before it only made a differenc once a G0/G1 command with an F parameter was executed.

Signed-off-by: Pontus Borg <liquidpontus@yahoo.se>
2019-01-02 17:41:35 -05:00
Kevin O'Connor 1be24b8fc7 bus: Don't raise a "duplicate pin" warning on None pins
If "None" is used for an spi cs pin, then it should not reserve "None"
for other uses.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-02 17:37:39 -05:00
Kevin O'Connor 68ebde0d86 display: Fix handling of M117 command if lowercase 'm' is used
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-02 17:34:56 -05:00
Petri Honkala e4e0fec681 tmc2660: error and whitespace fixes
- redundant parentheses removed
	- parameter reference fixed
	- raise error fixed

Signed-off-by: Petri Honkala <cruwaller@gmail.com>
2018-12-27 11:44:41 -05:00
Petri Honkala f99002df4f tmc2208: error raise fixed for rx/tx mcu check
Signed-off-by: Petri Honkala <cruwaller@gmail.com>
2018-12-27 11:44:41 -05:00
Kevin O'Connor c6065e29a6 mcu: Allow set_stepper_kinematics() to set the kinematics back to None
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-24 11:42:13 -05:00
Kevin O'Connor 5dc74f3152 winch: Add experimental support for cable winch kinematics
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-24 11:38:59 -05:00
Kevin O'Connor ec9cb3a1b3 polar: Experimental support for polar kinematics
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-24 11:38:59 -05:00
Kevin O'Connor 7e3e02a17a kinematics: Add a "none" debugging kinematics
Add a dummy kinematics class for development testing.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-24 11:38:59 -05:00
Kevin O'Connor d0f09727a9 bltouch: Issue both a "reset" and a "pin_up" after a successful probe
Not all BLTouch clones raise the pin on a "reset" request, so
explicitly send a "pin_up" command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-16 11:06:46 -05:00
Kevin O'Connor ccc25a03d5 bltouch: Add a config option to disable the bltouch sensor test
It appears some bltouch "clones" do not report the probe as triggered
when put in "touch mode" while the pin is raised.  Add a config option
to allow users to disable the test.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-16 11:06:41 -05:00
Kevin O'Connor ce064e6e2d bltouch: Always make sure to check the endstop at least every 1ms
Some of the bltouch implementations may only respond to a probe event
with a 5ms pulse.  Make sure to check the signal pin at least every
millisecond to ensure no signal is lost.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-16 11:06:27 -05:00
Kevin O'Connor 76b57ba05a bltouch: Fix typo in pin_move_time parsing
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-04 11:43:04 -05:00