pull/110/head v1.0.181
openbuilds-engineer 2019-07-23 21:04:50 +02:00
rodzic a405f9f498
commit fbb8cc4505
17 zmienionych plików z 7643 dodań i 5256 usunięć

Wyświetl plik

@ -1,3 +1,4 @@
v1.0.181: Fixed bug #88 re Incremental/Continous jog focus, Revamped Grbl Predefined Profiles to use submenus and added Pen options, Integrated Servo Pen Up/Down.
v1.0.180: Fixed bug #87: Don't show Update dialog while running job, Updated connection messages when Smoothieware is detected to alert user to replace it with Grbl-LPC, Increased spacing between buttons in Mobile interface (bug #90), Added Framing pass to Surfacing Wizard (Bug #83), updated 2x Dependencies
v1.0.179: New 3D Viewer backend: Support G2/G3 Arcs
v1.0.178: New 3D Viewer backend with support for Large Gcode Files, massively faster rendering

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 24 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 32 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 32 KiB

Wyświetl plik

@ -226,6 +226,7 @@
<!-- <li class="divider"></li> -->
<li><a class="grblmode" href="#" onclick="sendGcode('M3 S1000')">Plasma On (M3 S1000)</a></li>
<li class="divider fg-lightGray"></li>
<li id="menuMisting" style="display: none;"><a class="grblmode" href="#" onclick="sendGcode('M8 S1000')">Misting On (M7)</a></li>
<li><a class="grblmode" href="#" onclick="sendGcode('M8 S1000')">Coolant On (M8)</a></li>
<!-- <li><a class="grblmode" href="#" onclick="sendGcode('M9 S1000')">Coolant Off (M9)</a></li> -->
@ -276,6 +277,7 @@
<li class="disabled grblCalibrationMenu" onclick="xstepscalibrate();"><a href="#"><i class="fas fa-wrench fa-fw"></i> Calibrate X-Axes Steps/mm</a></li>
<li class="disabled grblCalibrationMenu" onclick="ystepscalibrate();"><a href="#"><i class="fas fa-wrench fa-fw"></i> Calibrate Y-Axes Steps/mm</a></li>
<li class="disabled grblCalibrationMenu" onclick="zstepscalibrate();"><a href="#"><i class="fas fa-wrench fa-fw"></i> Calibrate Z-Axes Steps/mm</a></li>
<li class="disabled grblCalibrationMenu" onclick="servocalibrate();"><a href="#"><i class="fas fa-wrench fa-fw"></i> Calibrate Servo Pen Up/Down</a></li>
<li class="divider fg-lightGray"></li>
<li onclick="keyboardShortcutsEditor();"><a href="#"><i class="far fa-edit fa-fw"></i> Customize Shortcut Key Assignments</a></li>
<li class="divider fg-lightGray"></li>
@ -548,6 +550,16 @@
</span>
</button>
</td>
<td class="servo-active">
<button class="button light square large jogbtn" id="pP" data-role="ripple" data-ripple-color="#1ba1e2">
<span class="fa-layers fa-fw">
<i class="fas fa-pen fg-darkBlue" data-fa-transform="shrink-2 down-8.5"></i>
<i class="fas fa-ban fg-red" data-fa-transform="shrink-0.5 down-8.5"></i>
<span class="fa-layers-text fg-darkBlue" data-fa-transform="shrink-10 up-12" style="font-weight:600">PEN</span>
<span class="fa-layers-text fg-darkBlue" data-fa-transform="shrink-10 up-6" style="font-weight:600">UP</span>
</span>
</button>
</td>
</tr>
<tr>
<td>
@ -584,9 +596,18 @@
</span>
</button>
</td>
<td class="servo-active">
<button class="button light square large jogbtn" id="pM" data-role="ripple" data-ripple-color="#1ba1e2">
<span class="fa-layers fa-fw">
<i class="fas fa-pen fg-darkBlue" data-fa-transform="shrink-2 down-8.5"></i>
<span class="fa-layers-text fg-darkBlue" data-fa-transform="shrink-10 up-12" style="font-weight:600">PEN</span>
<span class="fa-layers-text fg-darkBlue" data-fa-transform="shrink-10 up-6" style="font-weight:600">DOWN</span>
</span>
</button>
</td>
</tr>
<tr>
<td colspan='4'>
<td colspan='5'>
<table style="width: 100%;">
<tr>
<td><span class="text-small">Incremental Jog</span>
@ -634,7 +655,7 @@
</td>
</tr>
<tr>
<td colspan='4'>
<td colspan='5'>
<div id="jogratemmdiv">
<input id="jograte" type="number" min="100" max="10000" step="500" placeholder="5000" data-role="input" data-prepend="Jog:" data-append="mm/min" data-clear-button="false" value="5000" style="text-align: right;" data-editable="true" />
</div>
@ -822,10 +843,6 @@
<td>Websocket Status</td>
<td><span class="tally bg-openbuilds fg-white" id="websocketstatus">NOCOMM</span></td>
</tr>
<tr>
<td>Installed Firmware Version</td>
<td><span class="tally bg-openbuilds fg-white" id="firmwarever">NOCOMM</span></td>
</tr>
</tbody>
</table>
</div>
@ -834,58 +851,92 @@
</div>
<div class="cell p-0 m-0">
<!--div class="card">
<div class="card">
<div class="card-header p-1 m-0">
<img src="img/grbl.png" /> Flashing tool
<i class="fas fa-fw fa-microchip"></i>Firmware Parameters
</div>
<div class="card-content">
<p class="text-small ml-2">You can use this section to flash Grbl onto a compatible controller<br>Careful, use with care, or when instructed by Support</p>
<div class="card-content" style="height: calc(100vh - 680px); overflow-x: auto;">
<table class="table striped compact">
<thead>
<tr>
<th style="width: 50%;">Value</th>
<th style="width: 50%;">Status</th>
</tr>
</thead>
<tbody>
<tr>
<td>Controller</td>
<td>
<select data-prepend="&nbsp;<i class='fab fa-usb'></i>" data-role="select" data-filter="false" id="flashGrblController">
<option value="uno">OpenBuilds BlackBox 4X</option>
<option value="xprov4">Spark Concepts xPro v3/4</option>
<option value="uno">Arduino Uno</option>
<option value="nano">Arduino Nano</option>
</select>
</td>
<td class="pt-1 mt-0 pb-0 pt-0">Variable Spindle</td>
<td class="pt-1 mt-0 pb-0 pt-0"><span class="tally alert" id="enVariableSpindle">OFF</span></td>
</tr>
<tr>
<td>Port</td>
<td>
<select data-prepend="&nbsp;<i class='fab fa-usb'></i>" data-role="select" data-filter="false" id="portUSB2" disabled>
<option value="">Waiting for USB</option>
</select>
</td>
<td class="pt-1 mt-0 pb-0 pt-0">Laser Mode Enabled ($32 Setting)</td>
<td class="pt-1 mt-0 pb-0 pt-0"><span class="tally alert" id="enLaser">OFF</span></td>
</tr>
<tr>
<td>Firmware</td>
<td>
<select data-prepend="&nbsp;<i class='fas fa-layer-group'></i>" data-role="select" id="flashGrblHex" data-filter="false">
<optgroup label="Default Grbl">
<option value="grbl1.1f.hex">Grbl 1.1f (default, standard)</option>
</optgroup>
<optgroup label="Customised">
<option value="grbl1.1f-acro.hex">Grbl 1.1g for ACRO</option>
<option value="grbl1.1g-blackbox.hex">Grbl 1.1g for BlackBox 4X / XPRO (Inverted Drivers)</option>
</optgroup>
</select>
</td>
<td class="pt-1 mt-0 pb-0 pt-0">Grbl-Servo Installed</td>
<td class="pt-1 mt-0 pb-0 pt-0"><span class="tally alert" id="enServo">OFF</span></td>
</tr>
<tr>
<td></td>
<td>
<center><button class="button bg-openbuilds fg-white" onclick="flashGrblfromTroubleshooting();">Flash</button></center>
</td>
<td class="pt-1 mt-0 pb-0 pt-0">Line Numbers Enabled</td>
<td class="pt-1 mt-0 pb-0 pt-0"><span class="tally alert" id="enLineNumbers">OFF</span></td>
</tr>
<tr>
<td class="pt-1 mt-0 pb-0 pt-0">Mist Cooling Enabled</td>
<td class="pt-1 mt-0 pb-0 pt-0"><span class="tally alert" id="enMisting">OFF</span></td>
</tr>
<tr>
<td class="pt-1 mt-0 pb-0 pt-0">CoreXY Enabled</td>
<td class="pt-1 mt-0 pb-0 pt-0"><span class="tally alert" id="enCoreXY">OFF</span></td>
</tr>
<tr>
<td class="pt-1 mt-0 pb-0 pt-0">Parking Motion Enabled</td>
<td class="pt-1 mt-0 pb-0 pt-0"><span class="tally alert" id="enParking">OFF</span></td>
</tr>
<tr>
<td class="pt-1 mt-0 pb-0 pt-0">Homing Force Origin Enabled</td>
<td class="pt-1 mt-0 pb-0 pt-0"><span class="tally alert" id="enHomingOrigin">OFF</span></td>
</tr>
<tr>
<td class="pt-1 mt-0 pb-0 pt-0">Single Axis Homing</td>
<td class="pt-1 mt-0 pb-0 pt-0"><span class="tally alert" id="enSingleAxisHome">OFF</span></td>
</tr>
<tr>
<td class="pt-1 mt-0 pb-0 pt-0">Two Limit Switches on Axis Enabled</td>
<td class="pt-1 mt-0 pb-0 pt-0"><span class="tally alert" id="enTwoLimits">OFF</span></td>
</tr>
<tr>
<td class="pt-1 mt-0 pb-0 pt-0">Allow Feed Override in Probe</td>
<td class="pt-1 mt-0 pb-0 pt-0"><span class="tally alert" id="enFeedOVProbe">OFF</span></td>
</tr>
<tr>
<td class="pt-1 mt-0 pb-0 pt-0">Restore EEPROM $-settings Disabled</td>
<td class="pt-1 mt-0 pb-0 pt-0"><span class="tally alert" id="enEepromSettingsDisable">OFF</span></td>
</tr>
<tr>
<td class="pt-1 mt-0 pb-0 pt-0">Restore EEPROM parameter Disabled</td>
<td class="pt-1 mt-0 pb-0 pt-0"><span class="tally alert" id="enEepromParamsDisable">OFF</span></td>
</tr>
<tr>
<td class="pt-1 mt-0 pb-0 pt-0">Build Info Write Disabled</td>
<td class="pt-1 mt-0 pb-0 pt-0"><span class="tally alert" id="enBuildInfoDisabled">OFF</span></td>
</tr>
<tr>
<td class="pt-1 mt-0 pb-0 pt-0">Force Sync on EEPROM write Disabled</td>
<td class="pt-1 mt-0 pb-0 pt-0"><span class="tally alert" id="enForceSyncEeprom">OFF</span></td>
</tr>
<tr>
<td class="pt-1 mt-0 pb-0 pt-0">Force Sync on WCO Disabled</td>
<td class="pt-1 mt-0 pb-0 pt-0"><span class="tally alert" id="enForceSyncWco">OFF</span></td>
</tr>
<tr>
<td class="pt-1 mt-0 pb-0 pt-0">Homing Init Lock</td>
<td class="pt-1 mt-0 pb-0 pt-0"><span class="tally alert" id="enHomingInitLock">OFF</span></td>
</tr>
</tbody>
</table>
</div>
</div-->
</div>
<div class="card">
<div class="card-header p-1 m-0">
@ -1193,6 +1244,7 @@
<script type="text/javascript" src="js/grblsettings.js"></script>
<script type="text/javascript" src="js/metroactions.js"></script>
<script type="text/javascript" src="js/jog.js"></script>
<script type="text/javascript" src="js/servo.js"></script>
<script type="text/javascript" src="js/keyboard.js"></script>
<script type="text/javascript" src="js/calibrate.js"></script>
<script type="text/javascript" src="js/widget.js"></script>
@ -1204,6 +1256,7 @@
<script type="text/javascript" src="js/calibrate-x.js"></script>
<script type="text/javascript" src="js/calibrate-y.js"></script>
<script type="text/javascript" src="js/calibrate-z.js"></script>
<script type="text/javascript" src="js/calibrate-servo.js"></script>
<script type="text/javascript" src="js/probe.js"></script>
@ -1212,4 +1265,4 @@
<script type="text/javascript" src="js/grbl-flashing.js"></script>
</html>
<!-- -->
<!-- -->

Wyświetl plik

Wyświetl plik

@ -198,8 +198,7 @@ function selectMachine(type) {
}
} else if (type == "acro55") {
// Acro 55
var customFirmware = true;
var customFirmwareFile = 'acro';
var customFirmware = 'acro';
var grblParams_def = {
$0: "10", //"Step pulse time, microseconds"
$1: "255", //Step idle delay, milliseconds
@ -238,8 +237,7 @@ function selectMachine(type) {
}
} else if (type == "acro510") {
// Acro 510
var customFirmware = true;
var customFirmwareFile = 'acro';
var customFirmware = 'acro';
var grblParams_def = {
$0: "10", //"Step pulse time, microseconds"
$1: "255", //Step idle delay, milliseconds
@ -278,8 +276,7 @@ function selectMachine(type) {
}
} else if (type == "acro1010") {
// Acro 1010
var customFirmware = true;
var customFirmwareFile = 'acro';
var customFirmware = 'acro';
var grblParams_def = {
$0: "10", //"Step pulse time, microseconds"
$1: "255", //Step idle delay, milliseconds
@ -318,8 +315,7 @@ function selectMachine(type) {
}
} else if (type == "acro1510") {
// Acro 1510
var customFirmware = true;
var customFirmwareFile = 'acro';
var customFirmware = 'acro';
var grblParams_def = {
$0: "10", //"Step pulse time, microseconds"
$1: "255", //Step idle delay, milliseconds
@ -358,8 +354,7 @@ function selectMachine(type) {
}
} else if (type == "acro1515") {
// Acro 1515
var customFirmware = true;
var customFirmwareFile = 'acro';
var customFirmware = 'acro';
var grblParams_def = {
$0: "10", //"Step pulse time, microseconds"
$1: "255", //Step idle delay, milliseconds
@ -396,6 +391,201 @@ function selectMachine(type) {
$131: "1300.000", //Y-axis maximum travel, millimeters
$132: "70.000", //Z-axis maximum travel, millimeters
}
} else if (type == "acro55pen") {
// Acro 55
var customFirmware = 'acropen';
var grblParams_def = {
$0: "10", //"Step pulse time, microseconds"
$1: "255", //Step idle delay, milliseconds
$2: "0", //Step pulse invert, mask
$3: "1", //Step direction invert, mask
$4: "1", //Invert step enable pin, boolean
$5: "0", //Invert limit pins, boolean
$6: "0", //Invert probe pin, boolean
$10: "1", //Status report options, mask
$11: "0.020", //Junction deviation, millimeters
$12: "0.002", //Arc tolerance, millimeters
$13: "0", //Report in inches, boolean
$20: "0", //Soft limits enable, boolean
$21: "1", //Hard limits enable, boolean
$22: "1", //Homing cycle enable, boolean
$23: "7", //Homing direction invert, mask
$24: "100.000", //Homing locate feed rate, mm/min
$25: "1000.000", //Homing search seek rate, mm/min
$26: "250", //Homing switch debounce delay, milliseconds
$27: "5.000", //Homing switch pull-off distance, millimeters
$30: "255", //Maximum spindle speed, RPM
$31: "0", //Minimum spindle speed, RPM
$32: "0", //Laser-mode enable, boolean
$100: "57.143", //X-axis steps per millimeter-1/16 step
$101: "57.143", //Y-axis steps per millimeter-1/16 step
$102: "57.143", //Z-axis steps per millimeter-1/16 step
$110: "5000.000", //X-axis maximum rate, mm/min
$111: "5000.000", //Y-axis maximum rate, mm/min
$112: "5000.000", //Z-axis maximum rate, mm/min
$120: "500.000", //X-axis acceleration, mm/sec^2
$121: "500.000", //Y-axis acceleration, mm/sec^2
$122: "500.000", //Z-axis acceleration, mm/sec^2
$130: "300.000", //X-axis maximum travel, millimeters
$131: "300.000", //Y-axis maximum travel, millimeters
$132: "70.000", //Z-axis maximum travel, millimeters
}
} else if (type == "acro510pen") {
// Acro 510
var customFirmware = 'acropen';
var grblParams_def = {
$0: "10", //"Step pulse time, microseconds"
$1: "255", //Step idle delay, milliseconds
$2: "0", //Step pulse invert, mask
$3: "1", //Step direction invert, mask
$4: "1", //Invert step enable pin, boolean
$5: "0", //Invert limit pins, boolean
$6: "0", //Invert probe pin, boolean
$10: "1", //Status report options, mask
$11: "0.020", //Junction deviation, millimeters
$12: "0.002", //Arc tolerance, millimeters
$13: "0", //Report in inches, boolean
$20: "0", //Soft limits enable, boolean
$21: "1", //Hard limits enable, boolean
$22: "1", //Homing cycle enable, boolean
$23: "7", //Homing direction invert, mask
$24: "100.000", //Homing locate feed rate, mm/min
$25: "1000.000", //Homing search seek rate, mm/min
$26: "250", //Homing switch debounce delay, milliseconds
$27: "5.000", //Homing switch pull-off distance, millimeters
$30: "255", //Maximum spindle speed, RPM
$31: "0", //Minimum spindle speed, RPM
$32: "0", //Laser-mode enable, boolean
$100: "57.143", //X-axis steps per millimeter-1/16 step
$101: "57.143", //Y-axis steps per millimeter-1/16 step
$102: "57.143", //Z-axis steps per millimeter-1/16 step
$110: "5000.000", //X-axis maximum rate, mm/min
$111: "5000.000", //Y-axis maximum rate, mm/min
$112: "5000.000", //Z-axis maximum rate, mm/min
$120: "500.000", //X-axis acceleration, mm/sec^2
$121: "500.000", //Y-axis acceleration, mm/sec^2
$122: "500.000", //Z-axis acceleration, mm/sec^2
$130: "800.000", //X-axis maximum travel, millimeters
$131: "300.000", //Y-axis maximum travel, millimeters
$132: "70.000", //Z-axis maximum travel, millimeters
}
} else if (type == "acro1010pen") {
// Acro 1010
var customFirmware = 'acropen';
var grblParams_def = {
$0: "10", //"Step pulse time, microseconds"
$1: "255", //Step idle delay, milliseconds
$2: "0", //Step pulse invert, mask
$3: "1", //Step direction invert, mask
$4: "1", //Invert step enable pin, boolean
$5: "0", //Invert limit pins, boolean
$6: "0", //Invert probe pin, boolean
$10: "1", //Status report options, mask
$11: "0.020", //Junction deviation, millimeters
$12: "0.002", //Arc tolerance, millimeters
$13: "0", //Report in inches, boolean
$20: "0", //Soft limits enable, boolean
$21: "1", //Hard limits enable, boolean
$22: "1", //Homing cycle enable, boolean
$23: "7", //Homing direction invert, mask
$24: "100.000", //Homing locate feed rate, mm/min
$25: "1000.000", //Homing search seek rate, mm/min
$26: "250", //Homing switch debounce delay, milliseconds
$27: "5.000", //Homing switch pull-off distance, millimeters
$30: "255", //Maximum spindle speed, RPM
$31: "0", //Minimum spindle speed, RPM
$32: "0", //Laser-mode enable, boolean
$100: "57.143", //X-axis steps per millimeter-1/16 step
$101: "57.143", //Y-axis steps per millimeter-1/16 step
$102: "57.143", //Z-axis steps per millimeter-1/16 step
$110: "5000.000", //X-axis maximum rate, mm/min
$111: "5000.000", //Y-axis maximum rate, mm/min
$112: "5000.000", //Z-axis maximum rate, mm/min
$120: "500.000", //X-axis acceleration, mm/sec^2
$121: "500.000", //Y-axis acceleration, mm/sec^2
$122: "500.000", //Z-axis acceleration, mm/sec^2
$130: "800.000", //X-axis maximum travel, millimeters
$131: "800.000", //Y-axis maximum travel, millimeters
$132: "70.000", //Z-axis maximum travel, millimeters
}
} else if (type == "acro1510pen") {
// Acro 1510
var customFirmware = 'acropen';
var grblParams_def = {
$0: "10", //"Step pulse time, microseconds"
$1: "255", //Step idle delay, milliseconds
$2: "0", //Step pulse invert, mask
$3: "1", //Step direction invert, mask
$4: "1", //Invert step enable pin, boolean
$5: "0", //Invert limit pins, boolean
$6: "0", //Invert probe pin, boolean
$10: "1", //Status report options, mask
$11: "0.020", //Junction deviation, millimeters
$12: "0.002", //Arc tolerance, millimeters
$13: "0", //Report in inches, boolean
$20: "0", //Soft limits enable, boolean
$21: "1", //Hard limits enable, boolean
$22: "1", //Homing cycle enable, boolean
$23: "7", //Homing direction invert, mask
$24: "100.000", //Homing locate feed rate, mm/min
$25: "1000.000", //Homing search seek rate, mm/min
$26: "250", //Homing switch debounce delay, milliseconds
$27: "5.000", //Homing switch pull-off distance, millimeters
$30: "255", //Maximum spindle speed, RPM
$31: "0", //Minimum spindle speed, RPM
$32: "0", //Laser-mode enable, boolean
$100: "57.143", //X-axis steps per millimeter-1/16 step
$101: "57.143", //Y-axis steps per millimeter-1/16 step
$102: "57.143", //Z-axis steps per millimeter-1/16 step
$110: "5000.000", //X-axis maximum rate, mm/min
$111: "5000.000", //Y-axis maximum rate, mm/min
$112: "5000.000", //Z-axis maximum rate, mm/min
$120: "500.000", //X-axis acceleration, mm/sec^2
$121: "500.000", //Y-axis acceleration, mm/sec^2
$122: "500.000", //Z-axis acceleration, mm/sec^2
$130: "800.000", //X-axis maximum travel, millimeters
$131: "1300.000", //Y-axis maximum travel, millimeters
$132: "70.000", //Z-axis maximum travel, millimeters
}
} else if (type == "acro1515pen") {
// Acro 1515
var customFirmware = 'acropen';
var grblParams_def = {
$0: "10", //"Step pulse time, microseconds"
$1: "255", //Step idle delay, milliseconds
$2: "0", //Step pulse invert, mask
$3: "1", //Step direction invert, mask
$4: "1", //Invert step enable pin, boolean
$5: "0", //Invert limit pins, boolean
$6: "0", //Invert probe pin, boolean
$10: "1", //Status report options, mask
$11: "0.020", //Junction deviation, millimeters
$12: "0.002", //Arc tolerance, millimeters
$13: "0", //Report in inches, boolean
$20: "0", //Soft limits enable, boolean
$21: "1", //Hard limits enable, boolean
$22: "1", //Homing cycle enable, boolean
$23: "7", //Homing direction invert, mask
$24: "100.000", //Homing locate feed rate, mm/min
$25: "1000.000", //Homing search seek rate, mm/min
$26: "250", //Homing switch debounce delay, milliseconds
$27: "5.000", //Homing switch pull-off distance, millimeters
$30: "255", //Maximum spindle speed, RPM
$31: "0", //Minimum spindle speed, RPM
$32: "0", //Laser-mode enable, boolean
$100: "57.143", //X-axis steps per millimeter-1/16 step
$101: "57.143", //Y-axis steps per millimeter-1/16 step
$102: "57.143", //Z-axis steps per millimeter-1/16 step
$110: "5000.000", //X-axis maximum rate, mm/min
$111: "5000.000", //Y-axis maximum rate, mm/min
$112: "5000.000", //Z-axis maximum rate, mm/min
$120: "500.000", //X-axis acceleration, mm/sec^2
$121: "500.000", //Y-axis acceleration, mm/sec^2
$122: "500.000", //Z-axis acceleration, mm/sec^2
$130: "1300.000", //X-axis maximum travel, millimeters
$131: "1300.000", //Y-axis maximum travel, millimeters
$132: "70.000", //Z-axis maximum travel, millimeters
}
} else if (type == "minimill") {
// minimill
var customFirmware = false;
@ -646,19 +836,10 @@ function selectMachine(type) {
if (lastSelectedMachine != type) {
if (lastSelectedMachine.substr(0, 4) != type.substr(0, 4)) {
if (customFirmware) {
if (customFirmwareFile == 'acro') {
if (customFirmware == "acro") {
Metro.dialog.create({
title: "Custom Firmware Required",
content: `<div>The OpenBuilds Acro is a 2-axes machine. This requires a custom Grbl installation to allow 2-axes specific homing.
We can flash the new firmware for you right now. Proceeding will wipe the firmware from your controller and replace it with an Acro
specific version of Grbl. Would you like to proceed?</div><hr>Select your controller type: <br>
<select data-prepend="&nbsp;<i class='fab fa-usb'></i>" data-role="select" data-filter="false" id="flashGrblController2">
<option value="uno">OpenBuilds BlackBox 4X</option>
<option value="xprov4">Spark Concepts xPro v3/4</option>
<option value="uno">Arduino Uno</option>
<option value="nano">Arduino Nano</option>
</select>`,
content: `<div>The machine type you selected, needs a custom firmware. Please use the Firmware Flashing Wizard to upload a custom firmware image to the controller to properly support this machine. </div>`,
actions: [{
caption: "No Thank you",
cls: "js-dialog-close",
@ -667,33 +848,46 @@ function selectMachine(type) {
}
},
{
caption: "I already flashed it",
caption: "Launch the Flashing Wizard",
cls: "js-dialog-close success",
onclick: function() {
populateGrblBuilderToolForm();
setTimeout(function(){
$('#grblAxesCount').data('select').val('2axes')
}, 500)
}
},
]
});
console.log('This machine needs a custom firmware')
}
if (customFirmware == "acropen") {
Metro.dialog.create({
title: "Custom Firmware Required",
content: `<div>The machine type you selected, needs a custom firmware. Please use the Firmware Flashing Wizard to upload a custom firmware image to the controller to properly support this machine. </div>`,
actions: [{
caption: "No Thank you",
cls: "js-dialog-close",
onclick: function() {
console.log("Do nothing")
}
},
{
caption: "Yes!",
caption: "Launch the Flashing Wizard",
cls: "js-dialog-close success",
onclick: function() {
$('#controlTab').click();
$('#consoletab').click();
$('#grblSettings').hide();
$('.grblCalibrationMenu').addClass("disabled")
var data = {
port: laststatus.comms.interfaces.activePort,
file: 'grbl1.1f-acro.hex',
board: $("#flashGrblController2").val()
}
socket.emit('flashGrbl', data)
populateGrblBuilderToolForm();
setTimeout(function(){
$('#grblAxesCount').data('select').val('servo')
}, 500)
}
},
]
});
}
console.log('This machine needs a custom firmware')
}
}
@ -761,4 +955,4 @@ function setMachineButton(type) {
}
$('#context_toggle2').html(template);
$('#overlayimg').html(`<img src="img/mch/` + overlaytype + `.png" style="max-width:100%; max-height:100%;"/><span onclick="$('#grblTab').click()" style="position: absolute; top: 3px; right:3px; z-index: 1;" class="fas fa-cogs machineicon" style="text-shadow: 2px 2px 4px #cccccc;"></span>`)
};
};

Wyświetl plik

@ -65,6 +65,13 @@ function grblSettings(data) {
$('#gotoYzeroMpos').addClass('disabled')
$('#gotoZzeroMpos').addClass('disabled')
}
if (grblParams['$32'] == 1) {
console.log('Laser Mode Enabled')
$('#enLaser').removeClass('alert').addClass('success').html('ON')
} else {
$('#enLaser').removeClass('success').addClass('alert').html('OFF')
}
}
function grblPopulate() {
@ -75,38 +82,70 @@ function grblPopulate() {
<ul class="step-list">
<li id="installDriversOnSettingspage">
<h6 class="fg-openbuilds">Load Default Settings<br><small>Populate Grbl parameters from machine-type defaults. You can customize values as needed below</small></h6>
<h6 class="fg-openbuilds">Load Default Settings<br><small>Populate Grbl parameters from machine-type defaults. You can customize values as needed below. Remember to click Save above to apply</small></h6>
<hr class="bg-openbuilds">
<div>
<div class="grid">
<div class="row">
<div class="cell-8">
<a style="width: 100%;" class="button dropdown-toggle bd-openbuilds secondary outline" id="context_toggle2"><img src="img/mch/sphinx55.png"/> Select Machine</a>
<ul class="d-menu border bd-gray" data-role="dropdown" data-toggle-element="#context_toggle2">
<li onclick="selectMachine('custom');"><a href="#"><img src="img/mch/custom.png"/> Custom Machine</a></li>
<li class="divider"></li>
<li onclick="selectMachine('acro55');"><a href="#"><img src="img/mch/acro55.png"/> OpenBuilds Acro 55</a></li>
<li onclick="selectMachine('acro510');"><a href="#"><img src="img/mch/acro510.png"/> OpenBuilds Acro 510</a></li>
<li onclick="selectMachine('acro1010');"><a href="#"><img src="img/mch/acro1010.png"/> OpenBuilds Acro 1010</a></li>
<li onclick="selectMachine('acro1510');"><a href="#"><img src="img/mch/acro1510.png"/> OpenBuilds Acro 1510</a></li>
<li onclick="selectMachine('acro1515');"><a href="#"><img src="img/mch/acro1515.png"/> OpenBuilds Acro 1515</a></li>
<li class="divider"></li>
<li onclick="selectMachine('cbeam');"><a href="#"><img src="img/mch/cbeam.png"/> OpenBuilds C-Beam Machine</a></li>
<li onclick="selectMachine('cbeamxl');"><a href="#"><img src="img/mch/cbeamxl.png"/> OpenBuilds C-Beam XL </a></li>
<li class="divider"></li>
<!--li onclick="selectMachine('leadmachine55');"><a href="#"><img src="img/mch/leadmachine55.png"/> OpenBuilds Lead Machine 55 </a></li -->
<li onclick="selectMachine('leadmachine1010');"><a href="#"><img src="img/mch/leadmachine1010.png"/> OpenBuilds Lead Machine 1010 </a></li>
<li class="divider"></li>
<li onclick="selectMachine('minimill');"><a href="#"><img src="img/mch/minimill.png"/> OpenBuilds MiniMill</a></li>
<li class="divider"></li>
<li onclick="selectMachine('sphinx55');"><a href="#"><img src="img/mch/sphinx55.png"/> OpenBuilds Sphinx 55</a></li>
<li onclick="selectMachine('sphinx1050');"><a href="#"><img src="img/mch/sphinx1050.png"/> OpenBuilds Sphinx 1050</a></li>
<li class="divider"></li>
<li onclick="selectMachine('workbee1010');"><a href="#"><img src="img/mch/workbee1010.png"/> OpenBuilds Workbee 1010</a></li>
<li onclick="selectMachine('workbee1050');"><a href="#"><img src="img/mch/workbee1050.png"/> OpenBuilds Workbee 1050</a></li>
<li onclick="selectMachine('workbee1510');"><a href="#"><img src="img/mch/workbee1510.png"/> OpenBuilds Workbee 1510</a></li>
</ul>
<a style="width: 100%;" class="button dropdown-toggle bd-openbuilds secondary outline" id="context_toggle2"><img src="img/mch/sphinx55.png"/> Select Machine</a>
<ul class="ribbon-dropdown" data-role="dropdown" data-duration="100">
<li><a href="#" onclick="selectMachine('custom');"><img src="img/mch/custom.png" width="16px"/> Custom Machine</a></li>
<li>
<a href="#" class="dropdown-toggle"><img src="img/mch/acro55.png" width="16px"/> OpenBuilds Acro</a>
<ul class="ribbon-dropdown" data-role="dropdown">
<li onclick="selectMachine('acro55');"><a href="#"><img src="img/mch/acro55.png" width="16px"/> OpenBuilds Acro 55</a></li>
<li onclick="selectMachine('acro510');"><a href="#"><img src="img/mch/acro510.png" width="16px"/> OpenBuilds Acro 510</a></li>
<li onclick="selectMachine('acro1010');"><a href="#"><img src="img/mch/acro1010.png" width="16px"/> OpenBuilds Acro 1010</a></li>
<li onclick="selectMachine('acro1510');"><a href="#"><img src="img/mch/acro1510.png" width="16px"/> OpenBuilds Acro 1510</a></li>
<li onclick="selectMachine('acro1515');"><a href="#"><img src="img/mch/acro1515.png" width="16px"/> OpenBuilds Acro 1515</a></li>
</ul>
</li>
<li>
<a href="#" class="dropdown-toggle"><img src="img/mch/acro55.png" width="16px"/> OpenBuilds Acro with Servo Pen Attachment</a>
<ul class="ribbon-dropdown" data-role="dropdown">
<li onclick="selectMachine('acro55pen');"><a href="#"><img src="img/mch/acro55.png" width="16px"/> OpenBuilds Acro 55 with Servo Pen Attachment</a></li>
<li onclick="selectMachine('acro510pen');"><a href="#"><img src="img/mch/acro510.png" width="16px"/> OpenBuilds Acro 510 with Servo Pen Attachment</a></li>
<li onclick="selectMachine('acro1010pen');"><a href="#"><img src="img/mch/acro1010.png" width="16px"/> OpenBuilds Acro 1010 with Servo Pen Attachment</a></li>
<li onclick="selectMachine('acro1510pen');"><a href="#"><img src="img/mch/acro1510.png" width="16px"/> OpenBuilds Acro 1510 with Servo Pen Attachment</a></li>
<li onclick="selectMachine('acro1515pen');"><a href="#"><img src="img/mch/acro1515.png" width="16px"/> OpenBuilds Acro 1515 with Servo Pen Attachment</a></li>
</ul>
</li>
<li>
<a href="#" class="dropdown-toggle"><img src="img/mch/cbeam.png" width="16px"/> OpenBuilds C-Beam Machine</a>
<ul class="ribbon-dropdown" data-role="dropdown">
<li onclick="selectMachine('cbeam');"><a href="#"><img src="img/mch/cbeam.png" width="16px"/> OpenBuilds C-Beam Machine</a></li>
<li onclick="selectMachine('cbeamxl');"><a href="#"><img src="img/mch/cbeamxl.png" width="16px"/> OpenBuilds C-Beam XL</a></li>
</ul>
</li>
<li>
<a href="#" class="dropdown-toggle"><img src="img/mch/leadmachine1010.png" width="16px"/> OpenBuilds Lead Machine</a>
<ul class="ribbon-dropdown" data-role="dropdown">
<li onclick="selectMachine('leadmachine55');"><a href="#"><img src="img/mch/leadmachine55.png" width="16px"/> OpenBuilds Lead 55</a></li>
<li onclick="selectMachine('leadmachine1010');"><a href="#"><img src="img/mch/leadmachine1010.png" width="16px"/>OpenBuilds Lead 1010</a></li>
</ul>
</li>
<li><a href="#" onclick="selectMachine('minimill');"><img src="img/mch/minimill.png" width="16px"/> OpenBuilds MiniMill</a></li>
<li>
<a href="#" class="dropdown-toggle"><img src="img/mch/sphinx55.png" width="16px"/> OpenBuilds Sphinx</a>
<ul class="ribbon-dropdown" data-role="dropdown">
<li onclick="selectMachine('sphinx55');"><a href="#"><img src="img/mch/sphinx55.png" width="16px"/> OpenBuilds Sphinx 55</a></li>
<li onclick="selectMachine('sphinx1050');"><a href="#"><img src="img/mch/sphinx1050.png" width="16px"/> OpenBuilds Sphinx 1050</a></li>
</ul>
</li>
<li>
<a href="#" class="dropdown-toggle"><img src="img/mch/workbee1010.png" width="16px"/> OpenBuilds WorkBee</a>
<ul class="ribbon-dropdown" data-role="dropdown">
<li onclick="selectMachine('workbee1010');"><a href="#"><img src="img/mch/workbee1010.png" width="16px"/> OpenBuilds WorkBee 1010</a></li>
<li onclick="selectMachine('workbee1050');"><a href="#"><img src="img/mch/workbee1050.png" width="16px"/> OpenBuilds WorkBee 1050</a></li>
<li onclick="selectMachine('workbee1510');"><a href="#"><img src="img/mch/workbee1510.png" width="16px"/> OpenBuilds WorkBee 1510</a></li>
</ul>
</li>
</ul>
</div>
<div class="cell-4">
<input id="limitsinstalled" data-cls-caption="fg-openbuilds" data-cls-check="bd-openbuilds openbuilds-switch" data-cls-switch="openbuilds-switch" type="checkbox" data-role="switch" data-caption="Limit&nbsp;Switches&nbsp;Installed">
@ -594,4 +633,4 @@ var grblConfigDesc = {
$130: "This sets the maximum travel from end to end for each axis in mm. This is only useful if you have soft limits (and homing) enabled, as this is only used by Grbl's soft limit feature to check if you have exceeded your machine limits with a motion command.",
$131: "This sets the maximum travel from end to end for each axis in mm. This is only useful if you have soft limits (and homing) enabled, as this is only used by Grbl's soft limit feature to check if you have exceeded your machine limits with a motion command.",
$132: "This sets the maximum travel from end to end for each axis in mm. This is only useful if you have soft limits (and homing) enabled, as this is only used by Grbl's soft limit feature to check if you have exceeded your machine limits with a motion command."
}
}

Wyświetl plik

@ -27,6 +27,8 @@ $(document).ready(function() {
allowContinuousJog = false;
$('.distbtn').show();
}
// console.log(document.activeElement)
document.activeElement.blur();
});
@ -405,4 +407,4 @@ function keyboardShortcutsEditor() {
});
}
}

184
app/js/servo.js 100644
Wyświetl plik

@ -0,0 +1,184 @@
var servo = false;
var penupval = 128;
var pendownval = 128;
if (localStorage.getItem("servo-calibration")) {
servo = JSON.parse(localStorage.getItem("servo-calibration"));
penupval = servo.up;
pendownval = servo.down;
} else {
servo = false;
penupval = 128
pendownval = 128
}
$(document).ready(function() {
$('#pP').on('click', function(ev) {
console.log('pen up')
if (servo) {
socket.emit('runCommand', "M3S"+servo.up+"\n");
} else {
servocalibrate()
}
})
$('#pM').on('click', function(ev) {
console.log('pen down')
if (servo) {
socket.emit('runCommand', "M3S"+servo.down+"\n");
} else {
servocalibrate()
}
})
});
// Calibration Wizard
function penUpSend(data) {
console.log("Move to " + data)
sendGcode("M3 S"+data);
}
function penDownSend(data) {
console.log("Move to " + data)
sendGcode("M3 S"+data);
}
var servocaltemplate = `
<div id="servocalstep1">
<table class="table">
<tr>
<td>
<img src="img/calibrate/servo/up.png" style="border: 1px solid #f1f2f3;">
</td>
<td>
Step 1: Find the Pen Up Value<br>
<small>This wizard, will allow you to find the S-values specific to your servo</small><hr>
<small>To get started, use the slider below to find the position where the Pen is lifted all the way up</small><br>
<center>
<input data-role="slider" data-hint-position="top" data-min="0" data-max="255" data-target="#penupval" data-on-change-value="penUpSend" id="penupslider">
<input type="text" data-role="input" data-prepend="Pen Up Value:" id="penupval" readonly data-clear-button="false">
</center>
<hr>
<center>
<small>Note: Do not push the servo into a hard-stop condition it may damage the servo. Just move it far enough to lift the pen up without straining</small>
<hr>
<button class="button success" onclick="servocalslide2();"><i class="fas fa-check"></i> Pen is now in the UP position, continue...</button>
</center>
</td>
</tr>
</table>
</div>
<div id="servocalstep2" style="display: none">
<table class="table">
<tr>
<td>
<img src="img/calibrate/servo/down.png" alt="pos2" border="0">
</td>
<td>
Step 2: Find the Pen Down Value<br>
<small>This wizard, will allow you to find the S-values specific to your servo</small><hr>
<small>To get started, use the slider below to find the position where the Pen is dropped all the way down</small><br>
<center>
<input data-role="slider" data-hint-position="top" data-min="0" data-max="255" data-target="#pendownval" id="pendownslider" data-on-change-value="penDownSend">
<input type="text" data-role="input" data-prepend="Pen Down Value:" id="pendownval" readonly data-clear-button="false">
<hr>
<small>Note: Do not push the servo into a hard-stop condition it may damage the servo. Just move it far enough to lift the pen up without straining</small>
</center>
<hr>
<center>
<button class="button success" onclick="servocalslide3();"><i class="fas fa-check"></i> Pen is now in the DOWN position, continue...</button>
</center>
</td>
</tr>
</table>
</div>
<div id="servocalstep3" style="display: none">
<table class="table">
<tr>
<td>
<img src="img/calibrate/servo/center.png" alt="pos3" border="0">
</td>
<td>
Step 3: Note the values for future use<br>
<small>You have now determined the two S-values to send to your controller to Lift the Pen Up, and drop the Pen Down</small><br>
<hr>
<center>
<input type="text" data-role="input" data-prepend="Pen Up Value:" id="penupval2" readonly data-clear-button="false">
<hr>
<input type="text" data-role="input" data-prepend="Pen Down Value:" id="pendownval2" readonly data-clear-button="false">
</center>
<hr>
<small>NB: Please <u>write down these values</u>, as you will likely need to add the values to a post processor, or your CAM software. </small><br>
<small>Also take note of the manual commands you may need:</small><br>
<small>Pen Up: <code>M3 S<span id="penupval3">0</span></code></small><br>
<small>Pen Down: <code>M3 S<span id="pendownval3">0</span></code></small><hr>
<center>
<button class="button success" onclick="closeServoCal();"><i class="fas fa-check"></i> Save and Apply</button>
</center>
</td>
</tr>
</table>
</div>
`
function servocalibrate() {
Metro.dialog.create({
clsDialog: 'dark',
id: "servocalibratedialog",
title: "<i class='fas fa-wrench'></i> Servo Calibration: Pen-Up/Pen-Down Positions",
content: servocaltemplate,
width: 750,
actions: false,
defaultAction: false
});
setTimeout(function() {
$('#penupslider').data('slider').val(penupval)
}, 500);
}
function servocalslide1() {
$('#servocalstep1').show();
$('#servocalstep2').hide();
$('#servocalstep3').hide();
}
function servocalslide2() {
$('#servocalstep1').hide();
$('#servocalstep2').show();
$('#servocalstep3').hide();
setTimeout(function() {
$('#pendownslider').data('slider').val(pendownval)
}, 500);
}
function servocalslide3() {
$('#servocalstep1').hide();
$('#servocalstep2').hide();
$('#servocalstep3').show();
$('#penupval2').val($('#penupslider').data('slider').val());
$('#pendownval2').val($('#pendownslider').data('slider').val());
$('#penupval3').html($('#penupslider').data('slider').val());
$('#pendownval3').html($('#pendownslider').data('slider').val());
}
function closeServoCal() {
console.log("Saving calibration: up: " + $('#penupslider').data('slider').val() + ", down: " + $('#pendownslider').data('slider').val())
servo = {
up: $('#penupslider').data('slider').val(),
down: $('#pendownslider').data('slider').val()
}
penupval = $('#penupslider').data('slider').val();
pendownval = $('#pendownslider').data('slider').val();
localStorage.setItem("servo-calibration", JSON.stringify(servo));
Metro.dialog.close($('#servocalstep1').parent().parent());
console.log(servo)
}

Wyświetl plik

@ -437,6 +437,81 @@ function initSocket() {
laststatus = status;
});
socket.on('features', function(data) {
console.log('FEATURES', data)
for (i=0; i<data.length; i++) {
switch(data[i]) {
case 'Q':
console.log('SPINDLE_IS_SERVO Enabled')
$('#enServo').removeClass('alert').addClass('success').html('ON')
$(".z-active").hide()
$(".servo-active").show()
break;
case 'V': // Variable spindle enabled
console.log('Variable spindle enabled')
$('#enVariableSpindle').removeClass('alert').addClass('success').html('ON')
break;
case 'N': // Line numbers enabled
console.log('Line numbers enabled')
$('#enLineNumbers').removeClass('alert').addClass('success').html('ON')
break;
case 'M': // Mist coolant enabled
console.log('Mist coolant enabled')
$('#menuMisting').show();
$('#enMisting').removeClass('alert').addClass('success').html('ON')
break;
case 'C': // CoreXY enabled
console.log('CoreXY enabled')
$('#enCoreXY').removeClass('alert').addClass('success').html('ON')
break;
case 'P': // Parking motion enabled
console.log('Parking motion enabled')
$('#enParking').removeClass('alert').addClass('success').html('ON')
break;
case 'Z': // Homing force origin enabled
console.log('Homing force origin enabled')
$('#enHomingOrigin').removeClass('alert').addClass('success').html('ON')
break;
case 'H': // Homing single axis enabled
console.log('Homing single axis enabled')
$('#enSingleAxisHome').removeClass('alert').addClass('success').html('ON')
break;
case 'T': // Two limit switches on axis enabled
console.log('Two limit switches on axis enabled')
$('#enTwoLimits').removeClass('alert').addClass('success').html('ON')
break;
case 'A': // Allow feed rate overrides in probe cycles
console.log('Allow feed rate overrides in probe cycles')
$('#enFeedOVProbe').removeClass('alert').addClass('success').html('ON')
break;
case '$': // Restore EEPROM $ settings disabled
console.log('Restore EEPROM $ settings disabled')
$('#enEepromSettingsDisable').removeClass('alert').addClass('success').html('ON')
break;
case '#': // Restore EEPROM parameter data disabled
console.log('Restore EEPROM parameter data disabled')
$('#enEepromParamsDisable').removeClass('alert').addClass('success').html('ON')
break;
case 'I': // Build info write user string disabled
console.log('Build info write user string disabled')
$('#enBuildInfoDisabled').removeClass('alert').addClass('success').html('ON')
break;
case 'E': // Force sync upon EEPROM write disabled
console.log('Force sync upon EEPROM write disabled')
$('#enForceSyncEeprom').removeClass('alert').addClass('success').html('ON')
break;
case 'W': // Force sync upon work coordinate offset change disabled
console.log('Force sync upon work coordinate offset change disabled')
$('#enForceSyncWco').removeClass('alert').addClass('success').html('ON')
break;
case 'L': // Homing init lock sets Grbl into an alarm state upon power up
console.log('Homing init lock sets Grbl into an alarm state upon power up')
$('#enHomingInitLock').removeClass('alert').addClass('success').html('ON')
break;
}
}
})
$('#sendCommand').on('click', function() {
var commandValue = $('#command').val();
sendGcode(commandValue);

Plik diff jest za duży Load Diff

Plik diff jest za duży Load Diff

Plik diff jest za duży Load Diff

1878
grbl-servo.hex 100644

Plik diff jest za duży Load Diff

229
index.js
Wyświetl plik

@ -192,7 +192,6 @@ var sentBuffer = [];
var SMOOTHIE_RX_BUFFER_SIZE = 64; // max. length of one command line
var smoothie_buffer = false;
var lastMode;
var xPos = 0.00;
var yPos = 0.00;
@ -220,13 +219,6 @@ var status = {
machine: {
name: '',
inputs: [],
tools: {
hotend1: false,
hotend2: false,
heatbed: false,
laser: false,
spindle: false
},
overrides: {
feedOverride: 100, //
spindleOverride: 100, //
@ -259,138 +251,15 @@ var status = {
}
},
temperature: {
setpoint: {
t0: 0,
t1: 0,
b: 0
},
actual: {
t0: 0,
t1: 0,
b: 0
}
},
firmware: {
type: "",
version: "",
date: "",
buffer: [],
features: [],
blockBufferSize: "",
rxBufferSize: "",
},
drivers: {
x: {
type: "",
axis: "",
microstep: 0,
currentSetting: 0,
enabled: 0,
stallGuard: {
stallGuardReading: 1023,
stallGuardThreshold: 0,
stallGuardFilter: 0
},
coolStep: {
coolStepEnabled: 0,
coolStepCurrent: 0,
coolStepLowerThreshold: 0,
coolStepUpperThreshold: 0,
coolStepNumberOfReadings: 0,
coolStepCurrentIncrement: 0,
coolStepLowerCurrentLimit: 0
},
troubleshooting: {
shortGndA: 0,
shortGndB: 0,
openLoadA: 0,
openLoadB: 0,
overTemp: 0
}
},
y: {
type: "",
axis: "",
microstep: 0,
currentSetting: 0,
enabled: 0,
stallGuard: {
stallGuardReading: 1023,
stallGuardThreshold: 0,
stallGuardFilter: 0
},
coolStep: {
coolStepEnabled: 0,
coolStepCurrent: 0,
coolStepLowerThreshold: 0,
coolStepUpperThreshold: 0,
coolStepNumberOfReadings: 0,
coolStepCurrentIncrement: 0,
coolStepLowerCurrentLimit: 0
},
troubleshooting: {
shortGndA: 0,
shortGndB: 0,
openLoadA: 0,
openLoadB: 0,
overTemp: 0
}
},
z: {
type: "",
axis: "",
microstep: 0,
currentSetting: 0,
enabled: 0,
stallGuard: {
stallGuardReading: 1023,
stallGuardThreshold: 0,
stallGuardFilter: 0
},
coolStep: {
coolStepEnabled: 0,
coolStepCurrent: 0,
coolStepLowerThreshold: 0,
coolStepUpperThreshold: 0,
coolStepNumberOfReadings: 0,
coolStepCurrentIncrement: 0,
coolStepLowerCurrentLimit: 0
},
troubleshooting: {
shortGndA: 0,
shortGndB: 0,
openLoadA: 0,
openLoadB: 0,
overTemp: 0
}
},
a: {
type: "",
axis: "",
microstep: 0,
currentSetting: 0,
enabled: 0,
stallGuard: {
stallGuardReading: 1023,
stallGuardThreshold: 0,
stallGuardFilter: 0
},
coolStep: {
coolStepEnabled: 0,
coolStepCurrent: 0,
coolStepLowerThreshold: 0,
coolStepUpperThreshold: 0,
coolStepNumberOfReadings: 0,
coolStepCurrentIncrement: 0,
coolStepLowerCurrentLimit: 0
},
troubleshooting: {
shortGndA: 0,
shortGndB: 0,
openLoadA: 0,
openLoadB: 0,
overTemp: 0
}
},
}
},
comms: {
connectionStatus: 0, //0 = not connected, 1 = opening, 2 = connected, 3 = playing, 4 = paused
@ -832,6 +701,94 @@ io.on("connection", function(socket) {
io.sockets.emit("machinename", data.split(':')[2].split(']')[0].toLowerCase());
}
if (data.indexOf("[OPT:") === 0) {
var startOpt = data.search(/opt:/i) + 4;
var grblOpt;
if (startOpt > 4) {
var grblOptLen = data.substr(startOpt).search(/]/);
grblOpts = data.substr(startOpt, grblOptLen).split(/,/);
status.machine.firmware.blockBufferSize = grblOpts[1];
status.machine.firmware.rxBufferSize = grblOpts[2];
var features = []
var i = grblOpts[0].length;
while (i--) {
features.push(grblOpts[0].charAt(i))
switch(grblOpts[0].charAt(i)) {
case 'Q':
console.log('SPINDLE_IS_SERVO Enabled')
//
break;
case 'V': // Variable spindle enabled
console.log('Variable spindle enabled')
//
break;
case 'N': // Line numbers enabled
console.log('Line numbers enabled')
//
break;
case 'M': // Mist coolant enabled
console.log('Mist coolant enabled')
//
break;
case 'C': // CoreXY enabled
console.log('CoreXY enabled')
//
break;
case 'P': // Parking motion enabled
console.log('Parking motion enabled')
//
break;
case 'Z': // Homing force origin enabled
console.log('Homing force origin enabled')
//
break;
case 'H': // Homing single axis enabled
console.log('Homing single axis enabled')
//
break;
case 'T': // Two limit switches on axis enabled
console.log('Two limit switches on axis enabled')
//
break;
case 'A': // Allow feed rate overrides in probe cycles
console.log('Allow feed rate overrides in probe cycles')
//
break;
case '$': // Restore EEPROM $ settings disabled
console.log('Restore EEPROM $ settings disabled')
//
break;
case '#': // Restore EEPROM parameter data disabled
console.log('Restore EEPROM parameter data disabled')
//
break;
case 'I': // Build info write user string disabled
console.log('Build info write user string disabled')
//
break;
case 'E': // Force sync upon EEPROM write disabled
console.log('Force sync upon EEPROM write disabled')
//
break;
case 'W': // Force sync upon work coordinate offset change disabled
console.log('Force sync upon work coordinate offset change disabled')
//
break;
case 'L': // Homing init lock sets Grbl into an alarm state upon power up
console.log('Homing init lock sets Grbl into an alarm state upon power up')
//
break;
}
}
status.machine.firmware.features = features;
io.sockets.emit("features", features);
}
}
// [PRB:0.000,0.000,0.000:0]
if (data.indexOf("[PRB:") === 0) {
if (status.machine.probe.request.plate) {
@ -917,7 +874,7 @@ io.on("connection", function(socket) {
stopPort();
} // end of machine identification
// Machine Feedback: Temperature and Position
// Machine Feedback: Position
if (data.indexOf("<") === 0) {
// console.log(' Got statusReport (Grbl & Smoothieware)')
// statusfeedback func
@ -2196,6 +2153,7 @@ if (isElectron()) {
console.log("path" + openFilePath);
readFile(openFilePath);
}
status.driver.operatingsystem = 'windows';
}
if (process.platform == 'darwin' || uploadedgcode.length > 1) {
@ -2447,6 +2405,7 @@ if (isElectron()) {
console.log('Running on Raspberry Pi!');
status.driver.operatingsystem = 'rpi'
startChrome();
status.driver.operatingsystem = 'raspberrypi';
} else {
console.log("Running under NodeJS...");
}

Wyświetl plik

@ -1,6 +1,6 @@
{
"name": "OpenBuildsCONTROL",
"version": "1.0.180",
"version": "1.0.181",
"license": "AGPL-3.0",
"description": "Machine Interface Driver for OpenBuilds",
"author": "github.com/openbuilds <webmaster@openbuilds.com>",