From 805e4e9181005c8505176c365e4ed448c8494e38 Mon Sep 17 00:00:00 2001 From: KGN Date: Mon, 16 Dec 2024 09:16:29 -0500 Subject: [PATCH 1/8] Potential revert of $G changes --- .../controllers/Grblhal/GrblHalController.js | 31 ++++++++++++------- src/server/controllers/Grblhal/constants.js | 2 +- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/server/controllers/Grblhal/GrblHalController.js b/src/server/controllers/Grblhal/GrblHalController.js index c3e7a956f..b6ea00674 100644 --- a/src/server/controllers/Grblhal/GrblHalController.js +++ b/src/server/controllers/Grblhal/GrblHalController.js @@ -154,7 +154,7 @@ class GrblHalController { actionMask = { queryParserState: { state: false, // wait for a message containing the current G-code parser modal state - // the firmware doesn't send ok to the parserstate + reply: false // wait for an `ok` or `error` response }, queryStatusReport: false, @@ -675,6 +675,16 @@ class GrblHalController { }); this.runner.on('ok', (res) => { + if (this.actionMask.queryParserState.reply) { + if (this.actionMask.replyParserState) { + this.actionMask.replyParserState = false; + this.emit('serialport:read', res.raw); + } + this.actionMask.queryParserState.reply = false; + + return; + } + const { hold, sent, received } = this.sender.state; if (this.workflow.state === WORKFLOW_STATE_RUNNING) { this.emit('serialport:read', res.raw); @@ -707,6 +717,7 @@ class GrblHalController { this.feeder.next(); }); + this.runner.on('error', (res) => { // Only pause on workflow error with hold + sender halt const isRunning = this.workflow.isRunning(); @@ -866,10 +877,10 @@ class GrblHalController { this.actionMask.queryParserState.state = false; + this.actionMask.queryParserState.reply = true; if (this.actionMask.replyParserState) { this.emit('serialport:read', res.raw); - this.actionMask.replyParserState = false; } }); @@ -1010,20 +1021,20 @@ class GrblHalController { if (timespan >= toleranceTime) { log.debug(`Continue parser state query: timespan=${timespan}ms`); this.actionMask.queryParserState.state = false; + this.actionMask.queryParserState.reply = false; } } - } else { // if running, don't send query - return; } - if (this.actionMask.queryParserState.state) { + if (this.actionMask.queryParserState.state || this.actionMask.queryParserState.reply) { return; } if (this.isOpen()) { this.actionMask.queryParserState.state = true; + this.actionMask.queryParserState.reply = false; this.actionTime.queryParserState = now; - this.connection.write(`${GRBLHAL_REALTIME_COMMANDS.GCODE_REPORT}`); // $G equivalent + this.connection.write('$G\n'); // $G equivalent } }, 500); @@ -1210,6 +1221,7 @@ class GrblHalController { clearActionValues() { this.actionMask.queryParserState.state = false; + this.actionMask.queryParserState.reply = false; this.actionMask.queryStatusReport = false; this.actionMask.replyParserState = false; this.actionMask.replyStatusReport = false; @@ -2178,13 +2190,10 @@ class GrblHalController { } const cmd = data.trim(); - - if (cmd === '$G') { // the command you must manually type for grblHAL gcode report is not $G, but x83 - data = '\x83'; - } + console.log(cmd); this.actionMask.replyStatusReport = (cmd === GRBLHAL_REALTIME_COMMANDS.STATUS_REPORT) || (cmd === GRBLHAL_REALTIME_COMMANDS.COMPLETE_REALTIME_REPORT) || this.actionMask.replyStatusReport; - this.actionMask.replyParserState = (cmd === '$G') || this.actionMask.replyParserState; + this.actionMask.replyParserState = (cmd === GRBLHAL_REALTIME_COMMANDS.GCODE_REPORT) || this.actionMask.replyParserState; this.emit('serialport:write', data, { ...context, diff --git a/src/server/controllers/Grblhal/constants.js b/src/server/controllers/Grblhal/constants.js index a563ccfdd..0dc7ee159 100644 --- a/src/server/controllers/Grblhal/constants.js +++ b/src/server/controllers/Grblhal/constants.js @@ -45,7 +45,7 @@ export const GRBLHAL_REALTIME_COMMANDS = { VIRTUAL_STOP_TOGGLE: '\x88', TOOL_CHANGE_ACK: '\xA3', ERR_CLEAR: 'ErrClear', - GCODE_REPORT: '\x83', + GCODE_REPORT: '$G', }; // https://github.com/grbl/grbl/wiki/Configuring-Grbl-v0.9 From 87b79958d448cd77566cb72dac20e5ddfe7aabe3 Mon Sep 17 00:00:00 2001 From: KGN Date: Mon, 16 Dec 2024 09:28:12 -0500 Subject: [PATCH 2/8] Spindle grblHAL alteration for start from line. --- .../controllers/Grblhal/GrblHalController.js | 32 +++++-------------- 1 file changed, 8 insertions(+), 24 deletions(-) diff --git a/src/server/controllers/Grblhal/GrblHalController.js b/src/server/controllers/Grblhal/GrblHalController.js index b6ea00674..0d8bddc12 100644 --- a/src/server/controllers/Grblhal/GrblHalController.js +++ b/src/server/controllers/Grblhal/GrblHalController.js @@ -488,7 +488,6 @@ class GrblHalController { const count = this.sender.incrementToolChanges(); setTimeout(() => { - console.log('This is a callback'); // Emit the current state so latest tool info is available this.runner.setTool(tool?.[2]); // set tool in runner state this.emit('controller:state', GRBLHAL, this.state, tool?.[2]); // set tool in redux @@ -503,11 +502,11 @@ class GrblHalController { } } - const passthroughM6 = _.get(this.toolChangeContext, 'passthrough', false); - if (!passthroughM6 || toolChangeOption === 'Code') { + const passthroughM6 = store.get('preferences.toolChange.passthrough', false); + if (!passthroughM6) { line = line.replace('M6', '(M6)'); } - //line = line.replace(`${tool?.[0]}`, `(${tool?.[0]})`); + line = line.replace(`${tool?.[0]}`, `(${tool?.[0]})`); } /** @@ -717,7 +716,6 @@ class GrblHalController { this.feeder.next(); }); - this.runner.on('error', (res) => { // Only pause on workflow error with hold + sender halt const isRunning = this.workflow.isRunning(); @@ -1034,7 +1032,7 @@ class GrblHalController { this.actionMask.queryParserState.state = true; this.actionMask.queryParserState.reply = false; this.actionTime.queryParserState = now; - this.connection.write('$G\n'); // $G equivalent + this.connection.write(`${GRBLHAL_REALTIME_COMMANDS.GCODE_REPORT}`); // $G equivalent } }, 500); @@ -1336,7 +1334,7 @@ class GrblHalController { // We set controller ready if version found setTimeout(async () => { if (this.connection) { - await delay(300); + await delay(100); this.connection.writeImmediate(String.fromCharCode(0x87)); this.connection.write('$I\n'); } @@ -1348,7 +1346,6 @@ class GrblHalController { return; } if (this.connection) { - this.connection.writeImmediate(String.fromCharCode(0x87)); this.connection.write('$I\n'); } counter--; @@ -1619,6 +1616,7 @@ class GrblHalController { modalGCode.push(setModalGcode); modalGCode.push('G4 P1'); modalGCode.push('%_GCODE_START'); + // console.log(modalGCode); // Fast forward sender to line this.sender.setStartLine(lineToStartFrom); @@ -2122,7 +2120,6 @@ class GrblHalController { }, 'toolchange:context': () => { const [context] = args; - console.log(context); this.toolChangeContext = context; }, 'toolchange:pre': () => { @@ -2190,7 +2187,6 @@ class GrblHalController { } const cmd = data.trim(); - console.log(cmd); this.actionMask.replyStatusReport = (cmd === GRBLHAL_REALTIME_COMMANDS.STATUS_REPORT) || (cmd === GRBLHAL_REALTIME_COMMANDS.COMPLETE_REALTIME_REPORT) || this.actionMask.replyStatusReport; this.actionMask.replyParserState = (cmd === GRBLHAL_REALTIME_COMMANDS.GCODE_REPORT) || this.actionMask.replyParserState; @@ -2226,22 +2222,10 @@ class GrblHalController { /* Runs specified code segment on M6 command before alerting the UI as to what's happened */ runPreChangeHook(comment = '') { - let { preHook = '', postHook = '', skipDialog = false } = this.toolChangeContext; + let { preHook } = this.toolChangeContext || ''; preHook = `G4 P1\n${preHook}`; const block = this.convertGcodeToArray(preHook); - - // If we're skipping dialog, combine both blocks and append a toolchange end so the program continues as expected - if (skipDialog) { - block.push('G4 P1'); - block.push(...this.convertGcodeToArray(postHook)); - block.push(POSTHOOK_COMPLETE); - } - console.log(block); - - // If we're not skipping, add a prehook complete to show dialog to continue toolchange operation - if (!skipDialog) { - block.push(`${PREHOOK_COMPLETE} ;${comment}`); - } + block.push(`${PREHOOK_COMPLETE} ;${comment}`); this.command('gcode', block); } From f4c7a1b757a2fa614a77b965d42a460f64e587ed Mon Sep 17 00:00:00 2001 From: KGN Date: Mon, 16 Dec 2024 09:37:45 -0500 Subject: [PATCH 3/8] Potential revert --- .../controllers/Grblhal/GrblHalController.js | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/server/controllers/Grblhal/GrblHalController.js b/src/server/controllers/Grblhal/GrblHalController.js index 0d8bddc12..cff851158 100644 --- a/src/server/controllers/Grblhal/GrblHalController.js +++ b/src/server/controllers/Grblhal/GrblHalController.js @@ -375,12 +375,12 @@ class GrblHalController { return; } - if (this.runner.isAlarm()) { + /*if (this.runner.isAlarm()) { this.feeder.reset(); this.emit('workflow:state', this.workflow.state); // Propogate alarm code to UI log.warn('Stopped sending G-code commands in Alarm mode'); return; - } + }*/ line = String(line).trim(); if (line.length === 0) { @@ -502,11 +502,11 @@ class GrblHalController { } } - const passthroughM6 = store.get('preferences.toolChange.passthrough', false); - if (!passthroughM6) { + const passthroughM6 = _.get(this.toolChangeContext, 'passthrough', false); + if (!passthroughM6 || toolChangeOption === 'Code') { line = line.replace('M6', '(M6)'); } - line = line.replace(`${tool?.[0]}`, `(${tool?.[0]})`); + //line = line.replace(`${tool?.[0]}`, `(${tool?.[0]})`); } /** @@ -1334,7 +1334,7 @@ class GrblHalController { // We set controller ready if version found setTimeout(async () => { if (this.connection) { - await delay(100); + await delay(300); this.connection.writeImmediate(String.fromCharCode(0x87)); this.connection.write('$I\n'); } @@ -1346,6 +1346,7 @@ class GrblHalController { return; } if (this.connection) { + this.connection.writeImmediate(String.fromCharCode(0x87)); this.connection.write('$I\n'); } counter--; @@ -2222,10 +2223,21 @@ class GrblHalController { /* Runs specified code segment on M6 command before alerting the UI as to what's happened */ runPreChangeHook(comment = '') { - let { preHook } = this.toolChangeContext || ''; + let { preHook = '', postHook = '', skipDialog = false } = this.toolChangeContext; preHook = `G4 P1\n${preHook}`; const block = this.convertGcodeToArray(preHook); - block.push(`${PREHOOK_COMPLETE} ;${comment}`); + + // If we're skipping dialog, combine both blocks and append a toolchange end so the program continues as expected + if (skipDialog) { + block.push('G4 P1'); + block.push(...this.convertGcodeToArray(postHook)); + block.push(POSTHOOK_COMPLETE); + } + + // If we're not skipping, add a prehook complete to show dialog to continue toolchange operation + if (!skipDialog) { + block.push(`${PREHOOK_COMPLETE} ;${comment}`); + } this.command('gcode', block); } From dda72cdca242f5d5e3aeda9639a783e6a0aeb821 Mon Sep 17 00:00:00 2001 From: KGN Date: Mon, 16 Dec 2024 10:12:30 -0500 Subject: [PATCH 4/8] Seems working, testing last couple things --- README.md | 12 ++++++++++++ src/server/controllers/Grblhal/GrblHalController.js | 2 +- src/server/controllers/Grblhal/constants.js | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 867b6331b..11c9482cf 100644 --- a/README.md +++ b/README.md @@ -110,6 +110,18 @@ gSender is also designed in a way that it can be run locally on your computer br ## 🕣 Development History +### 1.4.11 (December 16th) +- Added "Skip Dialog" option to code toolchange which combines both blocks and skips the "Continue" dialog +- Diagnostics now generates a zip file which includes the original diagnostic PDF, a copy of current gSender settings, and any loaded toolpath for better support. +- You are now able to update EEPROM values using the firmware tool when in Alarm state. +- Start from line now starts the spindle after the Z safe movement but before X and Y. +- Fix for A axis jog keybinds not working on standard GRBL controller. +- Reverted HAL changes $G using the realtime alternative to reduce instances of error 1 since it was not playing nicely with the new line parser. +- Fix for available axes and axes count not being emitted properly when disconnecting and reconnecting over ethernet. +- Auto Zero touch plate probing now properly converts bit diameter when using imperial preferred units and a specific bit size. +- Available ports are now case insensitive when matching known controller types (Thanks Dymk!) +- Macros no longer overflow the macro widget. + ### 1.4.10 (October 28, 2024) - Jog no longer sends double jog commands on touch devices - $G output emitted to UI when connected using grblHAL and manually sent diff --git a/src/server/controllers/Grblhal/GrblHalController.js b/src/server/controllers/Grblhal/GrblHalController.js index cff851158..894e6b91a 100644 --- a/src/server/controllers/Grblhal/GrblHalController.js +++ b/src/server/controllers/Grblhal/GrblHalController.js @@ -1124,7 +1124,7 @@ class GrblHalController { async initController() { // $13=0 (report in mm) // $13=1 (report in inches) - this.writeln('$$'); + this.writeln('$$\n'); await delay(50); this.event.trigger(CONTROLLER_READY); } diff --git a/src/server/controllers/Grblhal/constants.js b/src/server/controllers/Grblhal/constants.js index 0dc7ee159..c15236015 100644 --- a/src/server/controllers/Grblhal/constants.js +++ b/src/server/controllers/Grblhal/constants.js @@ -45,7 +45,7 @@ export const GRBLHAL_REALTIME_COMMANDS = { VIRTUAL_STOP_TOGGLE: '\x88', TOOL_CHANGE_ACK: '\xA3', ERR_CLEAR: 'ErrClear', - GCODE_REPORT: '$G', + GCODE_REPORT: '$G\n', }; // https://github.com/grbl/grbl/wiki/Configuring-Grbl-v0.9 From 35e3d8ae01d84289e224e90513cd740c03cf4b32 Mon Sep 17 00:00:00 2001 From: KGN Date: Mon, 16 Dec 2024 10:18:27 -0500 Subject: [PATCH 5/8] Updated readme --- README.md | 3 +++ src/app/containers/Preferences/About/releases.json | 2 +- src/server/controllers/Grblhal/GrblHalController.js | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 11c9482cf..2cacaf471 100644 --- a/README.md +++ b/README.md @@ -113,6 +113,7 @@ gSender is also designed in a way that it can be run locally on your computer br ### 1.4.11 (December 16th) - Added "Skip Dialog" option to code toolchange which combines both blocks and skips the "Continue" dialog - Diagnostics now generates a zip file which includes the original diagnostic PDF, a copy of current gSender settings, and any loaded toolpath for better support. +- Continuous jogging now bitwise compares homing location to avoid non-XYZ axes causing invalid corner detection. - You are now able to update EEPROM values using the firmware tool when in Alarm state. - Start from line now starts the spindle after the Z safe movement but before X and Y. - Fix for A axis jog keybinds not working on standard GRBL controller. @@ -121,6 +122,8 @@ gSender is also designed in a way that it can be run locally on your computer br - Auto Zero touch plate probing now properly converts bit diameter when using imperial preferred units and a specific bit size. - Available ports are now case insensitive when matching known controller types (Thanks Dymk!) - Macros no longer overflow the macro widget. +- Tweak to 30X30 machine profile for missing acceleration change for $111. +- Fixed rare situation where connecting to grblHAL controller, disconnecting, and reconnecting to GRBL controller caused invalid laser/spindle mode toggle behaviour. ### 1.4.10 (October 28, 2024) - Jog no longer sends double jog commands on touch devices diff --git a/src/app/containers/Preferences/About/releases.json b/src/app/containers/Preferences/About/releases.json index 005b998f1..1320c6a54 100644 --- a/src/app/containers/Preferences/About/releases.json +++ b/src/app/containers/Preferences/About/releases.json @@ -1 +1 @@ -["### 1.4.10 (October 28, 2024)","- Jog no longer sends double jog commands on touch devices","- $G output emitted to UI when connected using grblHAL and manually sent","- Altmill profile updated $103 A steps to account for compiled microstepping","- SLB profiles updated with new values","- Updated defaults on Mk2, Mk1, and MillOne profiles","- AutoZero touch routine updated when running specific diameter bits to be more accurate, and retract distance on Z slightly increased for non-tip routines.","- Rotary toggle no longer updates values when cancelled on grblHAL.","- Changed Spindle/Laser toggle behaviour for when to use gSender settings vs EEPROM settings for laser offset and spindle/laser min and max.","- Custom theme visualizer background now saving correctly.","- Altmill profile now at top of profiles with other Sienci Machines","### 1.4.9 (August 5, 2024)","- Fix for time remaining converting timestamps incorrectly","- Firmware groups now always emitted to UI on connection","- Reduced situations where error 1 should appear on connection or homing","- Alterations to Altmill default profile for Z acceleration","- Enabling rotary mode for grblHAL now disables homing, and disabling rotary mode restores your previous homing value","- Updated Longmill HAL A axis travel resolution for compiled microstepping value","- Main window should no longer be focused on load file dialog","### 1.4.8 (July 11, 2024)","- Added Altmill profiles","- Start from line now also accounts for A axis if file contains those movements","- Fixed situation where progress bar could be greater than 100%","- Some time estimation alterations specifically when pausing jobs","- Fixed issue where console copy prompt stated limit other than 50","- Spindle delay on start is now a configurable value in ms","- Changes to ethernet behaviour to allow reconnection in more cases the board closes the connection early","- Maintenance tasks that are due now prompt the user to take care of them on application start","- Changed max value for spindle RPM in rotary surfacing tool","- Fix for rotary tab gaining focus and preventing keybinds from working","- Changes to console scrollbar size and sensitivity","- Setting A-axis zero now updates visualizer rotation correctly","- Homing enabled in diagnostics now correct for SLB","- A-axis DRO with $13 enabled now no longer converts incorrectly","- Relative Go To now correctly uses input values for all 3 axes","- Alarm 14 and 17 now reset and unlock instead of just unlock using UI buttons","- Firmware tool inputs now disabled in Alarm state","- Added preference for end of job modal to not appear","- Fixed crash on toggling lightweight mode","- End of probe code now correctly restore G90/G91 to previous state"] \ No newline at end of file +["### 1.4.11 (December 16th)","- Added \"Skip Dialog\" option to code toolchange which combines both blocks and skips the \"Continue\" dialog","- Diagnostics now generates a zip file which includes the original diagnostic PDF, a copy of current gSender settings, and any loaded toolpath for better support.","- You are now able to update EEPROM values using the firmware tool when in Alarm state.","- Start from line now starts the spindle after the Z safe movement but before X and Y.","- Fix for A axis jog keybinds not working on standard GRBL controller.","- Reverted HAL changes $G using the realtime alternative to reduce instances of error 1 since it was not playing nicely with the new line parser.","- Fix for available axes and axes count not being emitted properly when disconnecting and reconnecting over ethernet.","- Auto Zero touch plate probing now properly converts bit diameter when using imperial preferred units and a specific bit size.","- Available ports are now case insensitive when matching known controller types (Thanks Dymk!)","- Macros no longer overflow the macro widget.","### 1.4.10 (October 28, 2024)","- Jog no longer sends double jog commands on touch devices","- $G output emitted to UI when connected using grblHAL and manually sent","- Altmill profile updated $103 A steps to account for compiled microstepping","- SLB profiles updated with new values","- Updated defaults on Mk2, Mk1, and MillOne profiles","- AutoZero touch routine updated when running specific diameter bits to be more accurate, and retract distance on Z slightly increased for non-tip routines.","- Rotary toggle no longer updates values when cancelled on grblHAL.","- Changed Spindle/Laser toggle behaviour for when to use gSender settings vs EEPROM settings for laser offset and spindle/laser min and max.","- Custom theme visualizer background now saving correctly.","- Altmill profile now at top of profiles with other Sienci Machines","### 1.4.9 (August 5, 2024)","- Fix for time remaining converting timestamps incorrectly","- Firmware groups now always emitted to UI on connection","- Reduced situations where error 1 should appear on connection or homing","- Alterations to Altmill default profile for Z acceleration","- Enabling rotary mode for grblHAL now disables homing, and disabling rotary mode restores your previous homing value","- Updated Longmill HAL A axis travel resolution for compiled microstepping value","- Main window should no longer be focused on load file dialog"] \ No newline at end of file diff --git a/src/server/controllers/Grblhal/GrblHalController.js b/src/server/controllers/Grblhal/GrblHalController.js index 894e6b91a..eb2318cd3 100644 --- a/src/server/controllers/Grblhal/GrblHalController.js +++ b/src/server/controllers/Grblhal/GrblHalController.js @@ -1124,7 +1124,7 @@ class GrblHalController { async initController() { // $13=0 (report in mm) // $13=1 (report in inches) - this.writeln('$$\n'); + this.writeln('$$'); await delay(50); this.event.trigger(CONTROLLER_READY); } @@ -1335,7 +1335,7 @@ class GrblHalController { setTimeout(async () => { if (this.connection) { await delay(300); - this.connection.writeImmediate(String.fromCharCode(0x87)); + this.connection.writeImmediate(`${String.fromCharCode(0x87)}\n`); this.connection.write('$I\n'); } let counter = 3; From edfa5946b36a5fc0e98df0db6461db2c5b869ffa Mon Sep 17 00:00:00 2001 From: KGN Date: Mon, 16 Dec 2024 10:36:48 -0500 Subject: [PATCH 6/8] Slow down on toolchange emit --- src/server/controllers/Grblhal/GrblHalController.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/server/controllers/Grblhal/GrblHalController.js b/src/server/controllers/Grblhal/GrblHalController.js index eb2318cd3..ee3ff41d6 100644 --- a/src/server/controllers/Grblhal/GrblHalController.js +++ b/src/server/controllers/Grblhal/GrblHalController.js @@ -287,14 +287,14 @@ class GrblHalController { log.debug('Finished Pre-hook'); this.feeder.hold({ data: '%toolchange' }); this.emit('toolchange:preHookComplete', commentString); - return 'G4 P0.5'; + return 'G4 P1'; } if (line === POSTHOOK_COMPLETE) { log.debug('Finished Post-hook, resuming program'); setTimeout(() => { this.workflow.resume(); }, 500); - return 'G4 P0.5'; + return 'G4 P1'; } if (line === PAUSE_START) { log.debug('Found M0/M1, pausing program'); @@ -482,8 +482,10 @@ class GrblHalController { this.workflow.pause({ data: 'M6', comment: commentString }); if (toolChangeOption === 'Code') { - this.emit('toolchange:start'); - this.runPreChangeHook(commentString); + setTimeout(() => { + this.emit('toolchange:start'); + this.runPreChangeHook(commentString); + }, 500); } else { const count = this.sender.incrementToolChanges(); From 2f74575b66a1b66d6d1aecacfbd751bf5286dd32 Mon Sep 17 00:00:00 2001 From: KGN Date: Mon, 16 Dec 2024 10:37:35 -0500 Subject: [PATCH 7/8] Smaller buffer size --- src/app/containers/Preferences/About/releases.json | 2 +- src/server/controllers/Grblhal/GrblHalController.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/containers/Preferences/About/releases.json b/src/app/containers/Preferences/About/releases.json index 1320c6a54..321d861a6 100644 --- a/src/app/containers/Preferences/About/releases.json +++ b/src/app/containers/Preferences/About/releases.json @@ -1 +1 @@ -["### 1.4.11 (December 16th)","- Added \"Skip Dialog\" option to code toolchange which combines both blocks and skips the \"Continue\" dialog","- Diagnostics now generates a zip file which includes the original diagnostic PDF, a copy of current gSender settings, and any loaded toolpath for better support.","- You are now able to update EEPROM values using the firmware tool when in Alarm state.","- Start from line now starts the spindle after the Z safe movement but before X and Y.","- Fix for A axis jog keybinds not working on standard GRBL controller.","- Reverted HAL changes $G using the realtime alternative to reduce instances of error 1 since it was not playing nicely with the new line parser.","- Fix for available axes and axes count not being emitted properly when disconnecting and reconnecting over ethernet.","- Auto Zero touch plate probing now properly converts bit diameter when using imperial preferred units and a specific bit size.","- Available ports are now case insensitive when matching known controller types (Thanks Dymk!)","- Macros no longer overflow the macro widget.","### 1.4.10 (October 28, 2024)","- Jog no longer sends double jog commands on touch devices","- $G output emitted to UI when connected using grblHAL and manually sent","- Altmill profile updated $103 A steps to account for compiled microstepping","- SLB profiles updated with new values","- Updated defaults on Mk2, Mk1, and MillOne profiles","- AutoZero touch routine updated when running specific diameter bits to be more accurate, and retract distance on Z slightly increased for non-tip routines.","- Rotary toggle no longer updates values when cancelled on grblHAL.","- Changed Spindle/Laser toggle behaviour for when to use gSender settings vs EEPROM settings for laser offset and spindle/laser min and max.","- Custom theme visualizer background now saving correctly.","- Altmill profile now at top of profiles with other Sienci Machines","### 1.4.9 (August 5, 2024)","- Fix for time remaining converting timestamps incorrectly","- Firmware groups now always emitted to UI on connection","- Reduced situations where error 1 should appear on connection or homing","- Alterations to Altmill default profile for Z acceleration","- Enabling rotary mode for grblHAL now disables homing, and disabling rotary mode restores your previous homing value","- Updated Longmill HAL A axis travel resolution for compiled microstepping value","- Main window should no longer be focused on load file dialog"] \ No newline at end of file +["### 1.4.11 (December 16th)","- Added \"Skip Dialog\" option to code toolchange which combines both blocks and skips the \"Continue\" dialog","- Diagnostics now generates a zip file which includes the original diagnostic PDF, a copy of current gSender settings, and any loaded toolpath for better support.","- Continuous jogging now bitwise compares homing location to avoid non-XYZ axes causing invalid corner detection.","- You are now able to update EEPROM values using the firmware tool when in Alarm state.","- Start from line now starts the spindle after the Z safe movement but before X and Y.","- Fix for A axis jog keybinds not working on standard GRBL controller.","- Reverted HAL changes $G using the realtime alternative to reduce instances of error 1 since it was not playing nicely with the new line parser.","- Fix for available axes and axes count not being emitted properly when disconnecting and reconnecting over ethernet.","- Auto Zero touch plate probing now properly converts bit diameter when using imperial preferred units and a specific bit size.","- Available ports are now case insensitive when matching known controller types (Thanks Dymk!)","- Macros no longer overflow the macro widget.","- Tweak to 30X30 machine profile for missing acceleration change for $111.","- Fixed rare situation where connecting to grblHAL controller, disconnecting, and reconnecting to GRBL controller caused invalid laser/spindle mode toggle behaviour.","### 1.4.10 (October 28, 2024)","- Jog no longer sends double jog commands on touch devices","- $G output emitted to UI when connected using grblHAL and manually sent","- Altmill profile updated $103 A steps to account for compiled microstepping","- SLB profiles updated with new values","- Updated defaults on Mk2, Mk1, and MillOne profiles","- AutoZero touch routine updated when running specific diameter bits to be more accurate, and retract distance on Z slightly increased for non-tip routines.","- Rotary toggle no longer updates values when cancelled on grblHAL.","- Changed Spindle/Laser toggle behaviour for when to use gSender settings vs EEPROM settings for laser offset and spindle/laser min and max.","- Custom theme visualizer background now saving correctly.","- Altmill profile now at top of profiles with other Sienci Machines","### 1.4.9 (August 5, 2024)","- Fix for time remaining converting timestamps incorrectly","- Firmware groups now always emitted to UI on connection","- Reduced situations where error 1 should appear on connection or homing","- Alterations to Altmill default profile for Z acceleration","- Enabling rotary mode for grblHAL now disables homing, and disabling rotary mode restores your previous homing value","- Updated Longmill HAL A axis travel resolution for compiled microstepping value","- Main window should no longer be focused on load file dialog"] \ No newline at end of file diff --git a/src/server/controllers/Grblhal/GrblHalController.js b/src/server/controllers/Grblhal/GrblHalController.js index ee3ff41d6..7d4c9a64c 100644 --- a/src/server/controllers/Grblhal/GrblHalController.js +++ b/src/server/controllers/Grblhal/GrblHalController.js @@ -404,7 +404,7 @@ class GrblHalController { // Sender this.sender = new Sender(SP_TYPE_CHAR_COUNTING, { // Deduct the buffer size to prevent from buffer overrun - bufferSize: (1024 - 28), // TODO: Parse this out from OPT + bufferSize: (1024 - 100), // TODO: Parse this out from OPT dataFilter: (line, context) => { // Remove comments that start with a semicolon `;` let commentMatcher = /\s*;.*/g; From a95cf3042b62d8092a65b3289e00e7699743c7c5 Mon Sep 17 00:00:00 2001 From: KGN Date: Mon, 16 Dec 2024 10:59:11 -0500 Subject: [PATCH 8/8] Slow down toolchange timing --- src/server/controllers/Grblhal/GrblHalController.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/controllers/Grblhal/GrblHalController.js b/src/server/controllers/Grblhal/GrblHalController.js index 7d4c9a64c..3de016407 100644 --- a/src/server/controllers/Grblhal/GrblHalController.js +++ b/src/server/controllers/Grblhal/GrblHalController.js @@ -293,7 +293,7 @@ class GrblHalController { log.debug('Finished Post-hook, resuming program'); setTimeout(() => { this.workflow.resume(); - }, 500); + }, 1000); return 'G4 P1'; } if (line === PAUSE_START) {