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/>.
#pragma once
// 关闭 clang 格式
/*
mpcnc_v1p2.h Grbl_ESP32
的一部分
*/
// // Buildlog.net MPCNC 控制器的引脚分配
#define MACHINE_NAME “MPCNC_V1P2”
#define DEFAULT_HOMING_SQUARED_AXES(位(X_AXIS)|位(Y_AXIS))
#define X_STEP_PIN GPIO_NUM_12
#define X2_STEP_PIN GPIO_NUM_22 // 联动电机
#define Y_STEP_PIN GPIO_NUM_14
#define Y2_STEP_PIN GPIO_NUM_21 // 联动电机
#define Z_STEP_PIN GPIO_NUM_27
#define X_DIRECTION_PIN GPIO_NUM_26
#define X2_DIRECTION_PIN X_DIRECTION_PIN
#define Y_DIRECTION_PIN GPIO_NUM_25
#define Y2_DIRECTION_PIN Y_DIRECTION_PIN
#define Z_DIRECTION_PIN GPIO_NUM_33
// 可以注释掉以将 pin 用于其他功能
#define STEPPERS_DISABLE_PIN GPIO_NUM_13
// 注意:如果你使用 PWM 而不是继电器,你可以将 GPIO_NUM_2 映射到雾或洪水
//#define USE_SPINDLE_RELAY
#ifdef USE_SPINDLE_RELAY
#define SPINDLE_TYPE SpindleType::RELAY
#define SPINDLE_OUTPUT_PIN GPIO_NUM_2
#else
#define SPINDLE_TYPE SpindleType::PWM
#define SPINDLE_OUTPUT_PIN GPIO_NUM_16
#万一
// 注意:只有在 USE_SPINDLE_RELAY 被注释掉时才取消注释。
// 继电器可用于主轴或任一冷却液
//#define COOLANT_FLOOD_PIN GPIO_NUM_2
//#define COOLANT_MIST_PIN GPIO_NUM_2
#define X_LIMIT_PIN GPIO_NUM_17
#define Y_LIMIT_PIN GPIO_NUM_4
#define Z_LIMIT_PIN GPIO_NUM_15
#ifndef ENABLE_SOFTWARE_DEBOUNCE // V1P2 没有 R/C 过滤器
#define ENABLE_SOFTWARE_DEBOUNCE
#endif
#define PROBE_PIN GPIO_NUM_35
// config.h 中的默认值对于这个控制器是错误的
#ifdef INVERT_CONTROL_PIN_MASK
#undef INVERT_CONTROL_PIN_MASK
#endif
#define INVERT_CONTROL_PIN_MASK B1110
#define CONTROL_RESET_PIN GPIO_NUM_34 // 需要外部上拉
#define CONTROL_FEED_HOLD_PIN GPIO_NUM_36 // 需要外部上拉
#define CONTROL_CYCLE_START_PIN GPIO_NUM_39 // 需要外部上拉
#define DEFAULT_STEP_PULSE_MICROSECONDS 3
#define DEFAULT_STEPPER_IDLE_LOCK_TIME 255 // 255 = 保持步进器开启
#define DEFAULT_STEPPING_INVERT_MASK 0 // uint8_t
#define DEFAULT_DIRECTION_INVERT_MASK 0 // uint8_t
#define DEFAULT_INVERT_ST_ENABLE 0 // 布尔值
#define DEFAULT_INVERT_LIMIT_PINS 1 // 布尔值
#define DEFAULT_INVERT_PROBE_PIN 0 // 布尔值
#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 // 假
#define DEFAULT_HARD_LIMIT_ENABLE 0 // 假
#define DEFAULT_HOMING_ENABLE 1 // false
#define DEFAULT_HOMING_DIR_MASK 3 // 移动正方向 Z,负方向 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 // 毫秒(0- 65k)
#define DEFAULT_HOMING_PULLOFF 2.0 // 毫米
#ifdef USE_SPINDLE_RELAY
#define DEFAULT_SPINDLE_RPM_MAX 1.0 // 必须为 1,因此 PWM 占空比始终为 100% 以防止继电器损坏
#else
#define DEFAULT_SPINDLE_RPM_MAX 1000.0 // 可以更改为您的主轴最大值
#endif
#define DEFAULT_SPINDLE_RPM_MIN 0.0 // 转/分
#define DEFAULT_LASER_MODE 0 // 假
#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 // 毫米/分钟
#define DEFAULT_Y_MAX_RATE 8000.0 // 毫米/分钟
#define DEFAULT_Z_MAX_RATE 3000.0 // 毫米/分钟
#define DEFAULT_X_ACCELERATION 200.0 // 毫米/秒^2
#define DEFAULT_Y_ACCELERATION 200.0 // 毫米/秒^2
#define DEFAULT_Z_ACCELERATION 100.0 // 毫米/秒^2
#define DEFAULT_X_MAX_TRAVEL 500.0 // mm 注意:必须为正值。
#define DEFAULT_Y_MAX_TRAVEL 500.0 // mm 注意:必须为正值。
#define DEFAULT_Z_MAX_TRAVEL 80.0 // mm 注意:必须为正值。