37 Commits (22f6e277af8d6b0ba3a14daf1f1888c85b682d74)

Author SHA1 Message Date
Scott Lahteine 25a61e9061 Improve motion-based endstop triggering code 8 years ago
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.
8 years ago
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
8 years ago
Scott Lahteine 7a7a80e6c5 status_printf => lcd_status_printf_P 8 years ago
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.
8 years ago
Scott Lahteine 2defb1d748 Use SET_INPUT_PULLUP where appropriate 8 years ago
Scott Lahteine b6d9eb229f Extend Core endstop commentary 8 years ago
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.
8 years ago
Roxy-3D 8bf0b496b9 Improve M600 with timeout, wait for heatup. 8 years ago
esenapaj 069c6b38dd Remove unnecessary tabs and spaces 8 years ago
Scott Lahteine 1864b282c5 Implement reversed CORE options 8 years ago
Scott Lahteine f3720f4e81 const arguments to test_dual_z_endstops 8 years ago
Scott Lahteine accabf088a Add support for Z2 min endstop to M119 8 years ago
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
8 years ago
Scott Lahteine 4f5a8c05d5 Tweaks to endstops macros 8 years ago
Scott Lahteine 919fe3e4b8 Rename feature to G38_PROBE_TARGET 8 years ago
Scott Lahteine a2864ab7fe Patched up, cleaned up 8 years ago
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
8 years ago
Scott Lahteine ed7d2694fc Don't check Z_MAX on raise when the probe pwns the pin 8 years ago
Scott Lahteine e05af606a8 Clean up probe config options 8 years ago
Scott Lahteine 7242d44810 Endstops vars already initialized 9 years ago
Scott Lahteine 0fcd3706dd Replace ENDSTOPS_ONLY_FOR_HOMING with ENDSTOPS_ALWAYS_ON_DEFAULT 9 years ago
Scott Lahteine 834ad14c8d Add quickstop_stepper to update current position with stepper.quick_stop() 9 years ago
Scott Lahteine bd491818d6 Reduce storage requirements for strings, make some PGM 9 years ago
Scott Lahteine 664b299a51 This fix is not DELTA compatible 9 years ago
Scott Lahteine 6277395e1e set_current_position_from_planner() after stepper.quick_stop() 9 years ago
Scott Lahteine 26f866b908 Apply static to Endstops class 9 years ago
Scott Lahteine 5172d4ba40 COREYZ stepper, planner, endstop, babysteps 9 years ago
AnHardt bb66ffb2ae Correct hardware endstops default
All credits to RicardoGA
9 years ago
Scott Lahteine 15fc93d742 Cleanup and consolidate probe conditionals for clarity 9 years ago
Scott Lahteine 4f6120f70f Merge pull request #3643 from thinkyhead/rc_singletons_plus_temperature
Temperature singleton
9 years ago
Scott Lahteine 084f6b5b44 Temperature singleton class 9 years ago
Scott Lahteine 13f85a2b50 Can't use the ENABLED macro as a boolean 9 years ago
esenapaj 605808fe37 Additional follow-up the PR #3631(Encapsulate S...
Additional follow-up the PR #3631(Encapsulate Stepper, Planner, Endstops in singleton classes)

・Change from abort_on_endstop_hit to stepper.abort_on_endstop_hit in endstop.cpp, Marlin_main.cpp, and ultralcd.cpp
・Add include path to cardreader.h and temperature.h in endstop.cpp(for CardReader class and disable_all_heaters())
It fix compilation error when ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED and SDSUPPORT are enabled.

・Change from digipot_current() to stepper.digipot_current() in Marlin_main.cpp
・Change from digitalPotWrite() to stepper.digitalPotWrite() in Marlin_main.cpp
It fix compilation errors when HAS_DIGIPOTSS is enabled.

・Change from microstep_mode() to stepper.microstep_mode() in Marlin_main.cpp
・Change attribute of microstep_mode() from private to public in stepper.h
・Change from microstep_readings() to stepper.microstep_readings() in Marlin_main.cpp
・Change from microstep_ms() to stepper.microstep_ms() in Marlin_main.
It fix compilation errors when HAS_MICROSTEPS is enabled.
9 years ago
Scott Lahteine 24a15332b3 Encapsulate dual Z endstop handling 9 years ago
Scott Lahteine 5076d12344 Localize M119 in Endstops class 9 years ago
Scott Lahteine 5e4e535ce8 Stepper and Endstops as singleton objects 9 years ago