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