mirror of
https://github.com/bdring/Grbl_Esp32.git
synced 2025-09-03 03:13:25 +02:00
@@ -22,7 +22,7 @@
|
||||
along with Grbl_ESP32. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#define MACHINE_NAME "External Driver Board V1.1"
|
||||
#define MACHINE_NAME "External 4 Axis Driver Board"
|
||||
|
||||
#ifdef N_AXIS
|
||||
#undef N_AXIS
|
@@ -2,7 +2,7 @@
|
||||
lowrider.h
|
||||
Part of Grbl_ESP32
|
||||
|
||||
Pin assignments for the Buildlog.net MPCNC controller
|
||||
Pin assignments for the Buildlog.net MPCNC controller
|
||||
used in lowrider mode. Low rider has (2) Y and Z and one X motor
|
||||
These will not match the silkscreen or schematic descriptions...see definitions below
|
||||
https://github.com/bdring/Grbl_ESP32_MPCNC_Controller
|
||||
@@ -24,28 +24,23 @@
|
||||
along with Grbl_ESP32. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
//#define V1P1
|
||||
#define V1P2 // works for V1.2.1 as well
|
||||
|
||||
#ifdef V1P1
|
||||
#define MACHINE_NAME "MACHINE_LOWRIDER_V1P1"
|
||||
#else // V1P2
|
||||
|
||||
#define MACHINE_NAME "MACHINE_LOWRIDER_V1P2"
|
||||
#endif
|
||||
|
||||
#define USE_GANGED_AXES // allow two motors on an axis
|
||||
|
||||
#define X_STEP_PIN GPIO_NUM_27 // use Z labeled connector
|
||||
#define X_DIRECTION_PIN GPIO_NUM_33 // use Z labeled connector
|
||||
#define X_STEP_PIN GPIO_NUM_27 // use Z labeled connector
|
||||
#define X_DIRECTION_PIN GPIO_NUM_33 // use Z labeled connector
|
||||
|
||||
#define Y_STEP_PIN GPIO_NUM_14
|
||||
#define Y2_STEP_PIN GPIO_NUM_21 // ganged motor
|
||||
#define Y_DIRECTION_PIN GPIO_NUM_25
|
||||
#define Y_STEP_PIN GPIO_NUM_14
|
||||
#define Y2_STEP_PIN GPIO_NUM_21 // ganged motor
|
||||
#define Y_DIRECTION_PIN GPIO_NUM_25
|
||||
#define Y_AXIS_SQUARING
|
||||
|
||||
#define Z_STEP_PIN GPIO_NUM_12 // use X labeled connector
|
||||
#define Z2_STEP_PIN GPIO_NUM_22 // use X labeled connector
|
||||
#define Z_DIRECTION_PIN GPIO_NUM_26 // use X labeled connector
|
||||
#define Z_STEP_PIN GPIO_NUM_12 // use X labeled connector
|
||||
#define Z2_STEP_PIN GPIO_NUM_22 // use X labeled connector
|
||||
#define Z_DIRECTION_PIN GPIO_NUM_26 // use X labeled connector
|
||||
#define Z_AXIS_SQUARING
|
||||
|
||||
// OK to comment out to use pin for other features
|
||||
@@ -55,40 +50,30 @@
|
||||
//#define USE_SPINDLE_RELAY
|
||||
|
||||
#ifdef USE_SPINDLE_RELAY
|
||||
#ifdef V1P1
|
||||
#define SPINDLE_PWM_PIN GPIO_NUM_17
|
||||
#else // V1p2
|
||||
#define SPINDLE_PWM_PIN GPIO_NUM_2
|
||||
#endif
|
||||
#define SPINDLE_PWM_PIN GPIO_NUM_2
|
||||
#else
|
||||
#define SPINDLE_PWM_PIN GPIO_NUM_16
|
||||
#define SPINDLE_ENABLE_PIN GPIO_NUM_32
|
||||
#define SPINDLE_PWM_PIN GPIO_NUM_16
|
||||
#define SPINDLE_ENABLE_PIN GPIO_NUM_32
|
||||
#endif
|
||||
|
||||
// Note: Only uncomment this if USE_SPINDLE_RELAY is commented out.
|
||||
// Relay can be used for Spindle or Coolant
|
||||
//#define COOLANT_FLOOD_PIN GPIO_NUM_17
|
||||
|
||||
#define X_LIMIT_PIN GPIO_NUM_15
|
||||
#define Y_LIMIT_PIN GPIO_NUM_4
|
||||
|
||||
#ifdef V1P1 //v1p1
|
||||
#define Z_LIMIT_PIN GPIO_NUM_2
|
||||
#else
|
||||
#define Z_LIMIT_PIN GPIO_NUM_17
|
||||
#endif
|
||||
#define X_LIMIT_PIN GPIO_NUM_15
|
||||
#define Y_LIMIT_PIN GPIO_NUM_4
|
||||
#define Z_LIMIT_PIN GPIO_NUM_17
|
||||
|
||||
#define LIMIT_MASK B111
|
||||
|
||||
#ifdef V1P2
|
||||
#ifndef ENABLE_SOFTWARE_DEBOUNCE // V1P2 does not have R/C filters
|
||||
#define ENABLE_SOFTWARE_DEBOUNCE
|
||||
#endif
|
||||
#ifndef ENABLE_SOFTWARE_DEBOUNCE // V1P2 does not have R/C filters
|
||||
#define ENABLE_SOFTWARE_DEBOUNCE
|
||||
#endif
|
||||
|
||||
|
||||
// The default value in config.h is wrong for this controller
|
||||
#ifdef INVERT_CONTROL_PIN_MASK
|
||||
#undef INVERT_CONTROL_PIN_MASK
|
||||
#undef INVERT_CONTROL_PIN_MASK
|
||||
#endif
|
||||
|
||||
#define INVERT_CONTROL_PIN_MASK B1110
|
141
Grbl_Esp32/Machines/mpcnc_v1p1.h
Normal file
141
Grbl_Esp32/Machines/mpcnc_v1p1.h
Normal file
@@ -0,0 +1,141 @@
|
||||
/*
|
||||
mpcnc.h
|
||||
Part of Grbl_ESP32
|
||||
|
||||
Pin assignments for the Buildlog.net MPCNC controller
|
||||
https://github.com/bdring/Grbl_ESP32_MPCNC_Controller
|
||||
|
||||
2019 - Bart Dring
|
||||
2020 - Mitch Bradley
|
||||
|
||||
Grbl_ESP32 is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Grbl is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Grbl_ESP32. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// // Pin assignments for the Buildlog.net MPCNC controller
|
||||
|
||||
|
||||
#define MACHINE_NAME "MACHINE_MPCNC_V1P1"
|
||||
|
||||
#define USE_GANGED_AXES // allow two motors on an axis
|
||||
|
||||
#define X_STEP_PIN GPIO_NUM_12
|
||||
#define X2_STEP_PIN GPIO_NUM_22 // ganged motor
|
||||
#define X_AXIS_SQUARING
|
||||
|
||||
#define Y_STEP_PIN GPIO_NUM_14
|
||||
#define Y2_STEP_PIN GPIO_NUM_21 // ganged motor
|
||||
#define Y_AXIS_SQUARING
|
||||
|
||||
#define Z_STEP_PIN GPIO_NUM_27
|
||||
|
||||
#define X_DIRECTION_PIN GPIO_NUM_26
|
||||
#define Y_DIRECTION_PIN GPIO_NUM_25
|
||||
#define Z_DIRECTION_PIN GPIO_NUM_33
|
||||
|
||||
// OK to comment out to use pin for other features
|
||||
#define STEPPERS_DISABLE_PIN GPIO_NUM_13
|
||||
|
||||
// Note: if you use PWM rather than relay, you could map GPIO_NUM_2 to mist or flood
|
||||
//#define USE_SPINDLE_RELAY
|
||||
|
||||
#ifdef USE_SPINDLE_RELAY
|
||||
#define SPINDLE_PWM_PIN GPIO_NUM_17
|
||||
#else
|
||||
#define SPINDLE_PWM_PIN GPIO_NUM_16
|
||||
#define SPINDLE_ENABLE_PIN GPIO_NUM_32
|
||||
#endif
|
||||
|
||||
// Note: Only uncomment this if USE_SPINDLE_RELAY is commented out.
|
||||
// Relay can be used for spindle or either coolant
|
||||
//#define COOLANT_FLOOD_PIN GPIO_NUM_2
|
||||
//#define COOLANT_MIST_PIN GPIO_NUM_2
|
||||
|
||||
|
||||
#define X_LIMIT_PIN GPIO_NUM_2
|
||||
#define Y_LIMIT_PIN GPIO_NUM_4
|
||||
#define Z_LIMIT_PIN GPIO_NUM_15
|
||||
#define LIMIT_MASK B111
|
||||
|
||||
#define PROBE_PIN GPIO_NUM_35
|
||||
|
||||
// The default value in config.h is wrong for this controller
|
||||
#ifdef INVERT_CONTROL_PIN_MASK
|
||||
#undef INVERT_CONTROL_PIN_MASK
|
||||
#endif
|
||||
|
||||
#define INVERT_CONTROL_PIN_MASK B1110
|
||||
|
||||
// Note: default is #define IGNORE_CONTROL_PINS in config.h
|
||||
// uncomment to these lines to use them
|
||||
|
||||
/*
|
||||
#ifdef IGNORE_CONTROL_PINS
|
||||
#undef IGNORE_CONTROL_PINS
|
||||
#endif
|
||||
*/
|
||||
|
||||
#define CONTROL_RESET_PIN GPIO_NUM_34 // needs external pullup
|
||||
#define CONTROL_FEED_HOLD_PIN GPIO_NUM_36 // needs external pullup
|
||||
#define CONTROL_CYCLE_START_PIN GPIO_NUM_39 // needs external pullup
|
||||
|
||||
#define DEFAULT_STEP_PULSE_MICROSECONDS 3
|
||||
#define DEFAULT_STEPPER_IDLE_LOCK_TIME 255 // 255 = Keep steppers on
|
||||
|
||||
#define DEFAULT_STEPPING_INVERT_MASK 0 // uint8_t
|
||||
#define DEFAULT_DIRECTION_INVERT_MASK 0 // uint8_t
|
||||
#define DEFAULT_INVERT_ST_ENABLE 0 // boolean
|
||||
#define DEFAULT_INVERT_LIMIT_PINS 1 // boolean
|
||||
#define DEFAULT_INVERT_PROBE_PIN 0 // boolean
|
||||
|
||||
#define DEFAULT_STATUS_REPORT_MASK 1
|
||||
|
||||
#define DEFAULT_JUNCTION_DEVIATION 0.01 // mm
|
||||
#define DEFAULT_ARC_TOLERANCE 0.002 // mm
|
||||
#define DEFAULT_REPORT_INCHES 0 // false
|
||||
|
||||
#define DEFAULT_SOFT_LIMIT_ENABLE 0 // false
|
||||
#define DEFAULT_HARD_LIMIT_ENABLE 0 // false
|
||||
|
||||
#define DEFAULT_HOMING_ENABLE 1 // false
|
||||
#define DEFAULT_HOMING_DIR_MASK 3 // move positive dir Z,negative X,Y
|
||||
#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
|
||||
|
||||
#ifdef USE_SPINDLE_RELAY
|
||||
#define DEFAULT_SPINDLE_RPM_MAX 1.0 // must be 1 so PWM duty is alway 100% to prevent relay damage
|
||||
#else
|
||||
#define DEFAULT_SPINDLE_RPM_MAX 1000.0 // can be change to your spindle max
|
||||
#endif
|
||||
|
||||
#define DEFAULT_SPINDLE_RPM_MIN 0.0 // rpm
|
||||
|
||||
#define DEFAULT_LASER_MODE 0 // false
|
||||
|
||||
#define DEFAULT_X_STEPS_PER_MM 200.0
|
||||
#define DEFAULT_Y_STEPS_PER_MM 200.0
|
||||
#define DEFAULT_Z_STEPS_PER_MM 800.0
|
||||
|
||||
#define DEFAULT_X_MAX_RATE 8000.0 // mm/min
|
||||
#define DEFAULT_Y_MAX_RATE 8000.0 // mm/min
|
||||
#define DEFAULT_Z_MAX_RATE 3000.0 // mm/min
|
||||
|
||||
#define DEFAULT_X_ACCELERATION (200.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2
|
||||
#define DEFAULT_Y_ACCELERATION (200.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2
|
||||
#define DEFAULT_Z_ACCELERATION (100.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2
|
||||
|
||||
#define DEFAULT_X_MAX_TRAVEL 500.0 // mm NOTE: Must be a positive value.
|
||||
#define DEFAULT_Y_MAX_TRAVEL 500.0 // mm NOTE: Must be a positive value.
|
||||
#define DEFAULT_Z_MAX_TRAVEL 80.0 // mm NOTE: Must be a positive value.
|
@@ -2,7 +2,7 @@
|
||||
mpcnc.h
|
||||
Part of Grbl_ESP32
|
||||
|
||||
Pin assignments for the Buildlog.net MPCNC controller
|
||||
Pin assignments for the Buildlog.net MPCNC controller
|
||||
https://github.com/bdring/Grbl_ESP32_MPCNC_Controller
|
||||
|
||||
2019 - Bart Dring
|
||||
@@ -21,18 +21,12 @@
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Grbl_ESP32. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
|
||||
// // Pin assignments for the Buildlog.net MPCNC controller
|
||||
|
||||
// uncomment ONE of the following versions
|
||||
//#define V1P1
|
||||
#define V1P2 // works for V1.2.1 as well
|
||||
|
||||
#ifdef V1P1
|
||||
#define MACHINE_NAME "MACHINE_MPCNC_V1P1"
|
||||
#else // V1P2
|
||||
|
||||
#define MACHINE_NAME "MACHINE_MPCNC_V1P2"
|
||||
#endif
|
||||
|
||||
#define USE_GANGED_AXES // allow two motors on an axis
|
||||
|
||||
@@ -57,14 +51,10 @@
|
||||
//#define USE_SPINDLE_RELAY
|
||||
|
||||
#ifdef USE_SPINDLE_RELAY
|
||||
#ifdef V1P1
|
||||
#define SPINDLE_PWM_PIN GPIO_NUM_17
|
||||
#else // V1p2
|
||||
#define SPINDLE_PWM_PIN GPIO_NUM_2
|
||||
#endif
|
||||
#define SPINDLE_PWM_PIN GPIO_NUM_2
|
||||
#else
|
||||
#define SPINDLE_PWM_PIN GPIO_NUM_16
|
||||
#define SPINDLE_ENABLE_PIN GPIO_NUM_32
|
||||
#define SPINDLE_PWM_PIN GPIO_NUM_16
|
||||
#define SPINDLE_ENABLE_PIN GPIO_NUM_32
|
||||
#endif
|
||||
|
||||
// Note: Only uncomment this if USE_SPINDLE_RELAY is commented out.
|
||||
@@ -72,27 +62,23 @@
|
||||
//#define COOLANT_FLOOD_PIN GPIO_NUM_2
|
||||
//#define COOLANT_MIST_PIN GPIO_NUM_2
|
||||
|
||||
#ifdef V1P1 //v1p1
|
||||
#define X_LIMIT_PIN GPIO_NUM_2
|
||||
#else
|
||||
#define X_LIMIT_PIN GPIO_NUM_17
|
||||
#endif
|
||||
|
||||
#define X_LIMIT_PIN GPIO_NUM_17
|
||||
#define Y_LIMIT_PIN GPIO_NUM_4
|
||||
#define Z_LIMIT_PIN GPIO_NUM_15
|
||||
#define LIMIT_MASK B111
|
||||
|
||||
#ifdef V1P2
|
||||
|
||||
#ifndef ENABLE_SOFTWARE_DEBOUNCE // V1P2 does not have R/C filters
|
||||
#define ENABLE_SOFTWARE_DEBOUNCE
|
||||
#endif
|
||||
#define ENABLE_SOFTWARE_DEBOUNCE
|
||||
#endif
|
||||
|
||||
|
||||
#define PROBE_PIN GPIO_NUM_35
|
||||
|
||||
// The default value in config.h is wrong for this controller
|
||||
#ifdef INVERT_CONTROL_PIN_MASK
|
||||
#undef INVERT_CONTROL_PIN_MASK
|
||||
#undef INVERT_CONTROL_PIN_MASK
|
||||
#endif
|
||||
|
||||
#define INVERT_CONTROL_PIN_MASK B1110
|
||||
@@ -106,39 +92,39 @@
|
||||
#endif
|
||||
*/
|
||||
|
||||
#define CONTROL_RESET_PIN GPIO_NUM_34 // needs external pullup
|
||||
#define CONTROL_FEED_HOLD_PIN GPIO_NUM_36 // needs external pullup
|
||||
#define CONTROL_CYCLE_START_PIN GPIO_NUM_39 // needs external pullup
|
||||
#define CONTROL_RESET_PIN GPIO_NUM_34 // needs external pullup
|
||||
#define CONTROL_FEED_HOLD_PIN GPIO_NUM_36 // needs external pullup
|
||||
#define CONTROL_CYCLE_START_PIN GPIO_NUM_39 // needs external pullup
|
||||
|
||||
#define DEFAULT_STEP_PULSE_MICROSECONDS 3
|
||||
#define DEFAULT_STEPPER_IDLE_LOCK_TIME 255 // 255 = Keep steppers on
|
||||
#define DEFAULT_STEP_PULSE_MICROSECONDS 3
|
||||
#define DEFAULT_STEPPER_IDLE_LOCK_TIME 255 // 255 = Keep steppers on
|
||||
|
||||
#define DEFAULT_STEPPING_INVERT_MASK 0 // uint8_t
|
||||
#define DEFAULT_DIRECTION_INVERT_MASK 0 // uint8_t
|
||||
#define DEFAULT_INVERT_ST_ENABLE 0 // boolean
|
||||
#define DEFAULT_INVERT_LIMIT_PINS 1 // boolean
|
||||
#define DEFAULT_INVERT_PROBE_PIN 0 // boolean
|
||||
#define DEFAULT_STEPPING_INVERT_MASK 0 // uint8_t
|
||||
#define DEFAULT_DIRECTION_INVERT_MASK 0 // uint8_t
|
||||
#define DEFAULT_INVERT_ST_ENABLE 0 // boolean
|
||||
#define DEFAULT_INVERT_LIMIT_PINS 1 // boolean
|
||||
#define DEFAULT_INVERT_PROBE_PIN 0 // boolean
|
||||
|
||||
#define DEFAULT_STATUS_REPORT_MASK 1
|
||||
#define DEFAULT_STATUS_REPORT_MASK 1
|
||||
|
||||
#define DEFAULT_JUNCTION_DEVIATION 0.01 // mm
|
||||
#define DEFAULT_ARC_TOLERANCE 0.002 // mm
|
||||
#define DEFAULT_REPORT_INCHES 0 // false
|
||||
#define DEFAULT_JUNCTION_DEVIATION 0.01 // mm
|
||||
#define DEFAULT_ARC_TOLERANCE 0.002 // mm
|
||||
#define DEFAULT_REPORT_INCHES 0 // false
|
||||
|
||||
#define DEFAULT_SOFT_LIMIT_ENABLE 0 // false
|
||||
#define DEFAULT_HARD_LIMIT_ENABLE 0 // false
|
||||
|
||||
#define DEFAULT_HOMING_ENABLE 1 // false
|
||||
#define DEFAULT_HOMING_DIR_MASK 3 // move positive dir Z,negative X,Y
|
||||
#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
|
||||
#define DEFAULT_HOMING_ENABLE 1 // false
|
||||
#define DEFAULT_HOMING_DIR_MASK 3 // move positive dir Z,negative X,Y
|
||||
#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
|
||||
|
||||
#ifdef USE_SPINDLE_RELAY
|
||||
#define DEFAULT_SPINDLE_RPM_MAX 1.0 // must be 1 so PWM duty is alway 100% to prevent relay damage
|
||||
#define DEFAULT_SPINDLE_RPM_MAX 1.0 // must be 1 so PWM duty is alway 100% to prevent relay damage
|
||||
#else
|
||||
#define DEFAULT_SPINDLE_RPM_MAX 1000.0 // can be change to your spindle max
|
||||
#define DEFAULT_SPINDLE_RPM_MAX 1000.0 // can be change to your spindle max
|
||||
#endif
|
||||
|
||||
#define DEFAULT_SPINDLE_RPM_MIN 0.0 // rpm
|
@@ -49,62 +49,102 @@ static TaskHandle_t servosSyncTaskHandle = 0;
|
||||
#endif
|
||||
|
||||
void init_servos() {
|
||||
#ifdef SERVO_X_PIN
|
||||
// ======================== X Axis ===========================
|
||||
#ifdef SERVO_X_PIN
|
||||
grbl_msg_sendf(CLIENT_SERIAL, MSG_LEVEL_INFO, "X Servo range %4.3f to %4.3f", SERVO_X_RANGE_MIN, SERVO_X_RANGE_MAX);
|
||||
X_Servo_Axis.init();
|
||||
X_Servo_Axis.set_range(SERVO_X_RANGE_MIN, SERVO_X_RANGE_MAX);
|
||||
X_Servo_Axis.set_homing_type(SERVO_HOMING_OFF);
|
||||
X_Servo_Axis.set_disable_on_alarm(false);
|
||||
X_Servo_Axis.set_disable_with_steppers(false);
|
||||
#endif
|
||||
#ifdef SERVO_Y_PIN
|
||||
#ifdef SERVO_X_HOMING_TYPE
|
||||
X_Servo_Axis.set_homing_type(SERVO_X_HOMING_TYPE);
|
||||
#endif
|
||||
#ifdef SERVO_X_HOME_POS
|
||||
X_Servo_Axis.set_homing_position(SERVO_X_HOME_POS);
|
||||
#endif
|
||||
#ifdef SERVO_X_MPOS // value should be true or false
|
||||
X_Servo_Axis.set_use_mpos(SERVO_X_MPOS);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// ======================== Y Axis ===========================
|
||||
#ifdef SERVO_Y_PIN
|
||||
grbl_msg_sendf(CLIENT_SERIAL, MSG_LEVEL_INFO, "Y Servo range %4.3f to %4.3f", SERVO_Y_RANGE_MIN, SERVO_Y_RANGE_MAX);
|
||||
Y_Servo_Axis.init();
|
||||
Y_Servo_Axis.set_range(SERVO_Y_RANGE_MIN, SERVO_Y_RANGE_MAX);
|
||||
#endif
|
||||
#ifdef SERVO_Z_PIN
|
||||
#ifdef SERVO_Y_HOMING_TYPE
|
||||
Y_Servo_Axis.set_homing_type(SERVO_Y_HOMING_TYPE);
|
||||
#endif
|
||||
#ifdef SERVO_Y_HOME_POS
|
||||
Y_Servo_Axis.set_homing_position(SERVO_Y_HOME_POS);
|
||||
#endif
|
||||
#ifdef SERVO_Y_MPOS // value should be true or false
|
||||
Y_Servo_Axis.set_use_mpos(SERVO_Y_MPOS);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// ======================== Z Axis ===========================
|
||||
#ifdef SERVO_Z_PIN
|
||||
grbl_msg_sendf(CLIENT_SERIAL, MSG_LEVEL_INFO, "Z Servo range %4.3f to %4.3f", SERVO_Z_RANGE_MIN, SERVO_Z_RANGE_MAX);
|
||||
Z_Servo_Axis.init();
|
||||
Z_Servo_Axis.set_range(SERVO_Z_RANGE_MIN, SERVO_Z_RANGE_MAX);
|
||||
#ifdef SERVO_Z_HOMING_TYPE
|
||||
#ifdef SERVO_Z_HOMING_TYPE
|
||||
Z_Servo_Axis.set_homing_type(SERVO_Z_HOMING_TYPE);
|
||||
#endif
|
||||
#ifdef SERVO_Z_HOME_POS
|
||||
#endif
|
||||
#ifdef SERVO_Z_HOME_POS
|
||||
Z_Servo_Axis.set_homing_position(SERVO_Z_HOME_POS);
|
||||
#endif
|
||||
#ifdef SERVO_Z_MPOS // value should be true or false
|
||||
#endif
|
||||
#ifdef SERVO_Z_MPOS // value should be true or false
|
||||
Z_Servo_Axis.set_use_mpos(SERVO_Z_MPOS);
|
||||
#endif
|
||||
#endif
|
||||
#ifdef SERVO_A_PIN
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// ======================== A Axis ===========================
|
||||
#ifdef SERVO_A_PIN
|
||||
grbl_msg_sendf(CLIENT_SERIAL, MSG_LEVEL_INFO, "A Servo range %4.3f to %4.3f", SERVO_A_RANGE_MIN, SERVO_A_RANGE_MAX);
|
||||
A_Servo_Axis.init();
|
||||
A_Servo_Axis.set_range(SERVO_A_RANGE_MIN, SERVO_A_RANGE_MAX);
|
||||
A_Servo_Axis.set_homing_type(SERVO_HOMING_OFF);
|
||||
A_Servo_Axis.set_disable_on_alarm(false);
|
||||
A_Servo_Axis.set_disable_with_steppers(false);
|
||||
#endif
|
||||
#ifdef SERVO_B_PIN
|
||||
#ifdef SERVO_A_HOMING_TYPE
|
||||
A_Servo_Axis.set_homing_type(SERVO_A_HOMING_TYPE);
|
||||
#endif
|
||||
#ifdef SERVO_A_HOME_POS
|
||||
A_Servo_Axis.set_homing_position(SERVO_A_HOME_POS);
|
||||
#endif
|
||||
#ifdef SERVO_A_MPOS // value should be true or false
|
||||
A_Servo_Axis.set_use_mpos(SERVO_A_MPOS);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// ======================== B Axis ===========================
|
||||
#ifdef SERVO_B_PIN
|
||||
grbl_msg_sendf(CLIENT_SERIAL, MSG_LEVEL_INFO, "B Servo range %4.3f to %4.3f", SERVO_B_RANGE_MIN, SERVO_B_RANGE_MAX);
|
||||
B_Servo_Axis.init();
|
||||
B_Servo_Axis.set_range(SERVO_B_RANGE_MIN, SERVO_B_RANGE_MAX);
|
||||
#endif
|
||||
#ifdef SERVO_C_PIN
|
||||
#ifdef SERVO_B_HOMING_TYPE
|
||||
B_Servo_Axis.set_homing_type(SERVO_B_HOMING_TYPE);
|
||||
#endif
|
||||
#ifdef SERVO_B_HOME_POS
|
||||
B_Servo_Axis.set_homing_position(SERVO_B_HOME_POS);
|
||||
#endif
|
||||
#ifdef SERVO_B_MPOS // value should be true or false
|
||||
B_Servo_Axis.set_use_mpos(SERVO_B_MPOS);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// ======================== C Axis ===========================
|
||||
#ifdef SERVO_C_PIN
|
||||
grbl_msg_sendf(CLIENT_SERIAL, MSG_LEVEL_INFO, "C Servo range %4.3f to %4.3f", SERVO_C_RANGE_MIN, SERVO_C_RANGE_MAX);
|
||||
C_Servo_Axis.init();
|
||||
C_Servo_Axis.set_range(SERVO_C_RANGE_MIN, SERVO_C_RANGE_MAX);
|
||||
//C_Servo_Axis.set_homing_type(SERVO_HOMING_TARGET);
|
||||
//C_Servo_Axis.set_homing_position(SERVO_C_RANGE_MAX);
|
||||
#ifdef SERVO_C_HOMING_TYPE
|
||||
#ifdef SERVO_C_HOMING_TYPE
|
||||
C_Servo_Axis.set_homing_type(SERVO_C_HOMING_TYPE);
|
||||
#endif
|
||||
#ifdef SERVO_C_HOME_POS
|
||||
#endif
|
||||
#ifdef SERVO_C_HOME_POS
|
||||
C_Servo_Axis.set_homing_position(SERVO_C_HOME_POS);
|
||||
#endif
|
||||
#ifdef SERVO_C_MPOS // value should be true or false
|
||||
#endif
|
||||
#ifdef SERVO_C_MPOS // value should be true or false
|
||||
C_Servo_Axis.set_use_mpos(SERVO_C_MPOS);
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// setup a task that will calculate the determine and set the servo positions
|
||||
xTaskCreatePinnedToCore(servosSyncTask, // task
|
||||
"servosSyncTask", // name for task
|
||||
@@ -123,24 +163,24 @@ void servosSyncTask(void* pvParameters) {
|
||||
const TickType_t xServoFrequency = SERVO_TIMER_INT_FREQ; // in ticks (typically ms)
|
||||
xLastWakeTime = xTaskGetTickCount(); // Initialise the xLastWakeTime variable with the current time.
|
||||
while (true) { // don't ever return from this or the task dies
|
||||
#ifdef SERVO_X_PIN
|
||||
#ifdef SERVO_X_PIN
|
||||
X_Servo_Axis.set_location();
|
||||
#endif
|
||||
#ifdef SERVO_Y_PIN
|
||||
#endif
|
||||
#ifdef SERVO_Y_PIN
|
||||
Y_Servo_Axis.set_location();
|
||||
#endif
|
||||
#ifdef SERVO_Z_PIN
|
||||
#endif
|
||||
#ifdef SERVO_Z_PIN
|
||||
Z_Servo_Axis.set_location();
|
||||
#endif
|
||||
#ifdef SERVO_A_PIN
|
||||
#endif
|
||||
#ifdef SERVO_A_PIN
|
||||
A_Servo_Axis.set_location();
|
||||
#endif
|
||||
#ifdef SERVO_B_PIN
|
||||
#endif
|
||||
#ifdef SERVO_B_PIN
|
||||
B_Servo_Axis.set_location();
|
||||
#endif
|
||||
#ifdef SERVO_C_PIN
|
||||
#endif
|
||||
#ifdef SERVO_C_PIN
|
||||
C_Servo_Axis.set_location();
|
||||
#endif
|
||||
#endif
|
||||
vTaskDelayUntil(&xLastWakeTime, xServoFrequency);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user