Skip to content

Instantly share code, notes, and snippets.

Jog </h2><div data-v-4907e307=""><svg style="display: none;"><symbol data-v-4907e307="" data-fa-symbol="home" class="svg-inline--fa fa-home fa-w-18 fa-fw" aria-hidden="true" data-prefix="fas" data-icon="home" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" data-fa-i2svg="" id="home"><path fill="currentColor" d="M488 312.7V456c0 13.3-10.7 24-24 24H348c-6.6 0-12-5.4-12-12V356c0-6.6-5.4-12-12-12h-72c-6.6 0-12 5.4-12 12v112c0 6.6-5.4 12-12 12H112c-13.3 0-24-10.7-24-24V312.7c0-3.6 1.6-7 4.4-9.3l188-154.8c4.4-3.6 10.8-3.6 15.3 0l188 154.8c2.7 2.3 4.3 5.7 4.3 9.3zm83.6-60.9L488 182.9V44.4c0-6.6-5.4-12-12-12h-56c-6.6 0-12 5.4-12 12V117l-89.5-73.7c-17.7-14.6-43.3-14.6-61 0L4.4 251.8c-5.1 4.2-5.8 11.8-1.6 16.9l25.5 31c4.2 5.1 11.8 5.8 16.9 1.6l235.2-193.7c4.4-3.6 10.8-3.6 15.3 0l235.2 193.7c5.1 4.2 12.7 3.5 16.9-1.6l25.5-31c4.2-5.2 3.4-12.7-1.7-16.9z"></path></symbol></svg><!-- <i data-v-4907e307="" data-fa-symbol="home" class="fas fa-home fa-fw"></i> --><svg style="display: none;"><symbol data-v-49
if( progress_answer.match(/est time/)){
var found = progress_answer.match(/file: (.+?), (\d+) % complete, elapsed time: (\d+):(\d+):(\d+), est time: (\d+):(\d+):(\d+)/);
that.status.file = found[1];
that.status.percent = found[2];
that.status.elapsed.set(found[3], found[4], found[5]);
this.status.estimated.set(found[6], found[7], found[8]);
}else{
var found = progress_answer.match(/file: (.+?), (\d+) % complete, elapsed time: (\d+):(\d+):(\d+)/);
that.status.file = found[1];
that.status.percent = found[2];
✘ arthur@aquarelle ~/dev/js/Smoothie > ack connection_log
src/connect/views/Connect.vue
17: <LogList title="Connection log" v-bind:items="communication.connection_log"></LogList>
src/index/views/Home.vue
17: <LogList title="Connection log" v-bind:items="communication.connection_log"></LogList>
dist/javascript/machine.js
137: machine.communication.connection_log.push(reason, {icon: 'times', color: 'danger'});
require 'bigdecimal'
DOPLOT= false
TOFILE= false
STEPS_PER_MM= 80.0
STEP_TICKER_FREQUENCY= 100000.0
# set these
$xdistance= 6 # total distance to move for single axis in mm
require 'bigdecimal'
DOPLOT= true
TOFILE= false
STEPS_PER_MM= 80.0
STEP_TICKER_FREQUENCY= 100000.0
# set these
distance= 1 # total distance to move for single axis in mm
require 'bigdecimal'
DOPLOT= true
TOFILE= false
STEPS_PER_MM= 80.0
STEP_TICKER_FREQUENCY= 100000.0
# set these
distance= 1 # total distance to move for single axis in mm
require 'bigdecimal'
DOPLOT= false
TOFILE= false
STEPS_PER_MM= 80.0
STEP_TICKER_FREQUENCY= 100000.0
# set these
distance= 3 # total distance to move for single axis in mm
require 'bigdecimal'
DOPLOT= false
TOFILE= false
STEPS_PER_MM= 80.0
STEP_TICKER_FREQUENCY= 100000.0
# set these
distance= 3 # total distance to move for single axis in mm
/*
This file is part of Smoothie (http://smoothieware.org/). The motion control part is heavily based on Grbl (https://github.com/simen/grbl).
Smoothie is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Smoothie is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with Smoothie. If not, see <http://www.gnu.org/licenses/>.
*/
#include "Extruder.h"
#include "libs/Module.h"
Changes needed for much more rational accel :
Essentially, all accel happens in stepticker, and the modules tell it what to do.
#########################
Changes to steppermotor :
* Instead of getting distance ( once ) and speed updates ( on a regular basis ), it gets distance + initial speed + accel + accelerate_until + decelerate_after ( once ) and stores them, then does accel itself
* On accel tick call from stepticker, update speed ( speed += accel_change ), checks if we are at a point where the accel ramp needs to change, and if so, modify accel_change
Note : to try to limit the number of ifs, we don't test both for if(current_tick = accelerate_until) and if(current_tick = decelerate_after) but we check for if(current_tick = next_ramp_change), and then change next_ramp_change as needed when a ramp change happens
Note : we need to modify planner to express those in term of ticks instead of steps, and then just compare them with the current tick