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 @@
- + Spindle RPM for variable spindles
+
+ +
+ + 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