diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index 4e35af9..730037d 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -1,3 +1,4 @@
+v1.0.339: Updated grblHAL Binaries to fix Probe bug, Windows Taskbar jog Progress indicator, Updated Pi Install script with Node19x, Added coolant/vacuum to Surfacing Wizard
v1.0.338: Beta testing alternative GPU blacklist switch config for older computers, Fixed a couple Grbl Settings bugs
v1.0.337: Improved WebGL Detection
v1.0.334/5/6: Dark Mode theme (based off /pull/#223), Added Fullscreen Mode button, Updated Dependencies (/pull/260), Fixed bug in ATmega Custom flash option (#268), Updated Wizard's Graphics
diff --git a/app/index.html b/app/index.html
index f1b2a55..04822b6 100644
--- a/app/index.html
+++ b/app/index.html
@@ -1433,11 +1433,22 @@
+
+
+
+
+ Add M8/M9 commands to GCODE
+
+
+
NB: make sure your spindle is 100% perpendicular (trammed) to your bed, before running a Surfacing operation. Incorrectly trammed spindles will cause uneven machining of the surface, leading to pitting and
diff --git a/app/js/grbl-settings-templates.js b/app/js/grbl-settings-templates.js
index 9162531..bd10b57 100644
--- a/app/js/grbl-settings-templates.js
+++ b/app/js/grbl-settings-templates.js
@@ -636,7 +636,7 @@ var grblSettingsTemplate2 = {
key: `$70`,
title: `Network Services`,
description: `70`,
- template: ``,
+ template: ``,
utils: ``
},
300: {
diff --git a/app/wizards/probe/probev2.js b/app/wizards/probe/probev2.js
index 82e2328..c331e49 100644
--- a/app/wizards/probe/probev2.js
+++ b/app/wizards/probe/probev2.js
@@ -533,15 +533,12 @@ function runProbeNew() {
var zoffset = probemode.probe.zoffset // not *-1 as its offset in z pos
var zmacro = `
- ; Header
- G21 ; mm mode
- G10 P0 L20 Z0 ; zero out current location
-
- ; Probe Z
- G38.2 Z-25 F100 ; Probe Z
+ G21
+ G10 P0 L20 Z0
+ G38.2 Z-25 F100
G4 P0.4
- G10 P0 L20 Z` + zoffset + ` ; Set Z` + zoffset + ` where ` + zoffset + ` is thickness of plate
- $J=G91G21Z5F1000 ; retract
+ G10 P0 L20 Z` + zoffset + `
+ $J=G91G21Z5F1000
`
socket.off('prbResult'); // Disable old listeners
diff --git a/app/wizards/surfacing/surfacing.js b/app/wizards/surfacing/surfacing.js
index 3e5a6ba..d3a6db3 100644
--- a/app/wizards/surfacing/surfacing.js
+++ b/app/wizards/surfacing/surfacing.js
@@ -11,6 +11,8 @@ function populateSurfaceToolForm() {
surfaceX: 200,
surfaceY: 300,
surfaceDepth: 3,
+ surfaceCoolant: "enabled",
+ surfaceRPM: 1000
};
}
$("#surfaceDiameter").val(data.surfaceDiameter);
@@ -19,6 +21,8 @@ function populateSurfaceToolForm() {
$("#surfaceX").val(data.surfaceX);
$("#surfaceY").val(data.surfaceY);
$("#surfaceDepth").val(data.surfaceDepth);
+ $('#surfaceCoolant').val(data.surfaceCoolant)
+ $('#surfaceRPM').val(data.surfaceRPM)
var $radios = $("input:radio[name=surfaceType]");
$radios.filter("[value=" + data.surfaceType + "]").prop("checked", true);
Metro.dialog.open("#surfacingDialog");
@@ -33,7 +37,8 @@ function createSurfaceGcode() {
surfaceY: $("#surfaceY").val(),
surfaceDepth: $("#surfaceDepth").val(),
surfaceType: $("input[name='surfaceType']:checked").val(),
- surfaceRPM: $('#surfaceRPM').val()
+ surfaceRPM: $('#surfaceRPM').val(),
+ surfaceCoolant: $('#surfaceCoolant').val()
};
console.log(data);
localStorage.setItem("lastSurfacingTool", JSON.stringify(data));
@@ -67,7 +72,14 @@ G54; Work Coordinates
G21; mm-mode
G90; Absolute Positioning
M3 S` + data.surfaceRPM + `; Spindle On
-G4 P1.8; Wait for spindle to come up to speed
+`
+
+ if (data.surfaceCoolant == "enabled") {
+ gcode += `M8 ; Coolant On
+`
+ }
+
+ gcode += `G4 P1.8; Wait for spindle to come up to speed
G0 Z10
G0 X0 Y0
G1 F` +
@@ -148,6 +160,10 @@ G1 X` +
gcode += `M5 S0\n`;
+ if (data.surfaceCoolant == "enabled") {
+ gcode += `M9 ; Coolant Off`
+ }
+
editor.session.setValue(gcode);
parseGcodeInWebWorker(gcode)
printLog("[ Surfacing / Flattening Wizard ] GCODE Loaded")
diff --git a/grblhal-grbl3axis.bin b/grblhal-grbl3axis.bin
index 892c8f3..7792809 100644
Binary files a/grblhal-grbl3axis.bin and b/grblhal-grbl3axis.bin differ
diff --git a/grblhal-grbl3axis.bin_old b/grblhal-grbl3axis.bin_old
new file mode 100644
index 0000000..892c8f3
Binary files /dev/null and b/grblhal-grbl3axis.bin_old differ
diff --git a/grblhal-grbl4axis.bin b/grblhal-grbl4axis.bin
index c7ce29d..c6ac558 100644
Binary files a/grblhal-grbl4axis.bin and b/grblhal-grbl4axis.bin differ
diff --git a/grblhal-grbl4axis.bin_old b/grblhal-grbl4axis.bin_old
new file mode 100644
index 0000000..c7ce29d
Binary files /dev/null and b/grblhal-grbl4axis.bin_old differ
diff --git a/index.js b/index.js
index c89ba6a..30656a9 100644
--- a/index.js
+++ b/index.js
@@ -1536,6 +1536,17 @@ io.on("connection", function(socket) {
send1Q();
});
+ socket.on('serialInject', function(data) {
+ // Inject a live command into Serial stream in real-time (dev tool) even while a job is running, etc (straight Port.write from machineSend)
+ machineSend(data, true);
+ });
+
+ socket.on("dump", function(data) {
+ console.log(queuePointer);
+ console.log(gcodeQueue);
+ console.log(sentBuffer);
+ })
+
socket.on('runCommand', function(data) {
debug_log('Run Command (' + data.replace('\n', '|') + ')');
if (status.comms.connectionStatus > 0) {
@@ -1941,6 +1952,7 @@ io.on("connection", function(socket) {
switch (status.machine.firmware.type) {
case 'grbl':
clearInterval(queueCounter);
+ jogWindow.setProgressBar(0);
addQRealtime(String.fromCharCode(0x18)); // ctrl-x
setTimeout(function() {
addQRealtime('$X\n');
@@ -2048,6 +2060,7 @@ function machineSend(gcode, realtime) {
io.sockets.emit("queueCount", data);
// debug_log(gcode)
port.write(gcode);
+ debug_log("SENT: " + gcode)
}
} else {
debug_log("PORT NOT OPEN")
@@ -2093,6 +2106,7 @@ function runJob(object) {
// Start interval for qCount messages to socket clients
queueCounter = setInterval(function() {
status.comms.queue = gcodeQueue.length - queuePointer
+ jogWindow.setProgressBar(queuePointer / gcodeQueue.length)
}, 500);
send1Q(); // send first line
status.comms.connectionStatus = 3;
@@ -2107,6 +2121,7 @@ function runJob(object) {
function stopPort() {
clearInterval(queueCounter);
clearInterval(statusLoop);
+ jogWindow.setProgressBar(0);
status.comms.interfaces.activePort = false;
status.comms.interfaces.activeBaud = false;
status.comms.connectionStatus = 0;
@@ -2126,7 +2141,7 @@ function stopPort() {
}
function parseFeedback(data) {
- debug_log(data)
+ //debug_log(data)
var state = data.substring(1, data.search(/(,|\|)/));
status.comms.runStatus = state
if (state == "Alarm") {
@@ -2143,7 +2158,7 @@ function parseFeedback(data) {
} else if (state == "Hold:0") {
pause();
}
- if (status.machine.firmware.type == "grbl" || status.machine.firmware.type == "grblhal") {
+ if (status.machine.firmware.type == "grbl") {
// Extract work offset (for Grbl > 1.1 only!)
var startWCO = data.search(/wco:/i) + 4;
var wco;
@@ -2614,6 +2629,7 @@ function send1Q() {
}
status.comms.connectionStatus = 2; // finished
clearInterval(queueCounter);
+ jogWindow.setProgressBar(0);
gcodeQueue.length = 0; // Dump the Queye
queuePointer = 0;
status.comms.connectionStatus = 2; // finished
@@ -3013,6 +3029,7 @@ function stop(data) {
break;
}
clearInterval(queueCounter);
+ jogWindow.setProgressBar(0);
status.comms.queue = 0
queuePointer = 0;
gcodeQueue.length = 0; // Dump the queue
diff --git a/package.json b/package.json
index 7e3379a..3447a89 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "OpenBuildsCONTROL",
- "version": "1.0.338",
+ "version": "1.0.339",
"license": "AGPL-3.0",
"description": "OpenBuildsCONTROL CNC Machine Host Software",
"author": "github.com/openbuilds ",
diff --git a/pi-install.sh b/pi-install.sh
index 76dd108..46d25df 100644
--- a/pi-install.sh
+++ b/pi-install.sh
@@ -11,8 +11,8 @@ sudo apt install -y tightvncserver
sudo apt install -y xrdp
echo "(4/10) Installing GIT..."
sudo apt-get install -y git
-echo "(5/10) Installing NodeJS 12.x..."
-curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
+echo "(5/10) Installing NodeJS 19.x..."
+curl -sL https://deb.nodesource.com/setup_19.x | sudo -E bash -
sudo apt-get install -y nodejs
echo "(6/10) Updating npm..."
sudo npm install -g npm@latest