From d63066f092a5f90e638409ab9d700322be9589c2 Mon Sep 17 00:00:00 2001 From: Jake <jake.read@cba.mit.edu> Date: Mon, 29 Oct 2018 17:17:11 -0400 Subject: [PATCH] forward after whole-earth --- README.md | 52 ++++++++- load/handico-noz.gcode | 28 +++++ load/handico.gcode | 40 +++++++ load/ico-unpruned.gcode | 233 ++++++++++++++++++++++++++++++++++++++++ load/updown.gcode | 30 ++++++ server.js | 2 + src/motion/planner.js | 8 +- src/ui/multiline.js | 4 +- src/ui/number.js | 2 +- 9 files changed, 391 insertions(+), 8 deletions(-) create mode 100644 load/handico-noz.gcode create mode 100644 load/handico.gcode create mode 100644 load/ico-unpruned.gcode create mode 100644 load/updown.gcode diff --git a/README.md b/README.md index 90a1fe5..b28bee1 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,59 @@ # Automatakit API -aka project consistent-sandbox +aka project 'consistent-sandbox' + + +## Programming + - need test of planner sequence + - next: close loop, bigger gcode terminal, test program + - once we can plan gcode sequence, work towards more + - better hardware abstraction, i.e. + stepper.port = bridge.port('0,1') + stepper.port.onPacket = function(){ ... } + callbacks ? + - UI elements, i.e. demonstrating slider for individual axis movements, or just an arrow / keypad capture on mouseover thing + - c improvements / dma etc, would be very cool, good for ruben, erik to send + - dma not possible / not enough channels / not portable enough ... + - still want to measure, though, and look through static / etc ? + - and *really* what we want / need is error correction / buffer overrun errors and port slowdowns on swside + - i.e. acks-in-between ? acks-per-packet ? + - is timing still important ? depends on network speed ! + - go back to 0.5mbaud and test finally ? + + - bldc running, commutating, encoder 1st or do adc ? scope it out ## oy + - pull out hand-written gcode for testing + - rebase to commit prior to teardown, unless planner changed at all? + + - documentation ... video ... fabclass, kerala (missing email?), oakland - should build a machine + - controllers should work tho + - should very much remind them to find *people* to do the education + + - bridge has bug w/ two addresses only one is sent + - cooler demo - - jog option + - better gcode + - jog option ! + + - should be able to loop easily + - want to show niche machines - this 'long tail mfg / automation' is a good pitch + - heating elements, flow control, material handling etc + - closed cycle cardboard for cardboard machine 'high performance laser cutter feedstock' + - coffee roaster + - etc + - flow control is solenoids on breadboardboard + - breadboardboard header solder on 'the rest' of circuitry solder on headers + + - esperonto - / asicdesigner.net + + - go to pitch size for optical bench + + - city / state budget flow assumes flow out, re-route flow into city thru education projects + - economic benifit + economic benefit + - fab academy - 'too long and expensive and inecessible to most users' + - realistically what do people make in fab labs - what can we show ... what would bring people in? - port flushing ? - want a test / reset set diff --git a/load/handico-noz.gcode b/load/handico-noz.gcode new file mode 100644 index 0000000..db8ea44 --- /dev/null +++ b/load/handico-noz.gcode @@ -0,0 +1,28 @@ +G1 X795.2 Y419.3 F100 +G0 X723.2 Y534.6 F50 +G0 X708.9 Y725.8 +G1 X972.7 Y341.0 +G0 X795.2 Y419.3 +G0 X708.9 Y725.8 +G0 X833.1 Y834.7 +G0 X972.7 Y903.0 +G0 X1150.2 Y824.5 +G0 X1222.4 Y409.1 +G0 X1112.4 Y409.1 +G0 X795.2 Y419.3 +G0 X949.3 Y648.3 +G0 X708.9 Y725.8 +G1 X1236.5 Y518.1 +G0 X1112.4 Y409.1 +G0 X972.7 Y341.0 +G1 X708.9 Y725.8 +G0 X972.7 Y903 +G0 X1222.1 Y709.3 +G0 X1236.5 Y518.1 +G1 X949.3 Y648.3 +G0 X1222.1 Y709.3 +G1 X1112.4 Y409.1 +G0 X949.3 Y648.3 +G0 X972.7 Y903 +G1 X1300 Y1000 +G1 X0 Y0 \ No newline at end of file diff --git a/load/handico.gcode b/load/handico.gcode new file mode 100644 index 0000000..148f333 --- /dev/null +++ b/load/handico.gcode @@ -0,0 +1,40 @@ +G1 Z5 F100 +G1 X795.2 Y419.3 +G0 Z0 F50 +G0 X723.2 Y534.6 +G0 X708.9 Y725.8 +G1 Z5 +G1 X972.7 Y341.0 +G0 Z0 +G0 X795.2 Y419.3 +G0 X708.9 Y725.8 +G0 X833.1 Y834.7 +G0 X972.7 Y903.0 +G0 X1150.2 Y824.5 +G0 X1222.4 Y409.1 +G0 X1112.4 Y409.1 +G0 X795.2 Y419.3 +G0 X949.3 Y648.3 +G0 X708.9 Y725.8 +G1 Z5 +G1 X1236.5 Y518.1 +G0 Z0 +G0 X1112.4 Y409.1 +G0 X972.7 Y341.0 +G1 Z5 +G1 X708.9 Y725.8 +G0 Z0 +G0 X972.7 Y903 +G0 X1222.1 Y709.3 +G0 X1236.5 Y518.1 +G1 Z5 +G1 X949.3 Y648.3 +G0 Z0 +G0 X1222.1 Y709.3 +G1 Z5 +G1 X1112.4 Y409.1 +G0 Z0 +G0 X949.3 Y648.3 +G0 X972.7 Y903 +G1 Z5 +G1 X1300 Y1000 \ No newline at end of file diff --git a/load/ico-unpruned.gcode b/load/ico-unpruned.gcode new file mode 100644 index 0000000..520e325 --- /dev/null +++ b/load/ico-unpruned.gcode @@ -0,0 +1,233 @@ +G0 Z5.0000 F100 +G0 X87.7230Y8.0230 +G1 Z0.0000 F50 +G1 X0.9540Y126.8930 +G0 Z5.0000 +G0 X0.9540Y126.8930 +G1 Z0.0000 +G1 X29.2600Y54.1250 +G1 X87.6220Y8.0230 +G0 Z5.0000 +G0 X87.7230Y8.0230 +G1 Z0.0000 +G1 X87.7320Y8.0230 +G1 X91.6956Y21.1580 +G0 Z5.0000 +G0 X91.6956Y21.1580 +G1 Z0.0000 +G1 X123.4990Y126.5520 +G1 X123.4990Y126.5606 +G0 Z5.0000 +G0 X123.4990Y126.5606 +G1 Z0.0000 +G1 X91.6956Y21.1580 +G0 Z5.0000 +G0 X91.6956Y21.1580 +G1 Z0.0000 +G1 X87.7323Y8.0228 +G0 Z5.0000 +G0 X87.7323Y8.0228 +G1 Z0.0000 +G1 X169.6749Y9.3584 +G1 X227.8618Y53.8484 +G0 Z5.0000 +G0 X227.8618Y53.8484 +G1 Z0.0000 +G1 X87.7323Y8.0228 +G0 Z5.0000 +G0 X123.4990Y126.5606 +G1 Z0.0000 +G1 X123.4997Y126.5611 +G0 Z5.0000 +G0 X123.4997Y126.5611 +G1 Z0.0000 +G1 X123.5012Y126.5600 +G0 Z5.0000 +G0 X123.5012Y126.5600 +G1 Z0.0000 +G1 X123.5000Y126.5600 +G1 X123.4997Y126.5611 +G0 Z5.0000 +G0 X123.4997Y126.5611 +G1 Z0.0000 +G1 X93.7777Y223.2278 +G0 Z5.0000 +G0 X93.7777Y223.2278 +G1 Z0.0000 +G1 X86.5717Y246.6659 +G0 Z5.0000 +G0 X86.5717Y246.6659 +G1 Z0.0000 +G1 X86.5713Y246.6656 +G0 Z5.0000 +G0 X86.5713Y246.6656 +G1 Z0.0000 +G1 X86.4979Y246.6105 +G0 Z5.0000 +G0 X86.4979Y246.6105 +G1 Z0.0000 +G1 X0.9907Y127.1050 +G0 Z5.0000 +G0 X0.9907Y127.1050 +G1 Z0.0000 +G1 X0.9906Y127.1048 +G0 Z5.0000 +G0 X0.9906Y127.1048 +G1 Z0.0000 +G1 X86.4979Y246.6105 +G0 Z5.0000 +G0 X86.4979Y246.6105 +G1 Z0.0000 +G1 X28.2465Y201.8719 +G1 X0.9907Y127.1050 +G0 Z5.0000 +G0 X0.9907Y127.1050 +G1 Z0.0000 +G1 X0.9630Y127.0220 +G1 X7.7722Y126.9995 +G0 Z5.0000 +G0 X7.7722Y126.9995 +G1 Z0.0000 +G1 X0.9630Y127.0220 +G1 X0.9350Y126.9390 +G1 X0.9540Y126.8930 +G0 Z5.0000 +G0 X7.7722Y126.9995 +G1 Z0.0000 +G1 X123.4807Y126.6170 +G0 Z5.0000 +G0 X123.4807Y126.6170 +G1 Z0.0000 +G1 X7.7722Y126.9995 +G0 Z5.0000 +G0 X123.4807Y126.6170 +G1 Z0.0000 +G1 X123.4810Y126.6170 +G0 Z5.0000 +G0 X123.4810Y126.6170 +G1 Z0.0000 +G1 X123.4990Y126.5606 +G0 Z5.0000 +G0 X123.5012Y126.5600 +G1 Z0.0000 +G1 X205.3440Y69.7019 +G0 Z5.0000 +G0 X205.3440Y69.7019 +G1 Z0.0000 +G1 X123.5100Y126.5600 +G0 Z5.0000 +G0 X123.5100Y126.5600 +G1 Z0.0000 +G1 X227.0000Y201.4800 +G0 Z5.0000 +G0 X227.0000Y201.4800 +G1 Z0.0000 +G1 X226.9900Y201.5000 +G1 X226.9018Y201.5686 +G0 Z5.0000 +G0 X226.9018Y201.5686 +G1 Z0.0000 +G1 X201.5364Y209.7327 +G0 Z5.0000 +G0 X201.5364Y209.7327 +G1 Z0.0000 +G1 X226.9000Y201.5700 +G1 X226.9018Y201.5686 +G0 Z5.0000 +G0 X226.9018Y201.5686 +G1 Z0.0000 +G1 X226.9039Y201.5680 +G1 X168.2011Y247.8725 +G0 Z5.0000 +G0 X168.2011Y247.8725 +G1 Z0.0000 +G1 X86.6730Y246.7027 +G1 X201.5364Y209.7327 +G0 Z5.0000 +G0 X201.5364Y209.7327 +G1 Z0.0000 +G1 X86.6700Y246.7000 +G1 X86.6300Y246.7000 +G1 X86.5700Y246.6700 +G0 Z5.0000 +G0 X86.5700Y246.6700 +G1 Z0.0000 +G1 X86.5713Y246.6656 +G0 Z5.0000 +G0 X86.5713Y246.6656 +G1 Z0.0000 +G1 X93.7777Y223.2278 +G0 Z5.0000 +G0 X93.7777Y223.2278 +G1 Z0.0000 +G1 X123.4807Y126.6170 +G0 Z5.0000 +G0 X123.5012Y126.5600 +G1 Z0.0000 +G1 X123.5100Y126.5600 +G0 Z5.0000 +G0 X205.3440Y69.7019 +G1 Z0.0000 +G1 X227.8979Y54.0315 +G0 Z5.0000 +G0 X227.8979Y54.0315 +G1 Z0.0000 +G1 X227.8982Y53.9686 +G0 Z5.0000 +G0 X227.8982Y53.9686 +G1 Z0.0000 +G1 X227.8982Y53.8944 +G1 X227.8892Y53.8670 +G1 X227.8618Y53.8484 +G0 Z5.0000 +G0 X227.8982Y53.9686 +G1 Z0.0000 +G1 X227.8987Y53.8944 +G1 X255.3111Y129.1221 +G1 X227.0236Y201.4114 +G0 Z5.0000 +G0 X227.0236Y201.4114 +G1 Z0.0000 +G1 X227.5750Y108.4543 +G0 Z5.0000 +G0 X227.5750Y108.4543 +G1 Z0.0000 +G1 X227.8979Y54.0332 +G0 Z5.0000 +G0 X227.8979Y54.0332 +G1 Z0.0000 +G1 X227.8979Y54.0315 +G0 Z5.0000 +G0 X227.8979Y54.0315 +G1 Z0.0000 +G1 X227.8982Y54.0312 +G0 Z5.0000 +G0 X227.8982Y54.0312 +G1 Z0.0000 +G1 X227.8982Y53.9686 +G0 Z5.0000 +G0 X227.8982Y54.0312 +G1 Z0.0000 +G1 X227.9000Y54.0300 +G1 X227.5750Y108.4543 +G0 Z5.0000 +G0 X227.5750Y108.4543 +G1 Z0.0000 +G1 X227.0200Y201.4100 +G1 X227.0000Y201.4800 +G0 Z5.0000 +G0 X205.3440Y69.7019 +G1 Z0.0000 +G1 X227.8979Y54.0332 +G0 Z5.0000 +G0 X227.8979Y54.0332 +G1 Z0.0000 +G1 X227.8987Y54.0326 +G0 Z5.0000 +G0 X227.8987Y54.0326 +G1 Z0.0000 +G1 X227.8982Y54.0312 +G0 Z5.0000 +G0 Z5.0000 +G0 X0Y0 +M05 diff --git a/load/updown.gcode b/load/updown.gcode new file mode 100644 index 0000000..a42c617 --- /dev/null +++ b/load/updown.gcode @@ -0,0 +1,30 @@ +G0 X100 +G0 Y5 +G0 X200 +G0 Y0 +G0 X0 +G0 Y5 +G0 X100 +G0 Y0 +G0 X200 +G0 X0 +G0 X100 +G0 Y5 +G0 X200 +G0 Y0 +G0 X0 +G0 Y5 +G0 X100 +G0 Y0 +G0 X200 +G0 X0 +G0 X100 +G0 Y5 +G0 X200 +G0 Y0 +G0 X0 +G0 Y5 +G0 X100 +G0 Y0 +G0 X200 +G0 X0 \ No newline at end of file diff --git a/server.js b/server.js index e9bea40..ca493da 100644 --- a/server.js +++ b/server.js @@ -200,6 +200,8 @@ bridge.state.rE = '0' bridge.init() +multiline.load() + // setting data w/r/t the representations they serve setUiPos(multiline, 10, 10) diff --git a/src/motion/planner.js b/src/motion/planner.js index 7d6115a..1d019a9 100644 --- a/src/motion/planner.js +++ b/src/motion/planner.js @@ -20,7 +20,7 @@ function Planner() { planner.state = State() var state = planner.state // reference pass attempt? - state.axisIDs = 'X,Y,Z' + state.axisIDs = 'X,Y' state.onChange('axisIDs', axisIDUpdate) state.reset = Button('reset planner') @@ -33,14 +33,14 @@ function Planner() { state.startStop = Button('start / stop planner') state.onChange('startStop', onStartStop) - state.position = [0, 0, 0] + state.position = [0, 0] // should be grn / red button ... state.isRunning = 1 state.onChange('isRunning', netStateRefresh) - state.netWindow = 5 - state.netState = [0, 0, 0] + state.netWindow = 3 + state.netState = [0, 0] planner.inputs = { instruction: Input('move instruction', onNewInstruction), diff --git a/src/ui/multiline.js b/src/ui/multiline.js index f430342..c0f9253 100644 --- a/src/ui/multiline.js +++ b/src/ui/multiline.js @@ -83,7 +83,7 @@ function MultiLineIn() { function onLoadFile() { console.log('!!!!!!') - fs.readFile('load/ico.gcode', 'utf8', (err, data) => { + fs.readFile('load/updown.gcode', 'utf8', (err, data) => { if (err) throw err; console.log(data); state.incoming.value = data @@ -91,6 +91,8 @@ function MultiLineIn() { }) } + multilinein.load = onLoadFile + function onExternalLine(str) { // push new str to bottom of queue } diff --git a/src/ui/number.js b/src/ui/number.js index ca99b71..04fbe19 100644 --- a/src/ui/number.js +++ b/src/ui/number.js @@ -20,7 +20,7 @@ function uiNum() { // alias ! var state = uinum.state - state.number = 7 + state.number = 10 state.onChange('number', onNumberDesire) state.button = Button('WHAM') -- GitLab