Acro Firmware Flash

pull/110/head
openbuilds-engineer 2018-12-20 21:22:02 +02:00
rodzic cd1e836214
commit d693c79f8b
9 zmienionych plików z 3654 dodań i 62 usunięć

Wyświetl plik

@ -43,7 +43,7 @@ body {
#console {
/*font-family: "Courier New", Courier, monospace;*/
font-family: "Lucida Console", Monaco, monospace;
height: calc(100vh - 480px);
height: calc(100vh - 505px);
width: 100%;
overflow-y: auto;
overflow-x: none;

Wyświetl plik

@ -131,6 +131,7 @@
</select>
<button class="button success float-right" onclick="selectPort()" id="connectBtn" type="button" disabled>Connect</button>
<button class="button alert" style="display:none;" onclick="closePort()" id="disconnectBtn" type="button">Disconnect</button>
<button class="button secondary disabled" disabled style="display:none;" id="flashBtn" type="button">please wait...</button>
</form>
</div>

Wyświetl plik

@ -1,6 +1,9 @@
var lastSelectedMachine = '';
function selectMachine(type) {
if (type == "sphinx55") {
// Sphinx 55 - COMPLETE with homing switches
var customFirmware = false;
var grblParams_def = {
$0: "10", //"Step pulse time, microseconds"
$1: "255", //"Step idle delay, milliseconds"
@ -39,6 +42,7 @@ function selectMachine(type) {
}
} else if (type == "sphinx1050") {
// Sphinx 1050
var customFirmware = false;
var grblParams_def = {
$0: "10", //"Step pulse time, microseconds"
$1: "255", //"Step idle delay, milliseconds"
@ -77,6 +81,7 @@ function selectMachine(type) {
}
} else if (type == "workbee1050") {
//Workbee 1050 COMPLETE with homing switches
var customFirmware = false;
var grblParams_def = {
$0: "10", //"Step pulse time, microseconds"
$1: "255", //"Step idle delay, milliseconds"
@ -115,6 +120,7 @@ function selectMachine(type) {
}
} else if (type == "workbee1010") {
// Workbee 1010
var customFirmware = false;
var grblParams_def = {
$0: "10", //"Step pulse time, microseconds"
$1: "255", //"Step idle delay, milliseconds"
@ -153,6 +159,7 @@ function selectMachine(type) {
}
} else if (type == "workbee1510") {
// Workbee1510
var customFirmware = false;
var grblParams_def = {
$0: "10", //"Step pulse time, microseconds"
$1: "255", //"Step idle delay, milliseconds"
@ -191,6 +198,8 @@ function selectMachine(type) {
}
} else if (type == "acro55") {
// Acro 55
var customFirmware = true;
var customFirmwareFile = 'acro';
var grblParams_def = {
$0: "10", //"Step pulse time, microseconds"
$1: "255", //"Step idle delay, milliseconds"
@ -229,6 +238,8 @@ function selectMachine(type) {
}
} else if (type == "acro510") {
// Acro 510
var customFirmware = true;
var customFirmwareFile = 'acro';
var grblParams_def = {
$0: "10", //"Step pulse time, microseconds"
$1: "255", //"Step idle delay, milliseconds"
@ -267,6 +278,8 @@ function selectMachine(type) {
}
} else if (type == "acro1010") {
// Acro 1010
var customFirmware = true;
var customFirmwareFile = 'acro';
var grblParams_def = {
$0: "10", //"Step pulse time, microseconds"
$1: "255", //"Step idle delay, milliseconds"
@ -305,6 +318,8 @@ function selectMachine(type) {
}
} else if (type == "acro1510") {
// Acro 1510
var customFirmware = true;
var customFirmwareFile = 'acro';
var grblParams_def = {
$0: "10", //"Step pulse time, microseconds"
$1: "255", //"Step idle delay, milliseconds"
@ -343,6 +358,8 @@ function selectMachine(type) {
}
} else if (type == "acro1515") {
// Acro 1515
var customFirmware = true;
var customFirmwareFile = 'acro';
var grblParams_def = {
$0: "10", //"Step pulse time, microseconds"
$1: "255", //"Step idle delay, milliseconds"
@ -381,6 +398,7 @@ function selectMachine(type) {
}
} else if (type == "minimill") {
// minimill
var customFirmware = false;
var grblParams_def = {
$0: "10", //"Step pulse time, microseconds"
$1: "255", //"Step idle delay, milliseconds"
@ -419,6 +437,7 @@ function selectMachine(type) {
}
} else if (type == "cbeam") {
// C-Beam Machine
var customFirmware = false;
var grblParams_def = {
$0: "10", //"Step pulse time, microseconds"
$1: "255", //"Step idle delay, milliseconds"
@ -457,6 +476,7 @@ function selectMachine(type) {
}
} else if (type == "cbeamxl") {
// C-Beam XL:
var customFirmware = false;
var grblParams_def = {
$0: "10", //"Step pulse time, microseconds"
$1: "255", //"Step idle delay, milliseconds"
@ -495,6 +515,7 @@ function selectMachine(type) {
}
} else if (type == "leadmachine1010") {
// Leadmachine 1010
var customFirmware = false;
var grblParams_def = {
$0: "10", //"Step pulse time, microseconds"
$1: "255", //"Step idle delay, milliseconds"
@ -533,6 +554,7 @@ function selectMachine(type) {
}
} else if (type == "leadmachine55") {
// Leadmachine 55
var customFirmware = false;
var grblParams_def = {
$0: "10", //"Step pulse time, microseconds"
$1: "255", //"Step idle delay, milliseconds"
@ -582,6 +604,54 @@ function selectMachine(type) {
enableLimits(); // Enable or Disable
displayDirInvert();
setMachineButton(type);
if (lastSelectedMachine != type) {
if (lastSelectedMachine.substr(0, 4) != type.substr(0, 4)) {
if (customFirmware) {
if (customFirmwareFile == '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>",
actions: [{
caption: "No Thank you",
cls: "js-dialog-close",
onclick: function() {
console.log("Do nothing")
}
},
{
caption: "I already flashed it",
cls: "js-dialog-close",
onclick: function() {
console.log("Do nothing")
}
},
{
caption: "Yes!",
cls: "js-dialog-close success",
onclick: function() {
$('#controlTab').click();
$('#consoletab').click();
$('#grblSettings').hide();
var data = {
port: laststatus.comms.interfaces.activePort,
file: 'grbl1.1f-acro.hex'
}
socket.emit('flashGrbl', data)
}
},
]
});
}
console.log('This machine needs a custom firmware')
}
}
}
lastSelectedMachine = type;
checkifchanged()
};

Wyświetl plik

@ -5,6 +5,7 @@ function setConnectBar(val, status) {
$('#connectStatus').html("Port: Not Connected");
// Connect/Disconnect Button
$("#disconnectBtn").hide();
$("#flashBtn").hide();
$('#portUSB').parent().show();
$("#connectBtn").show();
if ($('#portUSB').val() != "") {
@ -31,6 +32,8 @@ function setConnectBar(val, status) {
$('#portUSB').parent().hide();
$("#connectBtn").attr('disabled', false);
$("#disconnectBtn").show();
$("#flashBtn").hide();
// Port Dropdown
$('#portUSB').parent(".select").addClass('disabled')
$('#portUSB').parent(".select").removeClass('success')
@ -45,6 +48,7 @@ function setConnectBar(val, status) {
$('#portUSB').parent().hide();
$("#connectBtn").attr('disabled', false);
$("#disconnectBtn").show();
$("#flashBtn").hide();
// Port Dropdown
$('#portUSB').parent(".select").addClass('disabled')
$('#portUSB').parent(".select").removeClass('success')
@ -60,6 +64,7 @@ function setConnectBar(val, status) {
$('#portUSB').parent().hide();
$("#connectBtn").attr('disabled', false);
$("#disconnectBtn").show();
$("#flashBtn").hide();
// Port Dropdown
$('#portUSB').parent(".select").addClass('disabled')
$('#portUSB').parent(".select").removeClass('success')
@ -75,6 +80,22 @@ function setConnectBar(val, status) {
$('#portUSB').parent().hide();
$("#connectBtn").attr('disabled', false);
$("#disconnectBtn").show();
$("#flashBtn").hide();
// Port Dropdown
$('#portUSB').parent(".select").addClass('disabled')
$('#portUSB').parent(".select").removeClass('success')
$('#portUSB').parent(".select").addClass('alert')
// Set Port Dropdown to Current Value
$("#portUSB").val(status.comms.interfaces.activePort);
} else if (val == 6) { // Firmware Upgrade State
// Status Badge
$('#connectStatus').html("Port: Flashing");
// Connect/Disconnect Button
$("#connectBtn").hide();
$('#portUSB').parent().hide();
$("#connectBtn").attr('disabled', false);
$("#disconnectBtn").hide();
$("#flashBtn").show();
// Port Dropdown
$('#portUSB').parent(".select").addClass('disabled')
$('#portUSB').parent(".select").removeClass('success')
@ -141,6 +162,16 @@ function setControlBar(val, status) {
$('#toolBtn2').show().attr('disabled', true);
$('#homeBtn').show().attr('disabled', true);
$('.estop').show()
} else if (val == 6) { // Firmware Upgrade State
$('#runBtn').hide().attr('disabled', true);
$('#chkSize').show().attr('disabled', true);
$('#resumeBtn').hide().attr('disabled', true);
$('#pauseBtn').hide().attr('disabled', true);
$('#stopBtn').hide().attr('disabled', true);
$('#toolBtn').hide().attr('disabled', true);
$('#toolBtn2').hide().attr('disabled', true);
$('#homeBtn').hide().attr('disabled', true);
$('.estop').hide()
}
}
@ -151,7 +182,7 @@ function setJogPanel(val, status) {
// $("#jogcontrols").slideUp(20);
$("#editor").css('height', 'calc(' + 100 + 'vh - ' + 485 + 'px)');
$("#macros").css('height', 'calc(' + 100 + 'vh - ' + 485 + 'px)');
$("#console").css('height', 'calc(' + 100 + 'vh - ' + 485 + 'px)');
$("#console").css('height', 'calc(' + 100 + 'vh - ' + 505 + 'px)');
$("#renderArea").css('height', 'calc(' + 100 + 'vh - ' + 448 + 'px)');
// $('#console').scrollTop($("#console")[0].scrollHeight - $("#console").height());
if (editor) {
@ -175,7 +206,7 @@ function setJogPanel(val, status) {
$("#svgview").css('background-color', '#ffffff');
$("#editor").css('height', 'calc(' + 100 + 'vh - ' + 485 + 'px)');
$("#macros").css('height', 'calc(' + 100 + 'vh - ' + 485 + 'px)');
$("#console").css('height', 'calc(' + 100 + 'vh - ' + 485 + 'px)');
$("#console").css('height', 'calc(' + 100 + 'vh - ' + 505 + 'px)');
$("#renderArea").css('height', 'calc(' + 100 + 'vh - ' + 448 + 'px)');
// $('#console').scrollTop($("#console")[0].scrollHeight - $("#console").height());
if (editor) {
@ -198,7 +229,7 @@ function setJogPanel(val, status) {
$("#svgview").css('background-color', '#f5f6f7');
$("#editor").css('height', 'calc(' + 100 + 'vh - ' + 485 + 'px)');
$("#macros").css('height', 'calc(' + 100 + 'vh - ' + 485 + 'px)');
$("#console").css('height', 'calc(' + 100 + 'vh - ' + 485 + 'px)');
$("#console").css('height', 'calc(' + 100 + 'vh - ' + 505 + 'px)');
$("#renderArea").css('height', 'calc(' + 100 + 'vh - ' + 448 + 'px)');
if (editor) {
editor.resize()
@ -218,7 +249,7 @@ function setJogPanel(val, status) {
$("#svgview").css('background-color', '#f5f6f7');
$("#editor").css('height', 'calc(' + 100 + 'vh - ' + 485 + 'px)');
$("#macros").css('height', 'calc(' + 100 + 'vh - ' + 485 + 'px)');
$("#console").css('height', 'calc(' + 100 + 'vh - ' + 485 + 'px)');
$("#console").css('height', 'calc(' + 100 + 'vh - ' + 505 + 'px)');
$("#renderArea").css('height', 'calc(' + 100 + 'vh - ' + 448 + 'px)');
if (editor) {
editor.resize()
@ -237,7 +268,7 @@ function setJogPanel(val, status) {
$("#svgview").css('background-color', '#f5f6f7');
$("#editor").css('height', 'calc(' + 100 + 'vh - ' + 485 + 'px)');
$("#macros").css('height', 'calc(' + 100 + 'vh - ' + 485 + 'px)');
$("#console").css('height', 'calc(' + 100 + 'vh - ' + 485 + 'px)');
$("#console").css('height', 'calc(' + 100 + 'vh - ' + 505 + 'px)');
$("#renderArea").css('height', 'calc(' + 100 + 'vh - ' + 448 + 'px)');
// $('#console').scrollTop($("#console")[0].scrollHeight - $("#console").height());
if (editor) {
@ -252,6 +283,30 @@ function setJogPanel(val, status) {
cone.visible = false;
}
}
} else if (val == 6) { // Firmware Upgrade State
// Show panel and resize editor
$("#svgview").css('background-color', '#f5f6f7');
// $("#jogcontrols").slideUp(20);
$("#editor").css('height', 'calc(' + 100 + 'vh - ' + 485 + 'px)');
$("#macros").css('height', 'calc(' + 100 + 'vh - ' + 485 + 'px)');
$("#console").css('height', 'calc(' + 100 + 'vh - ' + 505 + 'px)');
$("#renderArea").css('height', 'calc(' + 100 + 'vh - ' + 448 + 'px)');
// $('#console').scrollTop($("#console")[0].scrollHeight - $("#console").height());
if (editor) {
editor.resize()
}
$('.jogbtn').attr('disabled', true);
if ($('#jograte').attr('disabled')) {
$('#jograte').attr('disabled', false);
}
$('#xPos').html('0.00');
$('#yPos').html('0.00');
$('#zPos').html('0.00');
if (!isJogWidget && webgl) {
if (!simRunning) {
cone.visible = false;
}
}
}
}
@ -277,5 +332,10 @@ function setConsole(val, status) {
} else if (val == 5) { // Alarm State
$("#command").attr('disabled', false);
$("#sendCommand").prop('disabled', false);
} else if (val == 6) { // Firmware Upgrade State
if (!$('#command').attr('disabled')) {
$('#command').attr('disabled', true);
}
$("#sendCommand").prop('disabled', true);
}
}

Wyświetl plik

@ -43,7 +43,7 @@ function printLog(string) {
template += '<span class="fg-brandColor1">[' + (time.getHours() < 10 ? '0' : '') + time.getHours() + ":" + (time.getMinutes() < 10 ? '0' : '') + time.getMinutes() + ":" + (time.getSeconds() < 10 ? '0' : '') + time.getSeconds() + ']</span> ';
template += string;
$('#console').append(template);
$('#console').scrollTop($("#console")[0].scrollHeight - $("#console").height());
$('#console').scrollTop(($("#console")[0].scrollHeight - $("#console").height()) + 20);
}
}
@ -193,6 +193,26 @@ function initSocket() {
//
});
socket.on('progStatus', function(data) {
$('#controlTab').click();
$('#consoletab').click();
console.log(data.port, data.string)
var string = data.string
if (string) {
if (string.indexOf('flash complete') != -1) {
setTimeout(function() {
populatePortsMenu();
}, 400)
}
string = string.replace('flash complete.', "<span class='fg-red'><i class='fas fa-times fa-fw fg-red fa-fw'> </i> FLASH FAILED!</span> ");
string = string.replace('', "<span class='fg-green'><i class='fas fa-check fa-fw fg-green fa-fw'></i> ");
string = string.replace('', "</span>");
printLog("<span class='fg-red'>[ Firmware Upgrade ] </span>" + string)
// $('#sendCommand').click();
}
});
socket.on('status', function(status) {
if (nostatusyet) {

1872
grbl1.1f-acro.hex 100644

Plik diff jest za duży Load Diff

Wyświetl plik

@ -633,6 +633,60 @@ io.on("connection", function(socket) {
})
socket.on("flashGrbl", function(data) {
var port = data.port;
var file = data.file;
const Avrgirl = require('avrgirl-arduino');
if (status.comms.connectionStatus > 0) {
console.log('WARN: Closing Port ' + port);
stopPort();
} else {
console.log('ERROR: Machine connection not open!');
}
function flashGrblCallback(debugString, port) {
console.log(port, debugString);
var data = {
'port': port,
'string': debugString
}
io.sockets.emit("progStatus", data);
}
setTimeout(function() {
var avrgirl = new Avrgirl({
board: 'uno',
port: port,
debug: function(debugString) {
var port = this.connection.options.port;
flashGrblCallback(debugString, port)
}
});
status.comms.connectionStatus = 6;
avrgirl.flash(file, function(error) {
if (error) {
console.error(error);
io.sockets.emit("progStatus", 'Flashing FAILED!');
status.comms.connectionStatus = 0;
} else {
console.info('done.');
io.sockets.emit("progStatus", 'Programmed Succesfully');
io.sockets.emit("progStatus", 'Please Reconnect');
status.comms.connectionStatus = 0;
}
status.comms.connectionStatus = 0;
});
}, 1000)
})
socket.on("connectTo", function(data) { // If a user picks a port to connect to, open a Node SerialPort Instance to it
if (status.comms.connectionStatus < 1) {
@ -645,6 +699,7 @@ io.on("connection", function(socket) {
});
port.on("error", function(err) {
if (err.message != "Port is not open") {
console.log("Error: ", err.message);
var output = {
'command': '',
@ -664,6 +719,8 @@ io.on("connection", function(socket) {
} else {
console.log('ERROR: Machine connection not open!');
}
}
});
port.on("open", function() {
console.log("PORT INFO: Connected to " + port.path + " at " + port.options.baudRate);

1580
package-lock.json wygenerowano

Plik diff jest za duży Load Diff

Wyświetl plik

@ -1,6 +1,6 @@
{
"name": "OpenBuildsCONTROL",
"version": "1.0.119",
"version": "1.0.120",
"license": "AGPL-3.0",
"description": "Machine Interface Driver for OpenBuilds",
"author": "github.com/openbuilds <webmaster@openbuilds.com>",
@ -11,6 +11,7 @@
"ncp": "^2.0.0"
},
"dependencies": {
"avrgirl-arduino": "^3.0.0",
"directory-tree": "^2.1.0",
"electron-updater": "^2.23.3",
"express": "^4.16.2",
@ -64,7 +65,8 @@
],
"files": [
"**/*",
"ssl/**/*"
"ssl/**/*",
"firmware/**/*"
],
"extraFiles": [
"ssl"