Commit Graph

1424 Commits

Author SHA1 Message Date
Arksine d85b395a9c bed_mesh: fix error reporting
Fix invalid string formatting in the parse_pair() helper.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-10-22 22:09:33 -04:00
Geoff Shannon 789659599c adc_temperature: add support for AD849x thermocouple amplifiers (#1994)
Signed-off-by: Geoff Shannon <geoffpshannon@gmail.com>
2019-10-10 20:11:34 -04:00
Kevin O'Connor 6d7d079bab tuning_tower: Only cancel tuning tower test if extrude at notably lower z
Some print start scripts may extrude at a position slightly higher
than the first z layer height.  Tweak the backwards z test to reduce
the chance of the tuning test ending prematurely.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-04 20:10:12 -04:00
Master92 2b553a8108 safe_z_home: Fix unintended change in default behavior
PR #1970 introduced a new parameter, controlling the default behavior of the safe_z_home-module. To avoid unexpected changes, the default of the move_to_previous is now defaulted to False.

Signed-off-by: Nils Friedchen <Nils.Friedchen@googlemail.com>
2019-10-03 18:06:08 -04:00
Jason S. McMullan 7605244fa0 safe_z_home: Fix issue where 'home_xy_position: 0,0' did not position at 0,0
If '[stepper_x]' and/or '[stepper_y]' have a 'position_min' that is
non-zero, and '[safe_z_home] home_xy_position' is '0,0'; then the 'G28'
command will _not_ move to '0,0'; but stay at 'position_min' during the
Z endstop test.

This fix corrects this issue.

Signed-off-by: Jason S. McMullan <jason.mcmullan@gmail.com>
2019-10-03 18:05:21 -04:00
Nicholas Seckar 004edb9613 fan: Add off_below option for fans (#1897)
Below off_below the fan will be turned off. When configured correctly this
can prevent stalling, which may lead to overheating and failed fans. To
simplify calibration and use of this setting, off_below is applied in the
input duty cycle domain, prior to any scaling due to e.g. max_power.

Signed-off-by: Nicholas Seckar <nseckar@gmail.com>
2019-10-03 17:59:03 -04:00
Kevin O'Connor 698159921f tuning_tower: Tool for tuning parameters based on print Z height
This adds a testing tool that can run a command on each Z layer of a
print.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-01 14:46:24 -04:00
Julien Lirochon 0c247e55e6 probe: Add range to probe accuracy results (#2015)
Signed-off-by: Julien Lirochon <julien@lirochon.net>
2019-09-29 16:56:46 -04:00
Kevin O'Connor 9fcd3e75cd toolhead: Fix velocity jumps in accel_to_decel lookahead processing
When reducing the maximum speed due to the max_accel_to_decel setting,
move velocity limits must still be propagated.  Otherwise, the
trapezoid move planner may produce moves with velocity jumps.

Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-26 11:10:36 -04:00
Petri Honkala f8f0c3f142 z-tilt: Unresolved symbol fixed
Signed-off-by: Petri Honkala <cruwaller@gmail.com>
2019-09-24 12:17:03 -04:00
Piotr Usewicz a92bdf1d54 gcode_arcs: Use is operator for Null comparison (#1989)
Signed-off-by: Piotr Usewicz <piotr@layer22.com>
2019-09-23 16:49:52 -04:00
Piotr Usewicz 6b2b8f31ee gcode_arcs: Remove unused variables (#1988)
Signed-off-by: Piotr Usewicz <piotr@layer22.com>
2019-09-23 16:49:17 -04:00
achmed20 fce98c5519 gcode_arcs: use z-height defined in f2/3 code, if present
Signed-off-by: Aleksej Vasiljkovic <achmed21@gmail.com>
2019-09-18 11:57:16 -04:00
Kevin O'Connor 8c69e1bcfe gcode: Allow M105 to produce output if called from a macro
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-18 09:58:16 -04:00
Master92 3a37d4a208 safe_z_home: Hop only if necessary and add option to move xy back
Once a hop is performed, it will only be re-issued if the z-axis has been
moved in the meantime. Usually it is only moved by a z-homing so doing so
will cause safe_z_home to do the hop on the next homing action.

When z-axis is homed, x and y positions are known. When setting this
boolean option, these are set back to their last positions.

Whenever a hop is specified it is re-issued after the Z axis has been
homed. This is especially necessary when a pressure-based probe is used.
Also, the module decides if a hop is necessary, based on either a known
Z position or a flag that is set whenever the motors are disabled.

Signed-off-by: Nils Friedchen <Nils.Friedchen@googlemail.com>
2019-09-18 09:37:33 -04:00
John Jardine 020ca5ac2c samd_sercom: fix pin enumeration error when mcu is specified
Previously, when a sercom pin specified the mcu (myname:PIN), it would result in a pin enumeration error.

Signed-off-by: John Jardine <john@gprime.net>
2019-09-17 13:28:57 -04:00
Master92 fd2f17f847 controller_fan: Replace else followed by single if with elif
Signed-off-by: Nils Friedchen <Nils.Friedchen@googlemail.com>
2019-09-17 11:52:03 -04:00
Master92 4e09cacece controller_fan: Use keyword arguments to improve readability
Signed-off-by: Nils Friedchen <Nils.Friedchen@googlemail.com>
2019-09-17 11:52:03 -04:00
Master92 4fab93a8b0 controller_fan: Use snake-case for all variables and function-names
Signed-off-by: Nils Friedchen <Nils.Friedchen@googlemail.com>
2019-09-17 11:52:03 -04:00
Master92 6333dc2069 controller_fan: Use _ to declare discarded return value
Signed-off-by: Nils Friedchen <Nils.Friedchen@googlemail.com>
2019-09-17 11:52:03 -04:00
Master92 6250157397 controller_fan: Declare instance-attribute in __init__
Signed-off-by: Nils Friedchen <Nils.Friedchen@googlemail.com>
2019-09-17 11:52:03 -04:00
Kevin O'Connor 43103929e3 temperature_fan: Allow min_speed to be set to zero
Reported by @meteyou.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-14 15:35:09 -04:00
Kevin O'Connor 63311b2348 bltouch: Improve handling of low pin_move_time configuration
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-14 15:16:26 -04:00
Aleksej Vasiljkovic 7d8c70363a gcode_arcs: Add support for G2/G3 commands
R Still missing, also might be somewhat dirty since code is converted
into G1 commands.

Signed-off-by: Aleksej Vasiljkovic <achmed21@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-13 11:57:54 -04:00
Arksine 49779f13a2 filament_switch_sensor: Add a delay between dispatch of pause and execution of pause gcode
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-09-08 20:42:43 -04:00
Julien Lirochon 12feb6d7fb configfile: Fix the exception raised when an included file is missing (#1931)
Signed-off-by: Julien Lirochon <julien@lirochon.net>
2019-09-01 18:28:18 -04:00
Kevin O'Connor 05edd556c3 toolhead: Fix homing moves not apply kinematic acceleration limits
During a "drip feed" move, both the move's maximum speed and maximum
acceleration may be limited by the kinematics.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-01 18:21:05 -04:00
Kevin O'Connor 296ab7d402 klippy: Warn if starting klippy with logging disabled
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-01 18:09:20 -04:00
Kevin O'Connor 1b454c0943 mcu: Prevent "math domain errors" in stats calculation
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-30 13:57:07 -04:00
Kevin O'Connor a67451fa36 console: Update for PinResolver changes
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-19 23:52:02 -04:00
Kevin O'Connor b4280fdfe0 board_pins: Improve config error checking
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-19 21:58:11 -04:00
Kevin O'Connor bfbcb90751 board_pins: Add a new "extras" module to support per-board pin aliases
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-19 12:57:59 -04:00
Kevin O'Connor 395429be14 pins: Move reserved pin handling into PinResolver class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-19 12:57:59 -04:00
Kevin O'Connor a482ddf582 tmc2209: Add support for sensorless homing
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-19 12:05:09 -04:00
Kevin O'Connor 96fdb6ef36 uc1701: Add support for a reset line on SSD1306 displays
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-17 22:14:02 -04:00
Kevin O'Connor 05bb5484b4 bus: Add MCU_bus_digital_out helper class
Add a helper class for tracking gpio outputs that are synchronized to
bus updates on a particular command queue.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-17 22:14:02 -04:00
Kevin O'Connor a3980cebcc neopixel: Add support for WS2811 RGB pixel color order
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-09 20:58:49 -04:00
Florian Heilmann 3d38211b8a extra: Add Safe Z home extra
Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2019-08-09 20:49:17 -04:00
Florian Heilmann f958542ebb kinematics: Add get_status() method to kinematics
Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2019-08-09 20:49:17 -04:00
Kevin O'Connor 8c5fc1688a pins: Add arduino aliases for Adafruit Grand Central board
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-09 20:15:40 -04:00
Kevin O'Connor f6d1ab2ea2 neopixel: Rework timing so that it works on AVR micro-controllers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-07 15:37:05 -04:00
Kevin O'Connor 9445e1d555 dotstar: Allow any number of chips to be daisy chained
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-06 22:49:05 -04:00
Kevin O'Connor 115b888106 neopixel: Use low priority for LED updates
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-06 22:25:26 -04:00
Kevin O'Connor 4c09d8bf02 dotstar: Initial support for "dotstar" LEDs
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-06 19:44:32 -04:00
Kevin O'Connor c2a08962b7 spicmds: Rework spi config commands
Rework the spi_config commands so that bus configuration and shutdown
message configuration is done separately from the main "config_spi"
command.  This makes the spi configuration more flexible.  It's now
possible to use software spi without a CS pin.  It's now possible to
define multiple SPI messages to send on a shutdown event.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-06 18:56:53 -04:00
Kevin O'Connor c356e8362d tmc_uart: Make sure address is at least 0
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-31 13:13:27 -04:00
Kevin O'Connor a730aec8bc tmc_uart: Add support for configuring the uart address on tmc2209 chips
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-31 13:02:27 -04:00
fess 79cec9ba5c menu: use MOVE=1 for offset_z menu
use SET_GCODE_OFFSET's MOVE=1 parameter in the z offset menu.
Less confusing for people who think nothing happened.

Signed-off-by: John "Fess" Fessenden <fess@fess.org>
2019-07-31 11:17:31 -04:00
Kevin O'Connor a878831d5e mcp4728: Update to better match printrbot revf requirements
Reported by @Grumps49.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-26 11:02:56 -04:00
Kevin O'Connor 46041f5411 neopixel: Add support for daisy-chained chips
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-23 21:59:38 -04:00
Kevin O'Connor abf3fa4b71 neopixel: Add support for setting a default color at startup
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-23 21:59:38 -04:00
Kevin O'Connor 1fcfff2ac6 tmc_uart: Remove references to the TMC2208 in the generic UART code
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-21 09:39:07 -04:00
Kevin O'Connor bf23302918 toolhead: No need to build entire look-ahead queue before homing
It's not necessary to fully build up the look-ahead queue prior to
starting a "drip move" homing operation.  Instead, allow the
look-ahead queue to flush normally.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-18 10:50:04 -04:00
Kevin O'Connor e3c5638147 neopixel: Warn that the neopixel isn't currently supported on AVR
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-17 16:54:47 -04:00
Kevin O'Connor d5cc2a7b7b neopixel: Improve timing of gpio bit-banging
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-17 16:36:28 -04:00
Kevin O'Connor be2d0abbab neopixel: Optimize the update loop
Optimize the transmit code so it can run on some slower ARM cpus.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-12 23:39:00 -04:00
Kevin O'Connor b7bc96c3b2 neopixel: Add initial support for "neopixel" leds
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-12 21:44:01 -04:00
Kevin O'Connor 977d0cf711 toolhead: Delay calculating homing print_time until ready to move
If the homing move is exceptionally long, it could take a long time
for the host to process the look-ahead queue.  Delay the print_time
calculation until moves are ready to be sent.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-12 13:52:33 -04:00
Kevin O'Connor bc78bc4864 replicape: Try to detect shift register spi on spidev2.1
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-12 11:39:14 -04:00
Kevin O'Connor 28aa2f507a endstop: Rename mcu end_stop commands to endstop
Rename the commands.

The main reason for this change is to force a micro-controller code
updated (due to important bugfix in 7fefe52d).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-12 08:10:53 -04:00
Kevin O'Connor 0343d0c73a firmware_retract: Remove z_hop support
The current z_hop support did not work correctly with common slicers
that change Z height between retract and unretract, and it did not
work correctly with slicers that issue a retract at the end of a print
and then at the beginning of the next print.

The z_hop support is therefore being removed until these issues can be
fixed.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 19:25:56 -04:00
Kevin O'Connor 364c22fe84 probe: Rework the PROBE_ACCURACY command parameters
Don't default to a Z location of 10, as that could cause damage if the
probe's z_offset is greater than 10.  Instead, use the "retract
distance" method that is used for normal multi-sample probing.

Update the PROBE_ACCURACY command parameter names to use the same
parameter names as the PROBE command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 15:21:09 -04:00
Kevin O'Connor c3fe3d0d2c stepcompress: Remove no longer needed stepcompress_set_homing()
Now that homing is implemented via "drip moves", it is no longer
necessary for the stepcompress code to have special homing logic.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 10:43:20 -04:00
Kevin O'Connor 07e8925e08 toolhead: Remove no longer needed reset_print_time()
Now that homing is implemented via "drip moves", it is no longer
necessary to move the print_time backwards.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 10:43:20 -04:00
Kevin O'Connor dd34768e3a homing: Remove no longer needed homing time delay code
Now that homing is implemented via "drip moves", it is no longer
necessary to round the homing speed and it is no longer necessary to
add a delay for cpu processing time.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 10:43:20 -04:00
Kevin O'Connor 43064d197d homing: Implement homing via new toolhead "drip" movement
Rework the low-level implementation of homing movement.  The existing
mechanism buffers all homing movement into the micro-controller prior
to starting the home.  Replace with a system that buffers all movement
into the host look-ahead buffer and then "drip feed" those moves to
the micro-controllers.  Then clear the host look-ahead buffer when all
endstops trigger.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 10:43:20 -04:00
Kevin O'Connor d6cce8a557 toolhead: Change the code to use more explicit state transitions
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 10:43:20 -04:00
Kevin O'Connor 84be96aeff mcu: Rework home_wait() to use a reactor completion
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 10:43:20 -04:00
Kevin O'Connor 4f6982c4d0 serialhdl: Update SendWithRetry to use reactor completions
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 10:43:20 -04:00
Kevin O'Connor 233da97b19 reactor: Add support for "completions"
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 10:43:20 -04:00
Kevin O'Connor e148dbe52a mcu: Use regular send_with_response() for query_endstop()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 10:43:20 -04:00
Kevin O'Connor a116fa9054 serialhdl: Use register_response() for both registering and unregistering
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 10:43:20 -04:00
Kevin O'Connor b2c778b931 mcu: Integrate query_endstop_wait() into query_endstop()
There is no need to have two separate calls to query an endstop.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 10:43:20 -04:00
Arksine d4d8bf795b filament_switch_sensor: add SET_FILAMENT_SENSOR gcode
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-07-10 09:57:46 -04:00
Arksine 856b22b387 filament_switch_sensor: postfix M400 to script
Finish Moves needs be a hard requirement for the event gcodes, as it eliminates the possiblility of an event firing while the gcode is executing.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-07-10 09:57:46 -04:00
Arksine 893c98ed1b filament_switch_sensor: remove stale _hande_ready call in the BaseSensor
The toolhead attribute is no longer required by the BaseSensor class

Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2019-07-10 09:57:46 -04:00
Arksine 0f1d42466b buttons: initialize mcu buttons based on inverted state
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-07-05 20:01:07 -04:00
Arksine 314b9654c6 delayed_gcode: initial implementation
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2019-07-01 11:09:30 -04:00
Janar Sööt ec34d78d5e gcode_macro: add iterator to status wrapper
It really helps to see a snapshot of available printer variables when building menus and macros. The list of variables always depends on what printer config you have.

Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2019-07-01 10:59:13 -04:00
Arksine 0c379d060f skew_correction: add SKEW_PROFILE gcode
Add profile managment similar to that of bed_mesh.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-06-29 10:58:46 -04:00
Arksine 026752e399 skew_correction: Add SET_SKEW gcode
This moves skew_correction configuration out of printer.cfg.   It is now dynamically set by the SET_SKEW gcode.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-06-29 10:58:46 -04:00
Kevin O'Connor 4df78cd843 tmc: Configure "intpol" field from TMCMicrostepHelper
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-28 16:59:26 -04:00
Kevin O'Connor a2e550d1cd stepper: Add support for providing a list of pins to enable
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-28 16:59:26 -04:00
Kevin O'Connor 7702f0a027 tmc: Add support for virtual enable pins
Add support for enabling the stepper via the communication channel.
This improves support for boards with a shared enable line.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-28 16:59:26 -04:00
Kevin O'Connor 041831f93a tmc_uart: Hold a mutex during MCU_TMC_uart get/set_register()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-28 16:59:26 -04:00
Kevin O'Connor 844dca9c6e tmc2660: Hold a mutex during MCU_TMC2660_SPI get/set_register()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-28 16:59:26 -04:00
Kevin O'Connor 1f3b74d2f7 tmc2130: Hold a mutex during MCU_TMC_SPI get/set_register()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-28 16:59:26 -04:00
Arksine 35a45e2446 pause_resume: add CLEAR_PAUSE gcode
Allow the user to clear the pause state without restoring  position.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-06-28 12:44:49 -04:00
Kevin O'Connor 505e96b7ed klippy: Only set the run_result if it hasn't already been set
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-28 10:21:50 -04:00
Kevin O'Connor e5f74a64ed polar: Add initial support for multiple bed rotations
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-28 10:00:40 -04:00
Arksine b37222e3a1 skew_correction: initial implementation
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-06-26 20:16:35 -04:00
Arksine 2d7f32584f gcode: Add support for stacked transforms
Add method from pull request #1243 to support stacked transforms.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-06-26 20:16:35 -04:00
Kevin O'Connor 9855354c75 tmc_uart: Use print_time=None as default (not print_time=0)
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-25 18:27:59 -04:00
Kevin O'Connor 4aeb7d38a7 sx1509: Minor cleanup - don't default print_time to 0
It's not valid to use a print_time=0, and it isn't actually used in
the sx1509 code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-25 18:19:05 -04:00
Kevin O'Connor 6ec7dee07d tmc: It's not valid to schedule messages with print_time=0
A print_time of zero may translate to a negative clock on a secondary
micro-controller, which would cause an internal error.  Change the
code to pass a real print_time or None if it is not needed.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-25 18:19:05 -04:00
Kevin O'Connor 52b5ca182c tmc: Simplify internal DUMP_TMC interface
Only the tmc2208 driver needs special read register translation logic.
Rework the code so a default implementation is available for all the
other drivers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-25 11:40:15 -04:00
Kevin O'Connor 4fb4a13fd7 endstop_phase: Add tmc2209 and tmc5160 to list of tmc drivers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-23 11:27:18 -04:00
Stephan Oelze ec9fad758a tmc2209: Initial support for tmc2209 stepper driver
Signed-off-by: Stephan Oelze <stephan.oelze@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-23 11:26:20 -04:00
Kevin O'Connor 80194a7e18 endstop_phase: Fix endstop_phase on trinamic drivers that aren't inverted
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-21 22:56:16 -04:00
Kevin O'Connor 0b02d7a1f2 tmc_uart: Support print_time in set_register()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-21 21:47:37 -04:00
Kevin O'Connor 9feb05ce41 mcu: Support minclock in send_with_response() requests
Enhance send_with_response() so that it supports queries with a
minclock.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-21 21:42:20 -04:00
Kevin O'Connor e202a8802b mcu: Move SerialCommand from serialhdl.py to mcu.py
Move the serial command wrapper class from serialhdl.py to mcu.py.
This will allow that class to better support higher level
functionality.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-21 21:42:20 -04:00
Kevin O'Connor cc3666aa78 serialhdl: Introduce SerialReader.send_with_response()
Introduce a main send_with_response() helper function and use it
during identify and the setup of clocksync.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-21 21:42:20 -04:00
Kevin O'Connor d98bbc772c serialhdl: Eventually timeout connect attempt
If the serial connection has not been successful after 2.5 minutes
then report an error.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-21 21:42:20 -04:00
Kevin O'Connor ebb375fee9 serialhdl: Use send_with_response() to query identify data
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-21 18:48:33 -04:00
Kevin O'Connor 461ed4cb80 serialhdl: Add a get_msgparser() method
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-21 18:14:00 -04:00
Kevin O'Connor 647f1ee2e0 serialhdl: Rename register_callback() to register_response()
Rename the method and use that name in the mcu class as well.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-21 18:14:00 -04:00
Alec B. Plumb daadb36cb4 gcode_button: Execute gcode when a button is pressed or released (#1745)
An extra to execute gcode when a hardware button is pressed or released. Uses the jinja2 templating system.

Inspired by pull request #545 from Miguel Moitinho miguel@moitinho.net and pull request #1098 from Paulo Drugos paulodrugos@gmail.com

Signed-off-by: Alec Plumb <alec@etherwalker.com>
2019-06-21 18:06:31 -04:00
Kevin O'Connor 83e6c01ada probe: Allow probe parameters to be specified as g-code parameters
Add PROBE_SPEED, SAMPLES, SAMPLE_RETRACT_DIST, SAMPLES_TOLERANCE,
SAMPLES_TOLERANCE_RETRIES, and SAMPLES_RESULT parameters to the PROBE
command (and to commands that indirectly invoke a probe).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-21 14:44:28 -04:00
Kevin O'Connor c92aca74b5 probe: Add support for samples_tolerance
Add a check on the maximum Z distance between probe samples.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-21 14:06:20 -04:00
Kevin O'Connor f6e9db2d05 toolhead: Just warn if M204 doesn't contain valid S, P, or T
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-21 12:53:47 -04:00
Kevin O'Connor 98915fb1d0 probe: Always return just x,y,z from _probe()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-21 11:04:55 -04:00
Kevin O'Connor 077c6f7e5e reactor: Fix some corner cases with self._next_timer handling
Make sure to update self._next_timer on greenlet start/stop.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-19 21:12:34 -04:00
Kevin O'Connor 0173bb3f71 tmc_uart: Move UART code from tmc2208.py to new file tmc_uart.py
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-18 18:06:05 -04:00
Kevin O'Connor 3f79831485 tmc2208: Make sure each analog mux config is unique
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-18 17:58:20 -04:00
Kevin O'Connor 274857357e tmc: Retry register init during connect
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-18 17:54:02 -04:00
Kevin O'Connor cfdb60ca23 tmc2660: Set SDOFF=0 before accessing DRVCTRL
Make sure to configure DRVCONF with SDOFF=0 prior to writing DRVCTRL
as that field controls access to that register.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-18 15:19:05 -04:00
Kevin O'Connor 587db5c315 tmc2660: Don't allow configuration of DEDGE
Setting DEDGE would just break the code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-18 13:24:54 -04:00
fess 49c36f868b z_tilt: Support retries
Support retrying Z_TILT_ADJUST a configurable number of times
to a configurable tolerance both in the config or as parameters.

- By default keeps original behavior of no retries.
- Adds parameters RETRIES and RETRY_TOLERANCE to QUAD_GANTRY_LEVEL gcode.
- adds config options retries and retry_tolerance to uad_gantry_level]
- issues an error if we are getting worse intead of approaching tolerance
- issues an error if retries were requested but we did not reach the tolerance
in the specified number of retries

the minimum change should  be a single z step for those
probing 2 points for 2 stepper motors and 3 for 3 stepper motors.

at one point it was suggested to use the amount of z adjustment instead of the
range of the probed points as a trigger for retry. I've chosen not to do this.
using z adustment in these cases means the minimum unit of change is related to
the angle created by the probed points  and the distance to stepper motor and
can be more than a couple steps which is rather unintuitive.

for the case when someone is using more probed points than z steppers the
probed points range will have some fixed minimum value that can't be reduced
which is also unintuitive but that case should idealy be the rarer case, and
the user can learn to set a higher tolerance that matches their probing setup.

Signed-off-by: John "Fess" Fessenden <fess@fess.org>
2019-06-18 12:12:25 -04:00
fess bd40690bd1 quad_gantry_level: Support retries
Support retrying QUAD_GANTRY_LEVEL a configurable number of times
to a configurable tolerance both in the config or as parameters.

- By default keeps original behavior of no retries.
- Adds parameters RETRIES and RETRY_TOLERANCE to QUAD_GANTRY_LEVEL gcode.
- adds config options retries and retry_tolerance to `[quad_gantry_level]`
- issues an error if we are getting worse intead of approaching tolerance
- issues an error if retries were requested but we did not reach the tolerance
in the specified number of retries

Signed-off-by: John "Fess" Fessenden <fess@fess.org>
2019-06-18 12:12:25 -04:00
fess 4681775219 z_tilt: Add RetryHelper
add RetryHelper class in prep for implementing retries for both z_tilt
and quad_gantry_level

Signed-off-by: John "Fess" Fessenden <fess@fess.org>
2019-06-18 12:12:25 -04:00
Kevin O'Connor bdf5898891 probe: Allow retries from ProbePointsHelper
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-18 12:12:25 -04:00
Kevin O'Connor 20d0bb8354 config: Update tmc5160 block in example-extras.cfg
List all the configurable parameters in the tmc5160 example block and
use similar wording as the other tmc drivers.

Also, don't allow DEDGE to be configured as it would just break the
current code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-18 09:41:27 -04:00
Kevin O'Connor 494a5b732d quad_gantry_level: Use new ZAdjustHelper
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-17 11:17:47 -04:00
Kevin O'Connor 20851ab3e9 z_tilt: Separate z adjustment code to new ZAdjustHelper class
Introduce a new class to perform the low-level Z stepper adjustments.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-17 11:17:47 -04:00
Kevin O'Connor f6864da58b tmc2208: Add support for using an analog mux to access TMC uarts
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-12 22:14:41 -04:00
Kevin O'Connor 88fe2787a9 tmc2208: Separate low-level bit-banging code from MCU_TMC_uart class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-12 22:06:54 -04:00
Kevin O'Connor 47901e57c9 verify_heater: Don't raise a heater error if the heater is off
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-12 22:06:54 -04:00
Kevin O'Connor 82b58e46a7 temperature_fan: Remove executable flag from temperature_fan.py
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:30:48 -04:00
Kevin O'Connor b21a22d744 tmc: Move common TMC stepper driver code to new file tmc.py
Move common code from tmc2130.py to tmc.py.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:29:35 -04:00
Kevin O'Connor 10c0da9a6c tmc2130: Rework remaining config helpers to use mcu_tmc interface
Introduce TMCMicrostepHelper and TMCStealthchopHelper helper code that
uses the mcu_tmc interface.  Update the callers to use these new
helpers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor 7f34264101 tmc2130: Move TMC virtual endstop code into a new TMCEndstopHelper class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor 35edc4d63c tmc2660: Move current setting code to its own helper class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor b2729f38a6 tmc5160: Move current setting code to its own helper class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor 110bbb3843 tmc2130: Move current setting code to its own helper class
Concentrate the current setting code into its own TMCCurrentHelper
class.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor 6abe132cf0 tmc2130: Transmit register initialization during connect callback
Perform the register initialization directly from TMCCommandHelper and
perform it during the "connect" phase.  This unifies the register
setup for the TMC2130, TMC2208, TMC2660, and TMC5160.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor 6947548c17 tmc2660: Use TMCCommandHelper
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor c76428bd01 tmc5160: Use TMCCommandHelper
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor 1bdd51d575 tmc2208: Use TMCCommandHelper
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor 395c845ca1 tmc2130: Factor out g-code command handlers to their own class
Create a TMCCommandHelper class that implements INIT_TMC,
SET_TMC_FIELD, and DUMP_TMC.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor 6a7ddb6bf0 tmc2208: Move get/set_register functions to new MCU_TMC_uart class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor ab710cd4de tmc2660: Move get/set_register functions to new MCU_TMC2660_SPI class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor a122d113e8 tmc5160: Use tmc2130.MCU_TMC_SPI for low-level get/set_register access
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor 3becc6cf54 tmc2130: Move low-level get/set_register functions to new MCU_TMC_SPI class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor 9ce98fd769 tmc2660: Define get_register() method
Use a get_register() method instead of get_response().  This makes the
tmc2660 class more similar to other TMC drivers.  It also enables
DUMP_TMC to dump all the readable content.

Also, use the tmc2130.get_config_microsteps() helper.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor 2b0251ee99 tmc5160: Rename registers to Registers and fields to Fields
Minor change to the code so that it is more similar to the other tmc
drivers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor 5de9f74525 test: Add test cases for tmc drivers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor 97840f9851 serialhdl: Use reactor mutex in send_with_response()
Reduce the delay in send_with_response() by introducing a reactor
mutex to wake the main thread when the response is obtained.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-09 19:12:24 -04:00
Kevin O'Connor 30d2ae8f9f gcode: Eliminate the process_batch() method
Allow the callers of process_batch() to directly inspect the gcode
mutex.  Those callers can then directly invoke run_script().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-09 18:44:44 -04:00
Kevin O'Connor 962f7b98bd gcode: Convert input handling to use a reactor mutex
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-09 18:44:44 -04:00