aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Christoph Steiner <eighthave@users.sourceforge.net>2006-12-06 03:29:06 +0000
committerHans-Christoph Steiner <eighthave@users.sourceforge.net>2006-12-06 03:29:06 +0000
commit6297a32e9961804964f687be58cf2122ef4c57b6 (patch)
tree24c53088d69cdb3dc9c51526e371fb0d8401a849
parent3e4042f3975e5d0b4d0d2b8b34431e2e7d4b5895 (diff)
- fixed up help file so that everything loads with Pd-extended
- fixed up [arduino] so that everything loads with Pd-extended - started to clean up the firmware and wrote lots of TODOs svn path=/trunk/externals/hardware/arduino/; revision=6662
-rw-r--r--Pd_firmware/Pd_firmware.pde153
-rw-r--r--arduino-help.pd170
-rw-r--r--arduino.pd56
3 files changed, 204 insertions, 175 deletions
diff --git a/Pd_firmware/Pd_firmware.pde b/Pd_firmware/Pd_firmware.pde
index d7e10bc..566abac 100644
--- a/Pd_firmware/Pd_firmware.pde
+++ b/Pd_firmware/Pd_firmware.pde
@@ -45,16 +45,17 @@
* TODO:
* TODO: add "pinMode all 0/1" command
* TODO: add cycle markers to mark start of analog, digital, pulseIn, and PWM
+ * TODO: convert to MIDI protocol using SysEx for longer messages
*/
-/* cvs version: $Id: Pd_firmware.pde,v 1.21 2006-10-31 00:39:07 eighthave Exp $ */
+/* cvs version: $Id: Pd_firmware.pde,v 1.22 2006-12-06 03:29:06 eighthave Exp $ */
/* Version numbers for the protocol. The protocol is still changing, so these
* version numbers are important. This number can be queried so that host
* software can test whether it will be compatible with the currently
* installed firmware. */
-#define MAJOR_VERSION 0
-#define MINOR_VERSION 2
+#define MAJOR_VERSION 0 // for non-compatible changes
+#define MINOR_VERSION 3 // for backwards compatible changes
/* firmata protocol
* ===============
@@ -112,26 +113,25 @@
#define OUTPUT_TO_DIGITAL_PINS 229 // next two bytes set digital output data
/* 230-239 // UNASSIGNED */
#define REPORT_VERSION 240 // return the firmware version
-/* 240-249 // UNASSIGNED */
+/* 240-248 // UNASSIGNED */
+#define SET_PIN_STATE 249 // set a digital pit to INPUT or OUTPUT
#define DISABLE_PWM 250 // next byte sets pin # to disable
#define ENABLE_PWM 251 // next two bytes set pin # and duty cycle
-#define DISABLE_SOFTWARE_PWM 252 // next byte sets pin # to disable
-#define ENABLE_SOFTWARE_PWM 253 // next two bytes set pin # and duty cycle
-#define SET_SOFTWARE_PWM_FREQ 254 // set master frequency for software PWMs
+#define RESET 254 // reset if receive 8 of these bytes
/* 255 // UNASSIGNED */
/* two byte digital output data format
* ----------------------
- * 0 get ready for digital input bytes (229)
+ * 0 set digital output bytes (229/OUTPUT_TO_DIGITAL_PINS)
* 1 digitalOut 7-13 bitmask
* 2 digitalOut 0-6 bitmask
*/
-/* two byte PWM data format
+/* control PWM
* ----------------------
- * 0 get ready for digital input bytes (ENABLE_SOFTWARE_PWM/ENABLE_PWM)
- * 1 pin #
+ * 0 send digital input bytes (ENABLE_PWM)
+ * 1 pin # (0-127)
* 2 duty cycle expressed as 1 byte (255 = 100%)
*/
@@ -149,6 +149,47 @@
* 2 low byte from analog input
*/
+/* version report format
+ * Send a single byte 240, Arduino will reply with:
+ * ----------------------
+ * 0 version report header (240)
+ * 1 major version (0-127)
+ * 2 minor version (0-127)
+ */
+
+/* PROPOSED PROTOCOL ADDITIONS */
+
+/* set digital pin state (249/SET_PIN_STATE)
+ * ----------------------
+ * 0 set digital pin state
+ * 1 pin number (0-127)
+ * 2 state (OUTPUT/INPUT, 0/1) */
+
+/* toggle analogIn reporting (249/SET_PIN_STATE)
+ * ----------------------
+ * 0 analogIn reporting mode
+ * 1 pin number (0-127)
+ * 2 state (0/1)
+ */
+
+/* control PWM 14-bit
+ * ----------------------
+ * 0 send digital input bytes (ENABLE_PWM)
+ * 1 pin # (0-127)
+ * 2 duty cycle, high bits (8-13)
+ * 3 duty cycle, low bits (0-7)
+ */
+
+
+/* pulseIn (uses 32-bit value)
+ * ----------------------
+ * 0 pulseIn
+ * 1 bits 24-31 (most significant byte)
+ * 2 bits 16-23
+ * 3 bits 8-15
+ * 4 bits 0-7 (least significant byte)
+ */
+
#define TOTAL_DIGITAL_PINS 14
// for comparing along with INPUT and OUTPUT
@@ -181,6 +222,7 @@ int digitalPinStatus = 0;
int pwmStatus = 0;
boolean digitalInputsEnabled = true;
+// TODO: convert this to a bit array int, 1=report, 0=no report
byte analogInputsEnabled = 6;
byte analogPin;
@@ -273,12 +315,6 @@ void processInput(byte inputData) {
case DISABLE_PWM:
setPinMode(storedInputData[0],INPUT);
break;
- case ENABLE_SOFTWARE_PWM:
- break;
- case DISABLE_SOFTWARE_PWM:
- break;
- case SET_SOFTWARE_PWM_FREQ:
- break;
}
executeMultiByteCommand = 0;
}
@@ -306,6 +342,40 @@ void processInput(byte inputData) {
}
else {
switch (inputData) {
+ case REPORT_VERSION:
+ Serial.print(REPORT_VERSION, BYTE);
+ Serial.print(MAJOR_VERSION, BYTE);
+ Serial.print(MINOR_VERSION, BYTE);
+ break;
+ case ENABLE_PWM:
+ waitForData = 2; // 2 bytes needed (pin#, dutyCycle)
+ executeMultiByteCommand = inputData;
+ break;
+ case DISABLE_PWM:
+ waitForData = 1; // 1 byte needed (pin#)
+ executeMultiByteCommand = inputData;
+ break;
+ case OUTPUT_TO_DIGITAL_PINS: // bytes to send to digital outputs
+ firstInputByte = true;
+ break;
+ case DISABLE_DIGITAL_INPUTS: // all digital inputs off
+ digitalInputsEnabled = false;
+ break;
+ case ENABLE_DIGITAL_INPUTS: // all digital inputs on
+ digitalInputsEnabled = true;
+ break;
+ case ZERO_ANALOG_INS: // analog input off
+ case ONE_ANALOG_IN: // analog 0 on
+ case TWO_ANALOG_INS: // analog 0,1 on
+ case THREE_ANALOG_INS: // analog 0-2 on
+ case FOUR_ANALOG_INS: // analog 0-3 on
+ case FIVE_ANALOG_INS: // analog 0-4 on
+ case SIX_ANALOG_INS: // analog 0-5 on
+ case SEVEN_ANALOG_INS: // analog 0-6 on
+ case EIGHT_ANALOG_INS: // analog 0-7 on
+ case NINE_ANALOG_INS: // analog 0-8 on
+ analogInputsEnabled = inputData - ZERO_ANALOG_INS;
+ break;
case SET_PIN_ZERO_TO_IN: // set digital pins to INPUT
case SET_PIN_ONE_TO_IN:
case SET_PIN_TWO_TO_IN:
@@ -338,52 +408,6 @@ void processInput(byte inputData) {
case SET_PIN_THIRTEEN_TO_OUT:
setPinMode(inputData - SET_PIN_ZERO_TO_OUT, OUTPUT);
break;
- case DISABLE_DIGITAL_INPUTS: // all digital inputs off
- digitalInputsEnabled = false;
- break;
- case ENABLE_DIGITAL_INPUTS: // all digital inputs on
- digitalInputsEnabled = true;
- break;
- case ZERO_ANALOG_INS: // analog input off
- case ONE_ANALOG_IN: // analog 0 on
- case TWO_ANALOG_INS: // analog 0,1 on
- case THREE_ANALOG_INS: // analog 0-2 on
- case FOUR_ANALOG_INS: // analog 0-3 on
- case FIVE_ANALOG_INS: // analog 0-4 on
- case SIX_ANALOG_INS: // analog 0-5 on
- case SEVEN_ANALOG_INS: // analog 0-6 on
- case EIGHT_ANALOG_INS: // analog 0-7 on
- case NINE_ANALOG_INS: // analog 0-8 on
- analogInputsEnabled = inputData - ZERO_ANALOG_INS;
- break;
- case ENABLE_PWM:
- waitForData = 2; // 2 bytes needed (pin#, dutyCycle)
- executeMultiByteCommand = inputData;
- break;
- case DISABLE_PWM:
- waitForData = 1; // 1 byte needed (pin#)
- executeMultiByteCommand = inputData;
- break;
- case SET_SOFTWARE_PWM_FREQ:
- waitForData = 1; // 1 byte needed (pin#)
- executeMultiByteCommand = inputData;
- break;
- case ENABLE_SOFTWARE_PWM:
- waitForData = 2; // 2 bytes needed (pin#, dutyCycle)
- executeMultiByteCommand = inputData;
- break;
- case DISABLE_SOFTWARE_PWM:
- waitForData = 1; // 1 byte needed (pin#)
- executeMultiByteCommand = inputData;
- break;
- case OUTPUT_TO_DIGITAL_PINS: // bytes to send to digital outputs
- firstInputByte = true;
- break;
- case REPORT_VERSION:
- Serial.print(REPORT_VERSION, BYTE);
- Serial.print(MAJOR_VERSION, BYTE);
- Serial.print(MINOR_VERSION, BYTE);
- break;
}
}
}
@@ -397,6 +421,8 @@ void setup() {
// TODO: load state from EEPROM here
+ Serial.begin(115200);
+
/* TODO: send digital inputs here, if enabled, to set the initial state on the
* host computer, since once in the loop(), the Arduino will only send data on
* change. */
@@ -412,7 +438,6 @@ void setup() {
for(i=0; i<TOTAL_DIGITAL_PINS; ++i) {
setPinMode(i,INPUT);
}
- Serial.begin(115200);
}
// -------------------------------------------------------------------------
diff --git a/arduino-help.pd b/arduino-help.pd
index fdcfdba..91660bf 100644
--- a/arduino-help.pd
+++ b/arduino-help.pd
@@ -1,4 +1,5 @@
-#N canvas 119 23 691 591 10;
+#N canvas 463 31 699 599 10;
+#X obj 568 9 import flatspace;
#N canvas 233 472 462 312 INSTALL-NOTES 0;
#X text 39 201 [comport] \, from pd-cvs/externals/iem/comport;
#X text 39 185 [arduino] \, from pd-cvs/externals/hardware/arduino
@@ -17,14 +18,14 @@ board !;
!;
#X restore 25 92 pd INSTALL-NOTES;
#X text 150 93 <- read this first !;
-#X obj 26 198 hradio 15 1 0 8 empty empty empty 0 -6 0 8 -260818 -1
+#X obj 16 172 hradio 15 1 0 8 empty empty empty 0 -6 0 8 -260818 -1
-1 0;
-#X msg 26 216 open \$1;
-#X floatatom 109 215 5 0 0 0 - - -;
-#X msg 37 237 close;
-#X msg 47 258 info;
-#X text 21 175 select/close the serial port:;
-#N canvas 248 49 455 332 DIGITAL-OUTPUT 1;
+#X msg 16 190 open \$1;
+#X floatatom 99 189 5 0 0 0 - - -;
+#X msg 27 211 close;
+#X msg 37 232 info;
+#X text 11 149 select/close the serial port:;
+#N canvas 248 49 459 336 DIGITAL-OUTPUT 0;
#X text 72 97 I/O the individual pins:;
#X text 20 22 NOTE: don't forget to set pins to output mode first!
;
@@ -206,29 +207,29 @@ to the ground \, you will get random values (0 or 1) - to avoid that
#X connect 20 13 12 0;
#X connect 21 0 20 0;
#X restore 68 404 pd DIGITAL-INPUT;
-#X text 525 229 (0=input \, 1=output);
-#X obj 289 202 tgl 15 0 empty empty 1 3 -6 0 10 -260818 -1 -1 0 1;
-#X obj 307 202 tgl 15 0 empty empty 2 3 -6 0 10 -260818 -1 -1 0 1;
-#X obj 325 202 tgl 15 0 empty empty 3 3 -6 0 10 -260818 -1 -1 0 1;
-#X obj 343 202 tgl 15 0 empty empty 4 3 -6 0 10 -260818 -1 -1 0 1;
-#X obj 361 202 tgl 15 0 empty empty 5 3 -6 0 10 -260818 -1 -1 0 1;
-#X obj 379 202 tgl 15 0 empty empty 6 3 -6 0 10 -260818 -1 -1 0 1;
-#X obj 397 202 tgl 15 0 empty empty 7 3 -6 0 10 -260818 -1 -1 0 1;
-#X obj 415 202 tgl 15 0 empty empty 8 3 -6 0 10 -260818 -1 -1 0 1;
-#X obj 433 202 tgl 15 0 empty empty 9 3 -6 0 10 -260818 -1 -1 0 1;
-#X obj 451 202 tgl 15 0 empty empty 10 3 -6 0 10 -260818 -1 -1 0 1
+#X text 545 229 (0=input \, 1=output);
+#X obj 309 202 tgl 15 0 empty empty 1 3 -6 0 10 -260818 -1 -1 0 1;
+#X obj 327 202 tgl 15 0 empty empty 2 3 -6 0 10 -260818 -1 -1 0 1;
+#X obj 345 202 tgl 15 0 empty empty 3 3 -6 0 10 -260818 -1 -1 0 1;
+#X obj 363 202 tgl 15 0 empty empty 4 3 -6 0 10 -260818 -1 -1 0 1;
+#X obj 381 202 tgl 15 0 empty empty 5 3 -6 0 10 -260818 -1 -1 0 1;
+#X obj 399 202 tgl 15 0 empty empty 6 3 -6 0 10 -260818 -1 -1 0 1;
+#X obj 417 202 tgl 15 0 empty empty 7 3 -6 0 10 -260818 -1 -1 0 1;
+#X obj 435 202 tgl 15 0 empty empty 8 3 -6 0 10 -260818 -1 -1 0 1;
+#X obj 453 202 tgl 15 0 empty empty 9 3 -6 0 10 -260818 -1 -1 0 1;
+#X obj 471 202 tgl 15 0 empty empty 10 3 -6 0 10 -260818 -1 -1 0 1
;
-#X obj 469 202 tgl 15 0 empty empty 11 3 -6 0 10 -260818 -1 -1 0 1
+#X obj 489 202 tgl 15 0 empty empty 11 3 -6 0 10 -260818 -1 -1 0 1
;
-#X obj 487 202 tgl 15 0 empty empty 12 3 -6 0 10 -260818 -1 -1 0 1
+#X obj 507 202 tgl 15 0 empty empty 12 3 -6 0 10 -260818 -1 -1 0 1
;
-#X obj 505 202 tgl 15 0 empty empty 13 3 -6 0 10 -260818 -1 -1 0 1
+#X obj 525 202 tgl 15 0 empty empty 13 3 -6 0 10 -260818 -1 -1 0 1
;
-#X obj 531 182 tgl 20 0 empty empty empty 0 -6 0 8 -258699 -1 -1 0
+#X obj 551 182 tgl 20 0 empty empty empty 0 -6 0 8 -258699 -1 -1 0
1;
-#X text 530 167 all;
-#X obj 271 202 tgl 15 0 empty empty 0 3 -6 0 10 -260818 -1 -1 0 1;
-#N canvas 365 337 766 316 send-to-arduino---------------- 0;
+#X text 550 167 all;
+#X obj 291 202 tgl 15 0 empty empty 0 3 -6 0 10 -260818 -1 -1 0 1;
+#N canvas 365 337 770 320 send-to-arduino---------------- 0;
#X obj 49 54 inlet;
#X obj 89 54 inlet;
#X obj 128 54 inlet;
@@ -286,11 +287,11 @@ to the ground \, you will get random values (0 or 1) - to avoid that
#X connect 25 0 28 0;
#X connect 26 0 27 0;
#X connect 27 0 28 0;
-#X restore 271 229 pd send-to-arduino----------------;
-#X msg 294 255 pinMode 13 1;
-#X text 412 255 set pin 13 to output mode;
-#X text 270 149 Set input/output mode of the pins for digital IO:;
-#N canvas 374 455 496 348 ANALOG-INPUT 0;
+#X restore 291 229 pd send-to-arduino----------------;
+#X msg 314 255 pinMode 13 1;
+#X text 432 255 set pin 13 to output mode;
+#X text 290 149 Set input/output mode of the pins for digital IO:;
+#N canvas 374 455 500 352 ANALOG-INPUT 0;
#X obj 29 59 r \$0-arduino-out;
#X obj 29 97 spigot 0;
#X obj 91 94 tgl 20 0 empty empty empty 0 -6 0 8 -258699 -1 -1 0 1
@@ -303,7 +304,7 @@ to the ground \, you will get random values (0 or 1) - to avoid that
#X floatatom 248 220 5 0 0 3 analog3 - -;
#X floatatom 321 220 5 0 0 3 analog4 - -;
#X floatatom 395 221 5 0 0 3 analog5 - -;
-#N canvas 400 102 662 136 speed-limiting-to-save-cpu------------------------
+#N canvas 400 102 666 140 speed-limiting-to-save-cpu------------------------
0;
#X obj 19 31 inlet;
#X obj 19 55 speedlim 100;
@@ -357,7 +358,7 @@ the ground \, if you want to avoid flickering of the values !;
#X connect 10 4 8 0;
#X connect 10 5 9 0;
#X restore 75 452 pd ANALOG-INPUT;
-#N canvas 462 492 550 366 ANALOG-OUTPUT-PWM 0;
+#N canvas 462 488 554 370 ANALOG-OUTPUT-PWM 0;
#X text 16 17 Analog Output \, PWM (Pulse Width Modulation);
#X text 16 53 With the help of PWM you can write analog values to the
pins 9 \, 10 \, 11 of your Arduino board.;
@@ -406,15 +407,15 @@ input and output \, as descriped in the following sub-patches:;
#X text 286 4 ::::_PDUINO_::::;
#X text 458 547 2006 \, released under GNU GPL \; Gerda Strobl \, Georg
Holzmann;
-#X text 86 259 <- list devices;
+#X text 91 261 <- list devices;
#X obj 484 87 spigot;
#X obj 515 65 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 271 324 send \$0-arduino;
+#X obj 291 324 send \$0-arduino;
#X obj 344 111 send \$0-arduino-out;
#X obj 344 67 receive \$0-arduino;
-#X obj 26 280 send \$0-arduino;
-#N canvas 0 22 458 308 GETTING-INFO 0;
+#X obj 16 294 send \$0-arduino;
+#N canvas 0 22 462 312 GETTING-INFO 0;
#X msg 147 65 version;
#X msg 207 65 info;
#X obj 147 107 send \$0-arduino-out;
@@ -431,7 +432,7 @@ Holzmann;
#X connect 5 1 7 0;
#X restore 75 501 pd GETTING-INFO;
#X text 191 502 <- example of getting status data;
-#N canvas 0 22 463 265 SWITCHING-INPUTS 0;
+#N canvas 0 22 467 269 SWITCHING-INPUTS 0;
#X obj 78 197 send \$0-arduino;
#X text 25 32 how many analogIns to enable:;
#X obj 161 99 tgl 15 1 empty empty empty 0 -6 0 8 -257472 -1 -1 0 1
@@ -474,50 +475,53 @@ Holzmann;
#X restore 47 526 pd SWITCHING-INPUTS;
#X obj 484 111 print STATUS;
#X text 191 526 <- example of switching inputs on and off;
-#X msg 353 297 digital 13 \$1;
-#X obj 353 279 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+#X msg 373 297 digital 13 \$1;
+#X obj 373 279 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
-#X text 454 295 toggle pin 13 on and off;
+#X text 474 295 toggle pin 13 on and off;
#X obj 344 90 arduino 1;
-#X connect 2 0 3 0;
-#X connect 2 0 4 0;
-#X connect 3 0 47 0;
-#X connect 5 0 47 0;
-#X connect 6 0 47 0;
-#X connect 11 0 27 1;
-#X connect 12 0 27 2;
-#X connect 13 0 27 3;
-#X connect 14 0 27 4;
-#X connect 15 0 27 5;
-#X connect 16 0 27 6;
-#X connect 17 0 27 7;
-#X connect 18 0 27 8;
-#X connect 19 0 27 9;
-#X connect 20 0 27 10;
-#X connect 21 0 27 11;
-#X connect 22 0 27 12;
-#X connect 23 0 27 13;
-#X connect 24 0 23 0;
-#X connect 24 0 22 0;
-#X connect 24 0 21 0;
-#X connect 24 0 20 0;
-#X connect 24 0 19 0;
-#X connect 24 0 18 0;
-#X connect 24 0 17 0;
-#X connect 24 0 16 0;
-#X connect 24 0 15 0;
-#X connect 24 0 14 0;
-#X connect 24 0 13 0;
-#X connect 24 0 12 0;
-#X connect 24 0 11 0;
-#X connect 24 0 26 0;
-#X connect 26 0 27 0;
-#X connect 27 0 44 0;
-#X connect 28 0 44 0;
-#X connect 42 0 51 0;
-#X connect 43 0 42 1;
-#X connect 46 0 56 0;
-#X connect 53 0 44 0;
-#X connect 54 0 53 0;
-#X connect 56 0 45 0;
-#X connect 56 1 42 0;
+#X msg 38 260 devices;
+#X text 71 232 <- info for current connection;
+#X connect 3 0 4 0;
+#X connect 3 0 5 0;
+#X connect 4 0 48 0;
+#X connect 6 0 48 0;
+#X connect 7 0 48 0;
+#X connect 12 0 28 1;
+#X connect 13 0 28 2;
+#X connect 14 0 28 3;
+#X connect 15 0 28 4;
+#X connect 16 0 28 5;
+#X connect 17 0 28 6;
+#X connect 18 0 28 7;
+#X connect 19 0 28 8;
+#X connect 20 0 28 9;
+#X connect 21 0 28 10;
+#X connect 22 0 28 11;
+#X connect 23 0 28 12;
+#X connect 24 0 28 13;
+#X connect 25 0 24 0;
+#X connect 25 0 23 0;
+#X connect 25 0 22 0;
+#X connect 25 0 21 0;
+#X connect 25 0 20 0;
+#X connect 25 0 19 0;
+#X connect 25 0 18 0;
+#X connect 25 0 17 0;
+#X connect 25 0 16 0;
+#X connect 25 0 15 0;
+#X connect 25 0 14 0;
+#X connect 25 0 13 0;
+#X connect 25 0 12 0;
+#X connect 25 0 27 0;
+#X connect 27 0 28 0;
+#X connect 28 0 45 0;
+#X connect 29 0 45 0;
+#X connect 43 0 52 0;
+#X connect 44 0 43 1;
+#X connect 47 0 57 0;
+#X connect 54 0 45 0;
+#X connect 55 0 54 0;
+#X connect 57 0 46 0;
+#X connect 57 1 43 0;
+#X connect 58 0 48 0;
diff --git a/arduino.pd b/arduino.pd
index 81dd27f..f00a5bc 100644
--- a/arduino.pd
+++ b/arduino.pd
@@ -1,10 +1,11 @@
-#N canvas 497 22 692 320 10;
-#X text 415 277 released under the GNU GPL;
-#X text 10 277 (C) Copyright 2006 Hans-Christoph Steiner <hans@at.or.at>
+#N canvas 497 22 624 356 10;
+#X obj 323 8 import hardware flatspace iemlib mapping;
+#X text 415 317 released under the GNU GPL;
+#X text 10 317 (C) Copyright 2006 Hans-Christoph Steiner <hans@at.or.at>
;
-#X obj 11 21 inlet;
-#X obj 10 241 outlet;
-#X obj 494 241 outlet;
+#X obj 11 61 inlet;
+#X obj 10 281 outlet;
+#X obj 494 281 outlet;
#N canvas 382 102 637 357 command 0;
#X obj 24 7 inlet;
#X obj 281 289 outlet;
@@ -180,11 +181,11 @@ to input;
#X connect 12 5 9 0;
#X connect 12 6 11 0;
#X connect 13 0 6 0;
-#X restore 11 52 pd command processing;
-#X text 257 242 DEBUG/RAW data (this will change);
-#X obj 379 19 inlet;
-#X text 354 0 raw input;
-#X text 10 -1 processed input;
+#X restore 11 92 pd command processing;
+#X text 257 282 DEBUG/RAW data (this will change);
+#X obj 379 59 inlet;
+#X text 354 40 raw input;
+#X text 10 39 processed input;
#N canvas 505 101 491 417 make 0;
#X obj 37 8 inlet;
#X obj 37 37 moses 128;
@@ -363,21 +364,20 @@ to input;
#X connect 11 0 6 0;
#X connect 12 0 6 0;
#X connect 12 1 7 0;
-#X restore 10 165 pd make lists;
-#X obj 288 103 spigot;
-#X obj 319 81 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X restore 10 205 pd make lists;
+#X obj 288 143 spigot;
+#X obj 319 121 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 125 120 print comport;
-#X obj 11 96 comport \$1 115200;
-#X obj 288 126 print command;
-#X obj 438 19 import flatspace iemlib mapping;
-#X connect 2 0 5 0;
-#X connect 5 0 11 0;
-#X connect 5 0 14 0;
-#X connect 7 0 14 0;
-#X connect 10 0 3 0;
-#X connect 11 0 15 0;
-#X connect 12 0 11 1;
-#X connect 14 0 4 0;
-#X connect 14 0 10 0;
-#X connect 14 1 13 0;
+#X obj 125 160 print comport;
+#X obj 11 136 comport \$1 115200;
+#X obj 288 166 print command;
+#X connect 3 0 6 0;
+#X connect 6 0 12 0;
+#X connect 6 0 15 0;
+#X connect 8 0 15 0;
+#X connect 11 0 4 0;
+#X connect 12 0 16 0;
+#X connect 13 0 12 1;
+#X connect 15 0 5 0;
+#X connect 15 0 11 0;
+#X connect 15 1 14 0;