mirror of
https://github.com/bdring/Grbl_Esp32.git
synced 2025-09-02 19:02:35 +02:00
WIP
This commit is contained in:
@@ -62,11 +62,13 @@ bool atc_ETS();
|
||||
bool set_ATC_open(bool open);
|
||||
void gc_exec_linef(bool sync_after, const char* format, ...);
|
||||
bool atc_manual_change();
|
||||
bool atc_ETS_dustoff();
|
||||
|
||||
void user_machine_init() {
|
||||
grbl_msg_sendf(CLIENT_SERIAL, MsgLevel::Info, "ATC Machine Init");
|
||||
|
||||
pinMode(ATC_RELEASE_PIN, OUTPUT);
|
||||
pinMode(ETS_DUST_OFF, OUTPUT);
|
||||
|
||||
// the tool setter
|
||||
tool[ETS_INDEX].mpos[X_AXIS] = 108;
|
||||
@@ -93,10 +95,10 @@ void user_machine_init() {
|
||||
}
|
||||
|
||||
bool user_tool_change(uint8_t new_tool) {
|
||||
bool spindle_was_on = false;
|
||||
bool was_incremental_mode = false; // started in G91 mode
|
||||
uint64_t spindle_spin_delay; // used to make sure spindle has fully spun down and up.
|
||||
float saved_mpos[MAX_N_AXIS] = {}; // the position before the tool change
|
||||
bool spindle_was_on = false;
|
||||
bool was_incremental_mode = false; // started in G91 mode
|
||||
uint64_t spindle_spin_delay; // used to make sure spindle has fully spun down and up.
|
||||
float saved_mpos[MAX_N_AXIS] = {}; // the position before the tool change
|
||||
|
||||
if (new_tool == current_tool) { // if no change, we are done
|
||||
grbl_msg_sendf(CLIENT_SERIAL, MsgLevel::Info, "ATC existing tool requested:%d", new_tool);
|
||||
@@ -128,7 +130,6 @@ bool user_tool_change(uint8_t new_tool) {
|
||||
if (current_time < spindle_spin_delay) {
|
||||
vTaskDelay(spindle_spin_delay - current_time);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// ============= Start of tool change ====================
|
||||
@@ -269,6 +270,8 @@ bool atc_ETS() {
|
||||
gc_exec_linef(true, "G53G0X%0.3fY%0.3f", tool[ETS_INDEX].mpos[X_AXIS], tool[ETS_INDEX].mpos[Y_AXIS]);
|
||||
}
|
||||
|
||||
atc_ETS_dustoff();
|
||||
|
||||
float wco = gc_state.coord_system[Z_AXIS] + gc_state.coord_offset[Z_AXIS] + gc_state.tool_length_offset;
|
||||
probe_to = tool[ETS_INDEX].mpos[Z_AXIS] - wco;
|
||||
|
||||
@@ -279,7 +282,11 @@ bool atc_ETS() {
|
||||
|
||||
// Was probe successful?
|
||||
if (sys.state == State::Alarm) {
|
||||
grbl_msg_sendf(CLIENT_SERIAL, MsgLevel::Info, "ATC Missing Tool?");
|
||||
if (sys_rt_exec_alarm == ExecAlarm::ProbeFailInitial) {
|
||||
grbl_msg_sendf(CLIENT_SERIAL, MsgLevel::Info, "ATC Probe Switch Error");
|
||||
} else {
|
||||
grbl_msg_sendf(CLIENT_SERIAL, MsgLevel::Info, "ATC Missing Tool?");
|
||||
}
|
||||
return false; // fail
|
||||
}
|
||||
|
||||
@@ -310,6 +317,13 @@ bool set_ATC_open(bool open) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// give a squirt of air to clear top of Tool Setter
|
||||
bool atc_ETS_dustoff() {
|
||||
digitalWrite(ETS_DUST_OFF, HIGH);
|
||||
gc_exec_linef(true, "G4P%0.2f", 0.250);
|
||||
digitalWrite(ETS_DUST_OFF, LOW);
|
||||
}
|
||||
|
||||
bool atc_manual_change() {
|
||||
// if (gc_state.modal.spindle != SpindleState::Disable) {
|
||||
// grbl_msg_sendf(CLIENT_SERIAL, MsgLevel::Info, "Cannot use ATC with spindle on");
|
||||
|
@@ -96,10 +96,13 @@
|
||||
#endif
|
||||
#define INVERT_CONTROL_PIN_MASK B0
|
||||
|
||||
// 5V output CNC module in socket #4
|
||||
// https://github.com/bdring/6-Pack_CNC_Controller/wiki/4x-5V-Buffered-Output-Module
|
||||
#define ATC_RELEASE_PIN GPIO_NUM_14
|
||||
#define COOLANT_MIST_PIN GPIO_NUM_13
|
||||
// Quad MOSFET module on socket #4
|
||||
// https://github.com/bdring/6-Pack_CNC_Controller/wiki/Quad-MOSFET-Module
|
||||
#define ATC_RELEASE_PIN GPIO_NUM_14
|
||||
#define ATC_DUST_OFF GPIO_NUM_13
|
||||
#define ETS_DUST_OFF GPIO_NUM_15
|
||||
// GPIO_NUM_12
|
||||
|
||||
//#define SPINDLE_OUTPUT_PIN GPIO_NUM_14 // relay as spindle on module socket #2
|
||||
|
||||
#define DEFAULT_SPINDLE_DELAY_SPINUP 2.25
|
||||
|
Reference in New Issue
Block a user