Commit graph

1256 commits

Author SHA1 Message Date
Scott Lahteine 834ad14c8d Add quickstop_stepper to update current position with stepper.quick_stop() 2016-07-07 16:37:22 -07:00
Scott Lahteine ecffe92e20 Group EMERGENCY_PARSER commands 2016-07-07 16:37:22 -07:00
AnHardt a129078927 Add an emergency-command parser to MarlinSerial (supporting M108)
Add an emergency-command parser to MarlinSerial's RX interrupt.

The parser tries to find and execute M108,M112,M410 before the commands disappear in the RX-buffer.

To avoid false positives for M117, comments and commands followed by filenames (M23, M28, M30, M32, M33) are filtered.

This enables Marlin to receive and react on the Emergency command at all times - regardless of whether the buffers are full or not. It remains to convince hosts to send the commands. To inform the hosts about the new feature a new entry in the M115-report was made. "`EMERGENCY_CODES:M112,M108,M410;`".

The parser is fast. It only ever needs two switch decisions and one assignment of the new state for every character.

One problem remains. If the host has sent an incomplete line before sending an emergency command the emergency command could be omitted when the parser is in `state_IGNORE`.
In that case the host should send "\ncommand\n"

Also introduces M108 to break the waiting for the heaters in M109, M190 and M303.

Rename `cancel_heatup` to `wait_for_heatup` to better see the purpose.
2016-07-07 16:37:22 -07:00
Scott Lahteine 9f42b1a075 Merge pull request #4235 from thinkyhead/rc_revert_quickhome_test
Fix quick homing, tweak MIN_Z_HEIGHT_FOR_HOMING
2016-07-07 13:37:14 -07:00
Scott Lahteine ad968f2325 Merge pull request #4234 from thinkyhead/rc_better_position_logging
Move XYZ in print_xyz and DEBUG_POS to the front
2016-07-07 12:31:15 -07:00
Scott Lahteine 4036c73cdd Don't raise Z if only homing Z 2016-07-07 12:28:37 -07:00
Scott Lahteine 0b6f8f8244 Apply MIN_Z_HEIGHT_FOR_HOMING raise literally 2016-07-07 12:25:02 -07:00
Scott Lahteine 177ec20bf0 Revert quick-home changes 2016-07-07 12:17:34 -07:00
Scott Lahteine 9c5b462ef2 Move XYZ in print_xyz and DEBUG_POS to the front 2016-07-07 11:42:19 -07:00
Scott Lahteine 4e84c803a3 Merge pull request #4232 from thinkyhead/rc_no_axis_codes_needed
Don't use axis_codes if a literal will do
2016-07-06 20:05:16 -07:00
Scott Lahteine e2f7cb0905 Don't use axis_codes if a literal will do 2016-07-06 18:37:21 -07:00
Scott Lahteine 6559f7359f Fix comment on Z raise for homing, save a few bytes 2016-07-06 16:21:51 -07:00
Scott Lahteine d0b29cabf3 Don't re-home X and Y if you quick homed 2016-07-06 13:46:06 -07:00
Scott Lahteine e0a6b978f5 Don't do_probe_raise with MIN_Z_HEIGHT_FOR_HOMING 2016-07-06 13:46:05 -07:00
Scott Lahteine 7735ec5e7a Merge pull request #4223 from thinkyhead/rc_rename_heatup
Change cancel_heatup to wait_for_heatup
2016-07-06 11:25:44 -07:00
Scott Lahteine 160a2be117 Change cancel_heatup to wait_for_heatup 2016-07-06 09:17:50 -07:00
AnHardt 16c83d203b Make use of the good features of a sled probe for all probes.
Move and extend axis_unhomed test to deploy/stow_z_probe().
Move and extend position store/restore to deploy/stow_z_probe().

Now all kinds of probes can use the 'E' parameter in G29/M48.
Allen key probes can be used now for grid and 3-point levelling.

Deploying the Allen Key probe uses big moves in z direction.
Too dangerous for an unhomed z-axis.
Throw a compile time error when we try to configure an
Allen Key probe homing to z-min and having no other z-min-endstop.
2016-07-06 04:11:04 +02:00
AnHardt 8555816a11 Generalize and simplify 'triggered when stowed test`
The `PROBE_IS_TRIGGERED_WHEN_STOWED_TEST` is able to detect if a probe is
successfully deployed/stowed.
It was part of the Allen Key probes code only.
Now the function is generally available.

Currently this test is compulsory for Allen Key probes to not alter the used behaviour
If you want to add the test for an other type of probe simply add
```
#define PROBE_IS_TRIGGERED_WHEN_STOWED_TEST
```
to your config.
2016-07-06 03:56:17 +02:00
AnHardt 5126cce7fd Move Allen Key probe move scripts to their own functions
There was an hidden extra move after the scripts. This is configurable now.
Added the extra moves to the relevant configs.
2016-07-06 03:46:40 +02:00
AnHardt 7d063c111c Add a optional feedrate parameter to do_blocking_move()
Add a optional feedrate parameter to `do_blocking_move()` and its companions.
2016-07-06 03:46:34 +02:00
Scott Lahteine b114b6a0b3 Save 152 bytes using uint8_t for command indices 2016-07-05 16:29:28 -07:00
Scott Lahteine 0d4ff0c48b Allow the queue to be cleared from within commands 2016-07-05 16:25:20 -07:00
Scott Lahteine c450851401 Merge pull request #4209 from AnHardt/too-high-G28
Make raise for probe deploy relative in homeaxis()
2016-07-05 11:07:42 -07:00
AnHardt f799f18388 MBL typo 2016-07-05 18:19:53 +02:00
AnHardt 8b02e68cb6 Make raise for probe deploy relative in homeaxis()
Make raise for probe deploy relative in homeaxis()
by setting `current_position[axis]` to zero later.
2016-07-05 10:42:33 +02:00
Scott Lahteine e48502866b Merge pull request #3611 from alephobjects/M108_cancel_heatup
Introduce M108 cancel wait for heatup/cooldown of the hotend and bed
2016-07-04 01:19:31 -07:00
Scott Lahteine d70197f514 Merge pull request #4204 from thinkyhead/rc_fix_gcode_t_position
Additional patches for gcode_T position change
2016-07-04 01:16:22 -07:00
Scott Lahteine 869b517589 Merge pull request #4205 from thinkyhead/rc_fixup_unit_references
References to millimeters in code comments need an update
2016-07-04 01:15:34 -07:00
Scott Lahteine e104b91ea6 References to millimeters in code comments need an update 2016-07-03 20:13:29 -07:00
AnHardt ff91d28a3a Remove wants_to_cool warning
Remove wants_to_cool warning
2016-07-04 03:12:11 +02:00
Scott Lahteine c9e536cf87 Additional patches for gcode_T position change 2016-07-03 18:11:02 -07:00
Scott Lahteine f31af61ee2 Fix position adjustment with gcode_T and MBL 2016-07-03 17:44:04 -07:00
lrpirlet 9b42c6b44b apply correction when swtiching from MBL to physical in G28 X 2016-07-03 21:43:42 +02:00
Petr Zahradnik 43ff0ce35f Rewritten FILAMENT_CHANGE_ENABLE feature 2016-07-02 15:34:33 -07:00
AnHardt cb1b31f69b Unconditional do_probe_raise() in probe_pt()
If Z_RAISE_BETWEEN_PROBINGS is null or undefined the probe is currently not raised by home_offset[Z_AXIS] and zprobe_zoffset.
But when different from 0 is.

If an undefined Z_RAISE_BETWEEN_PROBINGS expands to 0 (and it does) this is the solution.


A similar asymmetry exists with the newly introduced 'short-cut' in G28 - but its the rise before anything is probed - so should not make a difference.
2016-07-01 15:28:41 +02:00
Scott Lahteine 7ef7843fd4 Merge pull request #4181 from thinkyhead/rc_rename_a_move_func
Do interpolated moves for Allen Key deploy/stow
2016-06-30 16:30:09 -07:00
Scott Lahteine da6b0dab5f Use prepare_move_to_destination for Allen Key deploy/stow 2016-06-30 16:09:43 -07:00
Scott Lahteine c42f8fb8dd Rename some movement sub-functions 2016-06-30 15:50:00 -07:00
Scott Lahteine 5e14a528dd Always wait for cooling in M109/M190, break at low temp or if cooling stalls 2016-06-29 14:07:54 -07:00
Scott Lahteine 2e96276bf4 More debug message cleanup 2016-06-27 20:36:19 -07:00
Scott Lahteine dc2c0e5e24 Simpler debug output for deploy/stow 2016-06-27 20:36:18 -07:00
Scott Lahteine bd491818d6 Reduce storage requirements for strings, make some PGM 2016-06-27 20:36:18 -07:00
AnHardt e480ee0054 Further cleanup of G28 for probes 2016-06-27 20:19:51 -07:00
AnHardt 39883d03fc universalize axis_unhomed_error() 2016-06-27 20:19:51 -07:00
AnHardt e616093d4c Simplify dock_sled()
`dock_sled()` is never called with offset parameter - remove it.
We move x only - so only that needs to be homed. Consequence is - we can home to z-min now with a sled probe!
Feedrates are set and restored in `do_blocking_move()`.
We already checked if the probe is deployed/stowed in deploy/stow_probe.
```
if (z_loc < _Z_RAISE_PROBE_DEPLOY_STOW + 5) z_loc = _Z_RAISE_PROBE_DEPLOY_STOW;
```
makes no sense - remove.
Now the raise is the same for deploy/stow -> move before the if.
Replace the if with a ternary.
Instead writing LOW/HIGH use the boolean `stow` we already have.

There is no reason for not using the sled probe in G29/M48 with 'E'.
It takes a while but works. (tested!)
2016-06-27 20:19:51 -07:00
Scott Lahteine 829c92f1ba Use Z_RAISE_BETWEEN_PROBINGS with MBL 2016-06-26 15:39:11 -07:00
Scott Lahteine eb1755208f Merge pull request #4153 from thinkyhead/rc_probe_raise_options
Combine Z raise before/after options
2016-06-26 15:30:08 -07:00
Scott Lahteine 10da7ac86c Combine Z raise before/after options 2016-06-26 13:56:30 -07:00
Scott Lahteine 3fa631130f Ensure a minimum height before XY move in probe_pt 2016-06-25 19:19:31 -07:00
Scott Lahteine ca184d3d72 Merge pull request #4147 from thinkyhead/rc_fix_M48_raise
Fix debug output in probe_pt
2016-06-25 18:15:33 -07:00
Scott Lahteine b4161cbd98 Fix debug output in probe_pt 2016-06-25 17:59:03 -07:00
Edward Patel da88b00585 MBL: Add support for max z endstop
See https://github.com/MarlinFirmware/Marlin/issues/4088
2016-06-25 21:58:02 +02:00
Scott Lahteine 7de7552069 Merge pull request #4133 from MagoKimbra/Single_home_axis_delta
Single home Axis Delta need simple sync_plan_position
2016-06-23 21:14:22 -07:00
Scott Lahteine 15a6b49f37 Simplified probe_pt (in G30) 2016-06-23 20:25:46 -07:00
Scott Lahteine 6a7045b9bf Remove clean_up_after_endstop_move 2016-06-23 20:23:19 -07:00
Scott Lahteine 2a4f866561 Simplified probe_pt (in G29) 2016-06-23 20:22:28 -07:00
Scott Lahteine 89a2aa026b Simplified probe_pt (in M48) 2016-06-23 19:22:45 -07:00
Scott Lahteine f8530c5d1f Simplified probe_pt function (G28 grid) 2016-06-23 19:09:32 -07:00
Scott Lahteine c376c08042 Simplified probe_pt function (part 1) 2016-06-23 19:00:29 -07:00
Scott Lahteine 9a71b7f8ad Fix debug message for 3-point leveling 2016-06-23 18:17:31 -07:00
Scott Lahteine 550c03a5a9 Drop raise_z_after_probing function 2016-06-23 18:11:54 -07:00
Scott Lahteine bb38c816af Always raise in deploy_z_probe / stow_z_probe 2016-06-23 18:00:20 -07:00
Scott Lahteine 68f3350050 Cleanup M401 / M402 2016-06-23 17:04:41 -07:00
Scott Lahteine 3afda99adf Regular handlers for G31 / G32 2016-06-23 17:04:13 -07:00
Scott Lahteine 6803c8e37e Move Z up before, or down after XY, for "blocking move" 2016-06-23 15:50:13 -07:00
MagoKimbra 570f3bbc07 Single home Axis Delta need simple sync_plan_position 2016-06-23 23:09:47 +02:00
Scott Lahteine 7b2fadd598 Apply some fixes from Andreas
Derived from
https://github.com/AnHardt/Marlin/commit/6e8ede8c694fa4d9e3c769840b09d56
7f8d8e0dd
2016-06-22 17:35:59 -07:00
Scott Lahteine bd01592816 Goodbye MECHANICAL_PROBE 2016-06-22 17:13:33 -07:00
Scott Lahteine 2640d13a9f Simplify initial raise in M48 2016-06-22 16:53:04 -07:00
Scott Lahteine 3763d45656 Return Z position in run_z_probe 2016-06-22 16:52:32 -07:00
Scott Lahteine 1f48b5c30f Pass a raise to probe_pt, not a Z position 2016-06-22 16:40:21 -07:00
Scott Lahteine 6fdd5ba246 Save and restore feedrate in more places 2016-06-22 16:40:20 -07:00
Scott Lahteine fe173c2bc6 Generalized probe raise, use for after probing 2016-06-22 14:44:30 -07:00
Scott Lahteine 7da3080761 Simpler cleanup in G28 / G29 2016-06-22 14:44:30 -07:00
Scott Lahteine 15229d988b Fix compile error for bed matrix in M48 2016-06-22 14:04:46 -07:00
Scott Lahteine c01352cbd5 Add a dependency for z servo macros 2016-06-22 14:04:23 -07:00
Scott Lahteine c3794bd695 Add HAS_PROBING_PROCEDURE conditional 2016-06-22 14:03:22 -07:00
Scott Lahteine bb9c67b4b5 Tweak some feedrate vars 2016-06-22 03:27:31 -07:00
Scott Lahteine 5158bd6e93 Screen out G29 E for sled and allen key, allow single probe 2016-06-22 03:20:33 -07:00
Scott Lahteine ccae92588d Cleanup debug in G28 and G29 2016-06-22 03:20:33 -07:00
Scott Lahteine b4a9d2366c Use a macro for kinematic sync_plan_position 2016-06-22 03:20:33 -07:00
Scott Lahteine bfccf26294 Use sync_plan_position_delta where needed 2016-06-22 03:20:33 -07:00
Scott Lahteine a6b8c67df4 Move probe deploy after setup call in G29 2016-06-22 03:20:33 -07:00
Scott Lahteine e69916d1bd Split up endstop_move functions 2016-06-22 03:20:33 -07:00
Scott Lahteine 0e18a4897b Simpler handling of sled/allen-key in probe_pt 2016-06-22 03:20:33 -07:00
Scott Lahteine 1a92e2ef18 Comment on run_z_probe 2016-06-22 03:20:33 -07:00
Scott Lahteine 68e0e5855e For all probes, at the end of G29 simply raise and stow 2016-06-22 03:20:33 -07:00
Scott Lahteine c3023f8cc5 Make M401/M402 available with HAS_BED_PROBE 2016-06-22 03:20:33 -07:00
Scott Lahteine 9f0c255c69 Show uncorrected position in set_bed_level_equation_3pts 2016-06-22 03:20:33 -07:00
Scott Lahteine 07298ac992 Initialize current_position to home_offset on boot 2016-06-22 03:20:33 -07:00
Scott Lahteine d50539583a Make XY_PROBE_SPEED a general probe option 2016-06-22 03:04:47 -07:00
Scott Lahteine 2798499b71 XY_TRAVEL_SPEED => XY_PROBE_SPEED 2016-06-22 02:45:25 -07:00
Scott Lahteine 88dc543584 Add a macro for XY_TRAVEL_FEEDRATE 2016-06-22 02:23:50 -07:00
Scott Lahteine 3996242e9d Allow Z_MIN_PROBE_REPEATABILITY_TEST solo 2016-06-21 01:56:40 -07:00
Scott Lahteine 26a9cd0b08 Move run_z_probe to earlier block 2016-06-21 01:25:23 -07:00
Scott Lahteine 7f8a2025af Move raise_z_after_probing into earlier block 2016-06-21 01:03:40 -07:00
Scott Lahteine 2530371516 Always disable probe at the end of G29 2016-06-20 16:40:44 -07:00
Scott Lahteine 6aba98e470 Comment on setup_for_endstop_move 2016-06-20 16:40:44 -07:00
Scott Lahteine 04e88d008e Clear up ordering in G30 2016-06-20 16:40:44 -07:00
Scott Lahteine ed75b0ea11 Make clean_up function available for probes 2016-06-20 16:28:45 -07:00