Commit Graph

61 Commits

Author SHA1 Message Date
Scott Lahteine
af1721b351 Extra insurance against endstop false positives 2018-06-13 00:36:47 -05:00
Scott Lahteine
9641bae325 Cleanup for dual endstops homing 2018-06-03 00:32:13 -05:00
Scott Lahteine
3b06a8e917
[1.1.x] Assorted fixes and improvements (#10914)
Co-Authored-By: ejtagle
2018-06-01 19:00:59 -05:00
Scott Lahteine
b20d7129ab Fix reset of endstops and move state 2018-05-24 19:32:58 -05:00
Scott Lahteine
766bcc6a70 Patches for core motion tests 2018-05-24 00:50:25 -05:00
Scott Lahteine
58a6eb656c
Fix Endstops Core compatibility (#10822)
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-05-23 03:45:12 -05:00
Scott Lahteine
c76a466ba9
Followup to endstops update 2018-05-22 14:52:24 -05:00
Scott Lahteine
01083dfca1 Restore lost Endstops::monitor 2018-05-22 01:58:20 -05:00
Scott Lahteine
07c35886e1 Tweak G38 formatting 2018-05-22 01:56:45 -05:00
Scott Lahteine
a971cacb06 Add Endstop Noise Filter
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-05-21 15:32:26 -05:00
Scott Lahteine
3a4a229721 Fix interrupt-based endstop detection 2018-05-20 21:24:57 -05:00
Scott Lahteine
8f26c3a6d3 Refactor and optimize Stepper/Planner 2018-05-20 21:24:57 -05:00
Scott Lahteine
bf0fcebfe6 Apply _AXIS macro 2018-05-13 04:51:32 -05:00
Scott Lahteine
8a19bc0c0e Prevent null pointer crash in Endstops::update
Thanks to Evgeny Kotsuba!
2018-03-20 04:23:38 -05:00
Scott Lahteine
e8fc0e9a57 Move [xyz]_endstop_adj to Endstops class 2018-03-10 06:54:18 -06:00
Scott Lahteine
12b697c5cd Fix UPDATE_ENDSTOP for CorePQ compatibility
Fixes #9939
2018-03-09 08:49:44 -06:00
Scott Lahteine
f4639fa964 Move SET_BIT macro to endstops.cpp and simplify 2018-02-02 00:50:29 -06:00
Øystein Krog
1f37781bf1 Fix DUAL_X_CARRIAGE endstops
\#8170 fixed
(cherry picked from commit 441517bbe1625aa68a49aef0f98c6c4184e66dff)
2018-01-21 16:32:29 +01:00
Scott Lahteine
172ea8c71c General code/bitmaps cleanup 2017-12-13 17:57:54 -06:00
Scott Lahteine
318c419f77 Implement support for Dual X and Y endstops 2017-10-29 03:49:45 -05:00
Thomas Moore
f54e0fc90f Prevent damage if DELTA_HEIGHT is incorrect 2017-08-11 16:09:14 -05:00
Scott Lahteine
b0173ccdb9 Drop extra initializers for vars initialized by EEPROM code 2017-07-20 22:57:49 -05:00
Scott Lahteine
e94f79ccea Patch some serial macros 2017-06-09 17:17:23 -05:00
Scott Lahteine
ef750ae86b Towards supporting Z2 in Endstops::report_state 2017-05-02 15:39:32 -05:00
Scott Lahteine
25a61e9061 Improve motion-based endstop triggering code 2017-04-15 06:16:50 -05:00
Bob-the-Kuhn
445d39e95a CORExx endstop detection fixes
1. The CORExx printers were checking more endstop axis than needed.

2. Removed all the CORE_xx_NOT logic.  The motor_direction(xx) routine
always returns the correct data so it is not needed.  It was actually
cause the wrong direction to be checked in some cases.

3. Made the logic/defines for X, Y & Z axis all the same.  The old logic
checked inappropriate configurations for Y and didn't check all the
correct configurations on Z.

4. Added a check for zero steps before the X, Y & Z axis.  Previously
would check the they axis even if there were no movement.
2017-04-13 21:43:37 -05:00
Scott Lahteine
deaad78df9 Merge pull request #5678 from Bob-the-Kuhn/G38-optional-double-tap
G38 bug fix, made double touch optional & reverted to Z_MIN_PROBE
2017-04-02 10:32:04 -05:00
Scott Lahteine
7a7a80e6c5 status_printf => lcd_status_printf_P 2017-04-02 01:05:25 -05:00
Bob-the-Kuhn
0934563b97 G38 optional double touch
Made the double touch portion a conditional compile based on the
PROBE_DOUBLE_TOUCH flag.

==============================================

Bugfix

The current G38 only stopped a move if it involved the Z axis.

Moved all the G38 code to it's own section and put it where it would
always be executed no matter what axis was moving or if the endstop was
enabled.

Also added a comment to configuration_adv to alert the user the double
tap had to be turned on.

==============================================

Change G38 back to using Z_MIN_PROBE

There's no Z_MIN endstop if Z_DUAL_ENDSTOPS is enabled and you have them
set to the top of the gantry.

G38 started out as using the Z_MIN_PROBE pin.  I don't remember why we
changed it to the Z_MIN endstop.
2017-03-22 15:08:49 -05:00
Scott Lahteine
2defb1d748 Use SET_INPUT_PULLUP where appropriate 2017-03-07 23:43:33 -06:00
Scott Lahteine
b6d9eb229f Extend Core endstop commentary 2017-03-01 10:01:50 -06:00
Bob-the-Kuhn
c5e08e8761 CoreYX/YZ/ZX needs different endstop logic than CoreXY/YZ/XZ
In the endstop testing section, add the "reverse" logic in addition to "normal" core handling.

In CoreXY/YZ/XZ steppers rotating the same direction gives X movement. Opposing directions produces Y movement.

In CoreYX/ZY/ZX this is reversed. Same = Y, Opposite = X.

----

Fixes the issue where the Y endstop was being checked when moving in the X direction, etc.
2017-03-01 09:40:24 -06:00
Roxy-3D
8bf0b496b9 Improve M600 with timeout, wait for heatup. 2017-02-15 05:29:34 -06:00
esenapaj
069c6b38dd Remove unnecessary tabs and spaces 2016-12-16 00:21:32 +09:00
Scott Lahteine
1864b282c5 Implement reversed CORE options 2016-11-05 23:47:51 -05:00
Scott Lahteine
f3720f4e81 const arguments to test_dual_z_endstops 2016-10-29 16:01:27 -05:00
Scott Lahteine
accabf088a Add support for Z2 min endstop to M119 2016-10-29 01:54:02 -05:00
Scott Lahteine
c07cc9e3f1 Revert changes made to z dual endstop test
#3631 broke z dual endstops. Solved by @Nocturnal42 in https://github.com/MarlinFirmware/Marlin/issues/5078#issuecomment-256572248
2016-10-27 07:41:39 -05:00
Scott Lahteine
4f5a8c05d5 Tweaks to endstops macros 2016-10-22 02:52:56 -05:00
Scott Lahteine
919fe3e4b8 Rename feature to G38_PROBE_TARGET 2016-10-01 05:00:53 -05:00
Scott Lahteine
a2864ab7fe Patched up, cleaned up 2016-10-01 05:00:53 -05:00
Bob-the-Kuhn
2911aa7ffa code changes to implement G38 commands
1) modified 3 code files
Marlin.h
Marlin_main.cpp
endstops.cpp

2) modified config files so I could test on my machine

Testing was done on an AzteegX3pro based machine.

The probe was hooked to the Z_MIN endstop.

My controller doesn't have a dedicated Z_PROBE input so I couldn't test
that functionality.

Verified that a large file (without any G38 commands) executed the same
before and after the changes.

Verified that the head moves as expected when G38.2 and G38.3 commands
are issued. Single & multiple axis moves were tested along with + and -
directions.

Code was added to the main ISR. In normal operation only one extra IF
statement is evaluated. I didn't notice any performance degradation
because of the added code.

The G38 commands are expected to be issued manually by the operator
during machine setup. The G38 commands wait until the machine is idle
before proceeding. That way the other commands are minimally impacted
by the extra ISR overhead when a G38 command is in the queue.

The G38 commands are very similar to the G28 commands except 1) only the
Z_PROBE is used and movement can be in the + or - direction.

See issue 4677 for a discussion on adding G38 commands to Marlin.
Feature request: add ability to use G38.2 command (CNC)
MarlinFirmware/Marlin#4677
2016-10-01 05:00:53 -05:00
Scott Lahteine
ed7d2694fc Don't check Z_MAX on raise when the probe pwns the pin 2016-09-30 16:41:30 -05:00
Scott Lahteine
e05af606a8 Clean up probe config options 2016-09-19 00:26:16 -05:00
Scott Lahteine
7242d44810 Endstops vars already initialized 2016-07-17 13:38:48 -07:00
Scott Lahteine
0fcd3706dd Replace ENDSTOPS_ONLY_FOR_HOMING with ENDSTOPS_ALWAYS_ON_DEFAULT 2016-07-17 13:35:21 -07:00
Scott Lahteine
834ad14c8d Add quickstop_stepper to update current position with stepper.quick_stop() 2016-07-07 16:37:22 -07:00
Scott Lahteine
bd491818d6 Reduce storage requirements for strings, make some PGM 2016-06-27 20:36:18 -07:00
Scott Lahteine
664b299a51 This fix is not DELTA compatible 2016-06-02 17:16:19 -07:00
Scott Lahteine
6277395e1e set_current_position_from_planner() after stepper.quick_stop() 2016-06-02 17:16:19 -07:00