mirror of
https://github.com/bdring/Grbl_Esp32.git
synced 2025-09-03 03:13:25 +02:00
Added single axis homing to ganged axis machine
- You can now single axis home ganged machines - Added comments to due to recent questions
This commit is contained in:
@@ -46,13 +46,17 @@ Some features should not be changed. See notes below.
|
||||
// See Github repo wiki for more details
|
||||
#define CPU_MAP_TEST_DRIVE // these are defined in cpu_map.h
|
||||
|
||||
#define N_AXIS 3 // Number of axes defined (valid range: 3 to 6)
|
||||
// Number of axes defined (steppers, servos, etc) (valid range: 3 to 6)
|
||||
// Even if your machine only uses less than the minimum of 3, you should select 3
|
||||
#define N_AXIS 3
|
||||
|
||||
#define VERBOSE_HELP // adds addition help info, but could confuse some senders
|
||||
#define VERBOSE_HELP // Currently this doesn't do anything
|
||||
#define GRBL_MSG_LEVEL MSG_LEVEL_INFO // what level of [MSG:....] do you want to see 0=all off
|
||||
|
||||
// Serial baud rate
|
||||
#define BAUD_RATE 115200
|
||||
// OK to change, but the ESP32 boot text is 115200, so you will not see that is your
|
||||
// serial monitor, sender, etc uses a different value than 115200
|
||||
#define BAUD_RATE 115200
|
||||
|
||||
#define ENABLE_BLUETOOTH // enable bluetooth
|
||||
|
||||
|
@@ -585,10 +585,6 @@
|
||||
#endif
|
||||
|
||||
#define USE_GANGED_AXES // allow two motors on an axis
|
||||
|
||||
#ifdef HOMING_SINGLE_AXIS_COMMANDS
|
||||
#undef HOMING_SINGLE_AXIS_COMMANDS
|
||||
#endif
|
||||
|
||||
#define X_STEP_PIN GPIO_NUM_12
|
||||
#define X_STEP_B_PIN GPIO_NUM_22 // ganged motor
|
||||
@@ -688,7 +684,7 @@
|
||||
|
||||
#define DEFAULT_HOMING_ENABLE 1 // false
|
||||
#define DEFAULT_HOMING_DIR_MASK 3 // move positive dir Z,negative X,Y
|
||||
#define DEFAULT_HOMING_FEED_RATE 500.0 // mm/min
|
||||
#define DEFAULT_HOMING_FEED_RATE 100.0 // mm/min
|
||||
#define DEFAULT_HOMING_SEEK_RATE 200.0 // mm/min
|
||||
#define DEFAULT_HOMING_DEBOUNCE_DELAY 250 // msec (0-65k)
|
||||
#define DEFAULT_HOMING_PULLOFF 2.0 // mm
|
||||
@@ -840,11 +836,10 @@
|
||||
// OK to comment out to use pin for other features
|
||||
#define STEPPERS_DISABLE_PIN GPIO_NUM_13
|
||||
|
||||
#ifndef USE_SERVO_AXES // maybe set in config.h
|
||||
#ifndef USE_SERVO_AXES // may be set in config.h
|
||||
#define USE_SERVO_AXES
|
||||
#endif
|
||||
|
||||
|
||||
#define SERVO_Z_PIN GPIO_NUM_27
|
||||
#define SERVO_Z_CHANNEL_NUM 5
|
||||
#define SERVO_Z_RANGE_MIN 0.0
|
||||
|
@@ -20,7 +20,7 @@
|
||||
|
||||
// Grbl versioning system
|
||||
#define GRBL_VERSION "1.1f"
|
||||
#define GRBL_VERSION_BUILD "20200215"
|
||||
#define GRBL_VERSION_BUILD "20200216"
|
||||
|
||||
//#include <sdkconfig.h>
|
||||
#include <Arduino.h>
|
||||
|
@@ -263,8 +263,25 @@ void mc_homing_cycle(uint8_t cycle_mask)
|
||||
// Perform homing routine. NOTE: Special motion case. Only system reset works.
|
||||
|
||||
#ifdef HOMING_SINGLE_AXIS_COMMANDS
|
||||
/*
|
||||
if (cycle_mask) { limits_go_home(cycle_mask); } // Perform homing cycle based on mask.
|
||||
else
|
||||
*/
|
||||
if (cycle_mask) {
|
||||
if (! axis_is_squared(cycle_mask))
|
||||
limits_go_home(cycle_mask); // Homing cycle 0
|
||||
else {
|
||||
ganged_mode = SQUARING_MODE_DUAL;
|
||||
limits_go_home(cycle_mask);
|
||||
ganged_mode = SQUARING_MODE_A;
|
||||
limits_go_home(cycle_mask);
|
||||
ganged_mode = SQUARING_MODE_B;
|
||||
limits_go_home(cycle_mask);
|
||||
ganged_mode = SQUARING_MODE_DUAL; // always return to dual
|
||||
}
|
||||
|
||||
} // Perform homing cycle based on mask.
|
||||
else
|
||||
#endif
|
||||
{
|
||||
// Search to engage all axes limit switches at faster homing seek rate.
|
||||
|
@@ -243,10 +243,17 @@ uint8_t system_execute_line(char *line, uint8_t client)
|
||||
case 'X': sys.state = STATE_HOMING; mc_homing_cycle(HOMING_CYCLE_X); break;
|
||||
case 'Y': sys.state = STATE_HOMING; mc_homing_cycle(HOMING_CYCLE_Y); break;
|
||||
case 'Z': sys.state = STATE_HOMING; mc_homing_cycle(HOMING_CYCLE_Z); break;
|
||||
case 'A': sys.state = STATE_HOMING; mc_homing_cycle(HOMING_CYCLE_A); break;
|
||||
case 'B': sys.state = STATE_HOMING; mc_homing_cycle(HOMING_CYCLE_B); break;
|
||||
case 'C': sys.state = STATE_HOMING; mc_homing_cycle(HOMING_CYCLE_C); break;
|
||||
default: return(STATUS_INVALID_STATEMENT);
|
||||
#if (N_AXIS > 3) // make sure axis is defined
|
||||
case 'A': sys.state = STATE_HOMING; mc_homing_cycle(HOMING_CYCLE_A); break;
|
||||
#endif
|
||||
#if (N_AXIS > 4) // make sure axis is defined
|
||||
case 'B': sys.state = STATE_HOMING; mc_homing_cycle(HOMING_CYCLE_B); break;
|
||||
#endif
|
||||
#if (N_AXIS > 5) // make sure axis is defined
|
||||
case 'C': sys.state = STATE_HOMING; mc_homing_cycle(HOMING_CYCLE_C); break;
|
||||
#endif
|
||||
default:
|
||||
return(STATUS_INVALID_STATEMENT);
|
||||
}
|
||||
#endif
|
||||
} else { return(STATUS_INVALID_STATEMENT); }
|
||||
|
Reference in New Issue
Block a user