1.0.6 Firmware release. More Github cleanup.

This commit is contained in:
OneFinityCNC
2021-02-28 00:58:19 -05:00
parent 7320e5e4e5
commit a0ae0a4e30
26 changed files with 118 additions and 26 deletions

View File

@@ -4,6 +4,14 @@ OneFinity CNC Controller Firmware Changelog
Note: This firmware was forked from version 0.4.14 of the Buildbotics firmware
Buildbotics Changelog is provided below
## v1.0.6
- Tweaked stall homing procedure to clear stepper stall condition before homing
- Modified motor homing parameters (8 microsteps, 1.688 m/min search velocity, 2 stall volts, 1 stall current, 1.5mm zero backoff)
- Added pop up message while loading/simulating file on upload
- Decreased max velocity in default settings for X and Y axes
- Restored jerk to 1000 on all axes
- Fixed issue with default units not displaying on Control page (thanks to Robin Goldstone)
## v1.0.5
- Changed the jog commands so that save/restore modal states are not used to avoid situation where spindle/loads could
turn back on if the stop button was used instead of the M5/M9 gcode commands.

View File

@@ -62,7 +62,9 @@ $(GPLAN_MOD): $(GPLAN_IMG)
git -C rpi-share/cbang reset --hard FETCH_HEAD
git -C rpi-share/camotics fetch
git -C rpi-share/camotics reset --hard FETCH_HEAD
git -C rpi-share/camotics checkout ec876c80d20fc19837133087cef0c447df5a939d
cp ./scripts/gplan-build.sh rpi-share/
chmod +x rpi-share/gplan-build.sh
sudo ./scripts/rpi-chroot.sh $(GPLAN_IMG) /mnt/host/gplan-build.sh
$(GPLAN_IMG):

View File

@@ -0,0 +1 @@
#OneFinity CNC Controller Firmware

View File

@@ -1,6 +1,6 @@
{
"name": "bbctrl",
"version": "1.0.5",
"version": "1.0.6",
"homepage": "https://onefinitycnc.com/",
"repository": "https://github.com/OneFinityCNC/onefinity",
"license": "GPL-3.0+",

0
scripts/gplan-build.sh Normal file → Executable file
View File

1
scripts/gplan-init-build.sh Normal file → Executable file
View File

@@ -24,6 +24,7 @@ if [ ! -e $GPLAN_IMG ]; then
# Init image
mkdir -p rpi-share
cp ./scripts/gplan-init-dev-img.sh rpi-share
chmod +x ./rpi-share/gplan-init-dev-img.sh
sudo ./scripts/rpi-chroot.sh $GPLAN_IMG.tmp /mnt/host/gplan-init-dev-img.sh
# Move image

0
scripts/gplan-init-dev-img.sh Normal file → Executable file
View File

0
scripts/install.sh Normal file → Executable file
View File

2
scripts/rpi-chroot.sh Normal file → Executable file
View File

@@ -1,7 +1,7 @@
#!/bin/bash -ex
ROOT="$PWD/rpi-root"
LOOP=9
LOOP=12
if [ $# -lt 1 ]; then
echo "Usage: $0 <image> <exec>"

0
scripts/update-bbctrl Normal file → Executable file
View File

0
scripts/upgrade-bbctrl Normal file → Executable file
View File

View File

@@ -1,4 +1,5 @@
hostinfo.sh &
ratpoison &
xset -dpms

View File

@@ -118,7 +118,8 @@ module.exports = new Vue({
password: '',
ipAddress: '0.0.0.0',
wifiSSID: '',
confirmShutdown: false
confirmShutdown: false,
diskSpace: ''
}
},
@@ -309,6 +310,7 @@ module.exports = new Vue({
this.check_ip_address();
this.check_ssid();
//.check_disk_space();
}.bind(this))
@@ -342,6 +344,20 @@ module.exports = new Vue({
}.bind(this))
},
// check_disk_space : function() {
// $.ajax({
// type: 'GET',
// url: 'diskinfo.txt',
// data: {hid: this.state.hid},
// cache: false
//
// }).done(function (data) {
// console.debug('>', data);
// this.diskSpace = data;
// this.$broadcast('diskSpace', data);
// }.bind(this))
// },
get_ip_address : function() {
console.debug('get_ip>', this.ipAddress);
return this.ipAddress;
@@ -352,12 +368,22 @@ module.exports = new Vue({
return this.wifiSSID;
},
// get_disk_space : function() {
// console.debug('get_disk>', this.diskSpace);
// return this.diskSpace;
// },
shutdown : function() {
this.confirmShutdown = false;
api.put('shutdown');
},
reboot : function() {
this.confirmShutdown = false;
api.put('reboot');
},
connect: function () {
this.sock = new Sock('//' + window.location.host + '/sockjs');

View File

@@ -73,7 +73,8 @@ module.exports = {
ask_home: true,
ask_home_msg: false,
ask_zero_xy_msg: false,
ask_zero_z_msg: false
ask_zero_z_msg: false,
showGcodeMessage: false
}
},
@@ -93,6 +94,19 @@ module.exports = {
immediate: true
},
'state.bitDiameter': {
handler: function (bitDiameter) {
console.log("New bitDiameter " + bitDiameter);
console.log("Units: " + this.mach_units);
if(this.mach_units == 'IMPERIAL')
this.tool_diameter = bitDiameter / 25.4;
else
this.tool_diameter = bitDiameter;
console.log("Tool diameter: " + this.tool_diameter);
},
immediate: true
},
mach_units: function (units) {
if ((units == 'METRIC') != this.metric)
@@ -508,6 +522,7 @@ module.exports = {
if (typeof toolpath.progress == 'undefined') {
toolpath.filename = file;
this.toolpath_progress = 1;
this.showGcodeMessage = false;
this.toolpath = toolpath;
var state = this.$root.state;
@@ -518,6 +533,7 @@ module.exports = {
}
} else {
this.showGcodeMessage = true;
this.toolpath_progress = toolpath.progress;
this.load_toolpath(file, file_time); // Try again
}

View File

@@ -87,13 +87,15 @@ html(lang="en")
li.pure-menu-heading
a.pure-menu-link(href="#help") Help
button.pure-button.pure-button-primary(@click="confirmShutdown = true") Shutdown
button.pure-button.pure-button-primary(@click="confirmShutdown = true", style="width: 100%")
.fa.fa-power-off
message(:show.sync="confirmShutdown")
h3(slot="header") Confirm shutdown?
p(slot="body") Please wait for black screen before switching off power.
div(slot="footer")
button.pure-button(@click="confirmShutdown = false") Cancel
button.pure-button.button-success(@click="shutdown") Shutdown
button.pure-button.button-success(@click="reboot") Restart
#main

View File

@@ -29,8 +29,8 @@ script#admin-general-view-template(type="text/x-template")
#admin-general
h2 Firmware
button.pure-button.pure-button-primary(@click="check") Check
button.pure-button.pure-button-primary(@click="upgrade") Upgrade
label.pure-button.pure-button-primary(@click="upload_firmware") Upload
button.pure-button.pure-button-primary(@click="upgrade") Upgrade via Web
label.pure-button.pure-button-primary(@click="upload_firmware") Upgrade via File
form.upload-firmware.file-upload
input(type="file", accept=".bz2", @change="upload")

View File

@@ -114,6 +114,17 @@ script#control-view-template(type="text/x-template")
button.pure-button(@click=`toolpath_msg['${axis}'] = false`)
| OK
message(:show.sync="showGcodeMessage")
h3(slot="header") Processing New File
div(slot="body")
h3 Please wait..
p Simulating GCode to check for errors, calculate ETA and generate 3D view.
div(slot="footer")
label Simulating {{(toolpath_progress || 0) | percent}}
message(:show.sync=`ask_home_msg`)
h3(slot="header") Home Machine

View File

@@ -369,7 +369,7 @@ static void validate_input_voltage() {
static void charge_caps() {
IO_PORT_SET(SHUNT_PIN); // Disable shunt (hi)
delay(5);
delay(1000);
IO_PORT_SET(PC2_PIN); //Enable pre-charge circuit
delay(CAP_PRECHARGE_PERIOD); //Wait for Vs caps to charge
IO_PORT_CLR(PC2_PIN); //Disable pre-charge circuit

View File

@@ -101,6 +101,7 @@ class Ctrl(object):
def configure(self):
# Indirectly configures state via calls to config() and the AVR
self.config.reload()
self.state.init()
def ready(self):

View File

@@ -51,6 +51,10 @@ axis_homing_procedure = '''
'''
stall_homing_procedure = '''
G91 G1 %(axis)s [#<_%(axis)s_zero_backoff> * -1] F[#<_%(axis)s_search_velocity>]
G4 250
G91 G1 %(axis)s [#<_%(axis)s_zero_backoff>] F[#<_%(axis)s_search_velocity>]
G4 250
G28.2 %(axis)s0 F[#<_%(axis)s_search_velocity>]
G38.6 %(axis)s[#<_%(axis)s_home_travel>]
G91 G1 G53 %(axis)s[#<_%(axis)s_zero_backoff>] F100

View File

@@ -82,6 +82,7 @@ class Planner():
def get_config(self, mdi, with_limits):
state = self.ctrl.state
config = self.ctrl.config
is_pwm = config.get('tool-type') == 'PWM Spindle'
cfg = {
# NOTE Must get current units not configured default units
@@ -89,7 +90,7 @@ class Planner():
'max-vel': state.get_axis_vector('vm', 1000),
'max-accel': state.get_axis_vector('am', 1000000),
'max-jerk': state.get_axis_vector('jm', 1000000),
'rapid-auto-off': config.get('rapid-auto-off'),
'rapid-auto-off': config.get('rapid-auto-off') and is_pwm,
'max-blend-error': config.get('max-deviation'),
'max-merge-error': config.get('max-deviation'),
'junction-accel': config.get('junction-accel'),

View File

@@ -73,14 +73,25 @@ class State(object):
self.set_callback(str(i) + 'latch_velocity',
lambda name, i = i: self.motor_latch_velocity(i))
self.set_callback('metric', lambda name: 1 if self.is_metric() else 0)
self.set_callback('imperial', lambda name: 0 if self.is_metric() else 1)
#self.set_callback('metric', lambda name: 1 if self.is_metric() else 0)
#self.set_callback('imperial', lambda name: 0 if self.is_metric() else 1)
self.reset()
self.load_files()
def is_metric(self): return self.get('units', 'METRIC') == 'METRIC'
#def is_metric(self): return self.get('units', 'METRIC') == 'METRIC'
def init(self):
# Init machine units
metric = self.ctrl.config.get('units', 'METRIC').upper() == 'METRIC'
self.log.info('INIT Metric %d' % metric)
if not 'metric' in self.vars: self.set('metric', metric)
if not 'imperial' in self.vars: self.set('imperial', not metric)
#Bit diameter for probing
diameter = self.ctrl.config.get('probe-diameter',6.35)
self.log.info('INIT Diameter %f' % diameter)
self.set('bitDiameter',diameter)
def reset(self):

View File

@@ -1 +0,0 @@
../../../build/http/

1
src/py/bbctrl/http Symbolic link
View File

@@ -0,0 +1 @@
../../../build/http/

View File

@@ -462,6 +462,13 @@
},
"probe": {
"probe-diameter": {
"type": "float",
"min": 0,
"max": 10,
"unit": "mm",
"default": 6.35
},
"probe-xdim": {
"type": "float",
"unit": "mm",

View File

@@ -35,8 +35,8 @@
{
"latch-velocity": 0.1,
"max-accel": 750,
"max-velocity": 12.75,
"search-velocity": 0.844,
"max-velocity": 10,
"search-velocity": 1.688,
"travel-per-rev": 10,
"idle-current": 0.5,
"drive-current": 2.8,
@@ -44,11 +44,11 @@
"enabled": true,
"homing-mode": "stall-min",
"reverse": false,
"stall-microstep": 16,
"stall-microstep": 8,
"min-soft-limit": 0,
"max-switch": "disabled",
"step-angle": 1.8,
"stall-current": 0.9,
"stall-current": 1.0,
"stall-sample-time": 200,
"microsteps": 16,
"stall-volts": 2,
@@ -61,8 +61,8 @@
{
"latch-velocity": 0.1,
"max-accel": 750,
"max-velocity": 12.75,
"search-velocity": 0.844,
"max-velocity": 10,
"search-velocity": 1.688,
"travel-per-rev": 10,
"idle-current": 0.5,
"drive-current": 2.8,
@@ -70,7 +70,7 @@
"enabled": true,
"homing-mode": "stall-min",
"reverse": false,
"stall-microstep": 16,
"stall-microstep": 8,
"min-soft-limit": 0,
"max-switch": "disabled",
"step-angle": 1.8,

View File

@@ -35,8 +35,8 @@
{
"latch-velocity": 0.1,
"max-accel": 750,
"max-velocity": 12.75,
"search-velocity": 0.844,
"max-velocity": 10,
"search-velocity": 1.688,
"travel-per-rev": 10,
"idle-current": 0.5,
"drive-current": 2.8,
@@ -44,7 +44,7 @@
"enabled": true,
"homing-mode": "stall-min",
"reverse": false,
"stall-microstep": 16,
"stall-microstep": 8,
"min-soft-limit": 0,
"max-switch": "disabled",
"step-angle": 1.8,
@@ -61,8 +61,8 @@
{
"latch-velocity": 0.1,
"max-accel": 750,
"max-velocity": 12.75,
"search-velocity": 0.844,
"max-velocity": 10,
"search-velocity": 1.688,
"travel-per-rev": 10,
"idle-current": 0.5,
"drive-current": 2.8,
@@ -70,7 +70,7 @@
"enabled": true,
"homing-mode": "stall-min",
"reverse": false,
"stall-microstep": 16,
"stall-microstep": 8,
"min-soft-limit": 0,
"max-switch": "disabled",
"step-angle": 1.8,