aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Christoph Steiner <eighthave@users.sourceforge.net>2008-04-11 22:08:18 +0000
committerHans-Christoph Steiner <eighthave@users.sourceforge.net>2008-04-11 22:08:18 +0000
commitb5ddfbc4f01c27e2419f9fddcac614dec93d00a4 (patch)
tree1855b1a7f7795f58f61b504c1ee86c8be2691861
parent079e86651a3d9237b7a861489a26045f06521333 (diff)
First stab at implementing v2 of the protocol, digitalWrite works, but no luck
yet with digital input. I am not sure if the problem is in Pd or Firmata. svn path=/trunk/externals/hardware/arduino/; revision=9692
-rw-r--r--arduino-test.pd244
-rw-r--r--arduino.pd337
2 files changed, 327 insertions, 254 deletions
diff --git a/arduino-test.pd b/arduino-test.pd
index 97993b5..eaaf24a 100644
--- a/arduino-test.pd
+++ b/arduino-test.pd
@@ -1,4 +1,4 @@
-#N canvas 427 22 674 529 10;
+#N canvas 274 22 674 529 10;
#X obj 512 7 import hardware mapping;
#X obj 323 126 cnv 15 100 22 empty empty empty 20 12 0 14 -253938 -66577
0;
@@ -50,7 +50,6 @@
#X coords 0 -1 1 1 136 17 1 60 60;
#X restore 161 159 pd serin;
#X text 158 141 serial port #;
-#X text 420 493 released under the GNU GPL;
#X msg 221 182 close;
#X obj 532 320 tgl 15 0 empty empty changes 0 -6 0 8 -262144 -1 -1
0 1;
@@ -60,11 +59,11 @@
1 10 -225271 -1 -1 0 0;
#X obj 277 322 tgl 15 1 empty empty empty 0 -6 0 8 -225271 -1 -1 1
1;
-#X obj 455 207 tgl 15 1 empty empty empty 0 -6 0 8 -257472 -1 -1 0
+#X obj 455 207 tgl 15 1 empty empty empty 0 -6 0 8 -257472 -1 -1 1
1;
#X text 478 206 enable/disable digitalIns;
#X msg 455 225 digitalIns \$1;
-#X msg 455 183 analogIns 1 0;
+#X msg 455 183 analogIns 5 0;
#N canvas 162 133 610 460 serin 0;
#X obj 59 337 outlet;
#X obj 59 266 trigger bang anything;
@@ -180,7 +179,7 @@
#X floatatom 252 436 5 0 0 3 a5 - -;
#X text 300 301 <- argument sets port #;
#X obj 40 81 hradio 15 1 0 14 empty empty empty 0 -6 0 8 -176124 -1
--1 0;
+-1 3;
#X text 148 67 7;
#X text 42 67 0;
#X text 189 67 10;
@@ -236,7 +235,7 @@
#X connect 16 0 17 0;
#X connect 17 0 14 0;
#X restore 41 135 pd pwm;
-#X msg 41 157 pwm 11 0;
+#X msg 41 157 pwm 3 0;
#X msg 319 175 info;
#X msg 358 175 version;
#X obj 230 322 spigot;
@@ -255,24 +254,24 @@ Arduino (previously known as Pduino firmware).;
#X obj 533 87 tgl 15 0 empty empty 12 0 -6 1 12 -260818 -1 -1 0 1;
#X obj 550 87 tgl 15 0 empty empty 13 0 -6 1 12 -260818 -1 -1 0 1;
#X text 328 54 turn on output mode for each pin (off=input);
-#X msg 329 128 pinMode 12 1;
+#X msg 329 128 pinMode 3 0;
#N canvas 69 607 475 352 sending 0;
#X obj 69 158 cnv 15 100 22 empty empty empty 20 12 0 14 -253938 -66577
0;
#X obj 78 244 outlet;
-#X msg 78 161 digital 12 0;
+#X msg 78 161 digital 11 0;
#X obj 197 98 tgl 15 0 empty empty 7 4 -6 1 12 -233017 -1 -1 0 1;
#X obj 214 98 tgl 15 0 empty empty 8 4 -6 1 12 -233017 -1 -1 0 1;
#X obj 231 98 tgl 15 0 empty empty 9 4 -6 1 12 -233017 -1 -1 0 1;
-#X obj 248 98 tgl 15 0 empty empty 10 0 -6 1 12 -233017 -1 -1 0 1;
+#X obj 248 98 tgl 15 0 empty empty 10 0 -6 1 12 -233017 -1 -1 1 1;
#X obj 265 98 tgl 15 0 empty empty 11 0 -6 1 12 -233017 -1 -1 0 1;
-#X obj 282 98 tgl 15 0 empty empty 12 0 -6 1 12 -233017 -1 -1 0 1;
+#X obj 282 98 tgl 15 0 empty empty 12 0 -6 1 12 -233017 -1 -1 1 1;
#X obj 299 98 tgl 15 0 empty empty 13 0 -6 1 12 -233017 -1 -1 0 1;
#X obj 112 98 tgl 15 0 empty empty 2 4 -6 1 12 -233017 -1 -1 0 1;
#X obj 129 98 tgl 15 0 empty empty 3 4 -6 1 12 -233017 -1 -1 0 1;
#X obj 146 98 tgl 15 0 empty empty 4 4 -6 1 12 -233017 -1 -1 0 1;
#X obj 163 98 tgl 15 0 empty empty 5 4 -6 1 12 -233017 -1 -1 0 1;
-#X obj 180 98 tgl 15 0 empty empty 6 4 -6 1 12 -233017 -1 -1 0 1;
+#X obj 180 98 tgl 15 0 empty empty 6 4 -6 1 12 -233017 -1 -1 1 1;
#N canvas 314 233 679 330 generate 0;
#X obj 42 24 inlet;
#X obj 82 24 inlet;
@@ -430,22 +429,22 @@ Arduino (previously known as Pduino firmware).;
#X connect 21 0 22 0;
#X connect 22 0 23 0;
#X restore 45 410 pd display values without pegging the CPU;
-#X obj 397 436 route 0 1 2 3 4 5 6 7 8 9 10 11 12 13;
-#X obj 428 458 tgl 15 0 empty empty 2 4 23 1 12 -232448 -1 -1 0 1;
-#X obj 445 458 tgl 15 0 empty empty 3 4 23 1 12 -232448 -1 -1 0 1;
-#X obj 462 458 tgl 15 0 empty empty 4 4 23 1 12 -232448 -1 -1 0 1;
-#X obj 479 458 tgl 15 0 empty empty 5 4 23 1 12 -232448 -1 -1 0 1;
-#X obj 496 458 tgl 15 0 empty empty 6 4 23 1 12 -232448 -1 -1 0 1;
-#X obj 513 458 tgl 15 0 empty empty 7 4 23 1 12 -232448 -1 -1 0 1;
-#X obj 530 458 tgl 15 0 empty empty 8 4 23 1 12 -232448 -1 -1 0 1;
-#X obj 547 458 tgl 15 0 empty empty 9 4 23 1 12 -232448 -1 -1 0 1;
-#X obj 564 458 tgl 15 0 empty empty 10 0 23 1 12 -232448 -1 -1 0 1
+#X obj 397 443 route 0 1 2 3 4 5 6 7 8 9 10 11 12 13;
+#X obj 428 465 tgl 15 0 empty empty 2 4 23 1 12 -232448 -1 -1 0 1;
+#X obj 445 465 tgl 15 0 empty empty 3 4 23 1 12 -232448 -1 -1 0 1;
+#X obj 462 465 tgl 15 0 empty empty 4 4 23 1 12 -232448 -1 -1 0 1;
+#X obj 479 465 tgl 15 0 empty empty 5 4 23 1 12 -232448 -1 -1 0 1;
+#X obj 496 465 tgl 15 0 empty empty 6 4 23 1 12 -232448 -1 -1 0 1;
+#X obj 513 465 tgl 15 0 empty empty 7 4 23 1 12 -232448 -1 -1 1 1;
+#X obj 530 465 tgl 15 0 empty empty 8 4 23 1 12 -232448 -1 -1 1 1;
+#X obj 547 465 tgl 15 0 empty empty 9 4 23 1 12 -232448 -1 -1 0 1;
+#X obj 564 465 tgl 15 0 empty empty 10 0 23 1 12 -232448 -1 -1 0 1
;
-#X obj 581 458 tgl 15 0 empty empty 11 0 23 1 12 -232448 -1 -1 0 1
+#X obj 581 465 tgl 15 0 empty empty 11 0 23 1 12 -232448 -1 -1 0 1
;
-#X obj 598 458 tgl 15 0 empty empty 12 0 23 1 12 -232448 -1 -1 0 1
+#X obj 598 465 tgl 15 0 empty empty 12 0 23 1 12 -232448 -1 -1 0 1
;
-#X obj 615 458 tgl 15 0 empty empty 13 0 23 1 12 -232448 -1 -1 0 1
+#X obj 615 465 tgl 15 0 empty empty 13 0 23 1 12 -232448 -1 -1 0 1
;
#N canvas 0 22 454 304 raw 0;
#X obj 96 231 outlet;
@@ -455,29 +454,29 @@ Arduino (previously known as Pduino firmware).;
#X text 2 494 (C) Copyright 2006 Free Software Foundation;
#N canvas 0 22 451 224 ver 0;
#X obj 23 7 inlet;
-#X obj 250 100 cnv 15 145 17 empty \$0-version_cnv empty 4 10 0 12
--203904 -1 0;
+#X obj 250 100 cnv 15 145 17 empty \$0-version_cnv Firmata-2.0 4 10
+0 12 -203904 -1 0;
#X obj 23 157 send \$0-version_cnv;
#X msg 23 132 label \$1;
-#X obj 23 52 zexy/makesymbol firmata_version_%s.%s;
#X obj 48 103 symbol;
#X obj 38 77 loadbang;
#X msg 96 78 bang;
#X obj 23 29 route version;
#X obj 309 163 outlet;
-#X connect 0 0 8 0;
+#X obj 23 52 zexy/makesymbol Firmata-%s.%s;
+#X connect 0 0 7 0;
#X connect 3 0 2 0;
#X connect 4 0 3 0;
-#X connect 5 0 3 0;
-#X connect 6 0 5 0;
-#X connect 7 0 5 0;
-#X connect 8 0 4 0;
-#X connect 8 1 9 0;
+#X connect 5 0 4 0;
+#X connect 6 0 4 0;
+#X connect 7 0 9 0;
+#X connect 7 1 8 0;
+#X connect 9 0 3 0;
#X coords 0 -1 1 1 145 17 1 250 100;
#X restore 67 319 pd ver;
-#X obj 456 399 unpack 0 0;
-#X floatatom 456 419 5 0 0 0 - - -;
-#X floatatom 513 419 5 0 0 0 - - -;
+#X obj 414 403 unpack 0 0;
+#X floatatom 414 423 5 0 0 0 - - -;
+#X floatatom 471 423 5 0 0 0 - - -;
#N canvas 163 104 700 327 send-to-arduino------------------- 0;
#X obj 49 24 inlet;
#X obj 89 24 inlet;
@@ -544,11 +543,11 @@ Arduino (previously known as Pduino firmware).;
#X connect 30 0 31 0;
#X connect 31 0 29 0;
#X restore 329 106 pd send-to-arduino-------------------;
-#X obj 394 458 tgl 15 0 empty empty 0 4 23 1 12 -232448 -1 -1 0 1;
-#X obj 411 458 tgl 15 0 empty empty 1 4 23 1 12 -232448 -1 -1 0 1;
-#X obj 394 458 cnv 15 15 15 empty empty Rx 1 10 0 11 -128992 -86277
+#X obj 394 465 tgl 15 0 empty empty 0 4 23 1 12 -232448 -1 -1 0 1;
+#X obj 411 465 tgl 15 0 empty empty 1 4 23 1 12 -232448 -1 -1 0 1;
+#X obj 394 465 cnv 15 15 15 empty empty Rx 1 10 0 11 -128992 -86277
0;
-#X obj 411 458 cnv 15 15 15 empty empty Tx 1 10 0 11 -128992 -13381
+#X obj 411 465 cnv 15 15 15 empty empty Tx 1 10 0 11 -128992 -13381
0;
#X obj 329 87 tgl 15 0 empty empty 0 3 -6 1 12 -260818 -1 -1 0 1;
#X obj 346 87 tgl 15 0 empty empty 1 3 -6 1 12 -260818 -1 -1 0 1;
@@ -560,8 +559,8 @@ Arduino (previously known as Pduino firmware).;
#X obj 230 302 arduino 1;
#N canvas 649 518 412 212 firmware 0;
#X obj 123 7 inlet;
-#X obj 250 100 cnv 15 145 17 empty \$0-firmware_cnv empty 4 10 0 12
--232576 -66577 0;
+#X obj 250 100 cnv 15 145 17 empty \$0-firmware_cnv Standard_Firmata-2.0
+4 10 0 12 -232576 -66577 0;
#X msg 123 152 label \$1;
#X obj 148 123 symbol;
#X obj 138 97 loadbang;
@@ -586,27 +585,26 @@ Arduino (previously known as Pduino firmware).;
#X restore 67 339 pd firmware;
#X msg 358 215 devices;
#X msg 358 195 firmware;
-#X obj 397 379 route digital version string;
#N canvas 0 22 450 300 STRING 0;
#X obj 48 13 inlet;
#X obj 51 93 moocow/string2any 32 -1;
#X obj 51 154 print STRING;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
-#X restore 539 399 pd STRING;
+#X restore 482 403 pd STRING;
#N canvas 0 22 450 300 Marg 0;
#X obj 139 19 inlet;
#X obj 127 109 moocow/string2any 32 -1;
#X obj 127 170 print STRING;
#X obj 97 55 list split 1;
#X obj 40 109 print COMMAND;
-#X obj 210 54 print Marg;
+#X obj 210 54 print sysex;
#X connect 0 0 3 0;
#X connect 0 0 5 0;
#X connect 1 0 2 0;
#X connect 3 0 4 0;
#X connect 3 1 1 0;
-#X restore 604 399 pd Marg;
+#X restore 547 403 pd Marg;
#N canvas 284 22 487 372 strings 0;
#X obj -178 287 outlet;
#X obj -142 101 moocow/any2string;
@@ -640,81 +638,83 @@ Arduino (previously known as Pduino firmware).;
#X connect 14 0 10 0;
#X connect 15 0 14 0;
#X restore 437 252 pd strings and special messages;
-#X connect 4 0 98 0;
+#X obj 397 379 route digital version string sysex;
+#X text 397 493 released under the GNU GPL v2 or later;
+#X connect 4 0 97 0;
#X connect 5 0 4 0;
-#X connect 5 1 8 0;
-#X connect 8 0 98 0;
-#X connect 9 0 18 2;
-#X connect 10 0 18 1;
-#X connect 11 0 41 1;
-#X connect 12 0 45 1;
-#X connect 13 0 15 0;
-#X connect 15 0 98 0;
-#X connect 16 0 98 0;
-#X connect 17 0 16 0;
-#X connect 26 0 41 0;
-#X connect 41 0 42 0;
-#X connect 42 0 98 0;
-#X connect 43 0 98 0;
-#X connect 44 0 98 0;
-#X connect 45 0 66 0;
-#X connect 47 0 88 2;
-#X connect 48 0 88 3;
-#X connect 49 0 88 4;
-#X connect 50 0 88 5;
-#X connect 51 0 88 6;
-#X connect 52 0 88 7;
-#X connect 53 0 88 8;
-#X connect 54 0 88 9;
-#X connect 55 0 88 10;
-#X connect 56 0 88 11;
-#X connect 57 0 88 12;
-#X connect 58 0 88 13;
-#X connect 60 0 98 0;
-#X connect 61 0 98 0;
-#X connect 62 0 61 0;
+#X connect 5 1 7 0;
+#X connect 7 0 97 0;
+#X connect 8 0 17 2;
+#X connect 9 0 17 1;
+#X connect 10 0 40 1;
+#X connect 11 0 44 1;
+#X connect 12 0 14 0;
+#X connect 14 0 97 0;
+#X connect 15 0 97 0;
+#X connect 16 0 15 0;
+#X connect 25 0 40 0;
+#X connect 40 0 41 0;
+#X connect 41 0 97 0;
+#X connect 42 0 97 0;
+#X connect 43 0 97 0;
+#X connect 44 0 65 0;
+#X connect 46 0 87 2;
+#X connect 47 0 87 3;
+#X connect 48 0 87 4;
+#X connect 49 0 87 5;
+#X connect 50 0 87 6;
+#X connect 51 0 87 7;
+#X connect 52 0 87 8;
+#X connect 53 0 87 9;
+#X connect 54 0 87 10;
+#X connect 55 0 87 11;
+#X connect 56 0 87 12;
+#X connect 57 0 87 13;
+#X connect 59 0 97 0;
+#X connect 60 0 97 0;
+#X connect 61 0 60 0;
+#X connect 65 0 66 0;
+#X connect 65 1 104 0;
#X connect 66 0 67 0;
-#X connect 66 1 102 0;
-#X connect 67 0 68 0;
-#X connect 67 1 68 1;
-#X connect 67 2 68 2;
-#X connect 67 3 68 3;
-#X connect 67 4 68 4;
-#X connect 67 5 68 5;
-#X connect 67 6 68 6;
-#X connect 67 7 68 7;
-#X connect 68 0 19 0;
-#X connect 68 1 20 0;
-#X connect 68 2 21 0;
-#X connect 68 3 22 0;
-#X connect 68 4 23 0;
-#X connect 68 5 24 0;
-#X connect 68 6 64 0;
-#X connect 68 7 65 0;
-#X connect 69 2 70 0;
-#X connect 69 3 71 0;
-#X connect 69 4 72 0;
-#X connect 69 5 73 0;
-#X connect 69 6 74 0;
-#X connect 69 7 75 0;
-#X connect 69 8 76 0;
-#X connect 69 9 77 0;
-#X connect 69 10 78 0;
-#X connect 69 11 79 0;
-#X connect 69 12 80 0;
-#X connect 69 13 81 0;
-#X connect 82 0 98 1;
-#X connect 84 0 99 0;
-#X connect 85 0 86 0;
-#X connect 85 1 87 0;
-#X connect 88 0 60 0;
-#X connect 98 0 45 0;
-#X connect 98 0 84 0;
-#X connect 98 1 18 0;
-#X connect 100 0 98 0;
-#X connect 101 0 98 0;
-#X connect 102 0 69 0;
-#X connect 102 1 85 0;
-#X connect 102 2 103 0;
-#X connect 102 3 104 0;
-#X connect 105 0 98 0;
+#X connect 66 1 67 1;
+#X connect 66 2 67 2;
+#X connect 66 3 67 3;
+#X connect 66 4 67 4;
+#X connect 66 5 67 5;
+#X connect 66 6 67 6;
+#X connect 66 7 67 7;
+#X connect 67 0 18 0;
+#X connect 67 1 19 0;
+#X connect 67 2 20 0;
+#X connect 67 3 21 0;
+#X connect 67 4 22 0;
+#X connect 67 5 23 0;
+#X connect 67 6 63 0;
+#X connect 67 7 64 0;
+#X connect 68 2 69 0;
+#X connect 68 3 70 0;
+#X connect 68 4 71 0;
+#X connect 68 5 72 0;
+#X connect 68 6 73 0;
+#X connect 68 7 74 0;
+#X connect 68 8 75 0;
+#X connect 68 9 76 0;
+#X connect 68 10 77 0;
+#X connect 68 11 78 0;
+#X connect 68 12 79 0;
+#X connect 68 13 80 0;
+#X connect 81 0 97 1;
+#X connect 83 0 98 0;
+#X connect 84 0 85 0;
+#X connect 84 1 86 0;
+#X connect 87 0 59 0;
+#X connect 97 0 44 0;
+#X connect 97 0 83 0;
+#X connect 97 1 17 0;
+#X connect 99 0 97 0;
+#X connect 100 0 97 0;
+#X connect 103 0 97 0;
+#X connect 104 0 68 0;
+#X connect 104 1 84 0;
+#X connect 104 2 101 0;
+#X connect 104 3 102 0;
diff --git a/arduino.pd b/arduino.pd
index 729fc35..dc53c03 100644
--- a/arduino.pd
+++ b/arduino.pd
@@ -1,50 +1,57 @@
-#N canvas 581 464 644 371 10;
-#X obj 377 9 import hardware flatspace iemlib mapping;
-#X text 321 336 released under the GNU GPL;
+#N canvas 134 273 644 371 10;
#X obj 61 19 inlet;
#X obj 61 297 outlet;
#X obj 544 297 outlet;
-#N canvas 7 503 712 343 command 0;
+#N canvas 85 545 712 343 command 0;
#X obj 24 7 inlet;
#X obj 281 289 outlet;
-#N canvas 729 244 503 311 digital-out 0;
-#X obj 26 12 inlet;
-#X obj 218 219 outlet;
-#X obj 97 172 float;
-#X obj 26 31 trigger anything bang;
-#X obj 218 171 float;
-#X obj 26 77 route 0 1 2 3 4 5 6 7 8 9 10 11 12 13;
-#X obj 181 115 mapping/bytemask -----;
-#X obj 27 115 mapping/bytemask ---------;
-#X msg 404 92 144;
-#X obj 27 137 trigger bang float;
-#X obj 181 137 trigger float bang;
-#X connect 0 0 3 0;
-#X connect 2 0 1 0;
-#X connect 3 0 5 0;
-#X connect 3 1 8 0;
-#X connect 4 0 1 0;
-#X connect 5 0 7 0;
-#X connect 5 1 7 1;
-#X connect 5 2 7 2;
-#X connect 5 3 7 3;
-#X connect 5 4 7 4;
-#X connect 5 5 7 5;
-#X connect 5 6 7 6;
-#X connect 5 7 6 0;
-#X connect 5 8 6 1;
-#X connect 5 9 6 2;
-#X connect 5 10 6 3;
-#X connect 5 11 6 4;
-#X connect 5 12 6 5;
-#X connect 5 13 6 6;
-#X connect 6 0 10 0;
-#X connect 7 0 9 0;
-#X connect 8 0 1 0;
-#X connect 9 0 2 0;
-#X connect 9 1 4 0;
-#X connect 10 0 2 0;
-#X connect 10 1 4 0;
+#N canvas 267 161 569 343 digital-out 0;
+#X obj 3 15 inlet;
+#X obj 72 296 outlet;
+#X obj 99 196 mapping/bytemask;
+#X msg 272 128 \$1;
+#X floatatom 272 196 5 0 0 0 - - -;
+#X text 301 127 add channel to command;
+#X text 310 171 0x90;
+#X obj 272 172 + 144;
+#X obj 272 150 div 8;
+#X obj 3 55 trigger bang bang anything anything;
+#X floatatom 123 220 5 0 0 0 - - -;
+#X obj 84 137 pack 0 0;
+#X obj 84 96 unpack 0 0;
+#X obj 84 117 mod 8;
+#X obj 230 245 print [arduino] WARNING: extraneous digital input;
+#X obj 72 221 float;
+#X obj 25 221 float;
+#X obj 84 158 route 7 0 1 2 3 4 5 6;
+#X floatatom -7 253 5 0 0 0 - - -;
+#X connect 0 0 9 0;
+#X connect 2 0 10 0;
+#X connect 2 0 15 1;
+#X connect 3 0 8 0;
+#X connect 7 0 4 0;
+#X connect 7 0 1 0;
+#X connect 8 0 7 0;
+#X connect 9 0 16 0;
+#X connect 9 1 15 0;
+#X connect 9 2 12 0;
+#X connect 9 3 3 0;
+#X connect 11 0 17 0;
+#X connect 12 0 13 0;
+#X connect 12 1 11 1;
+#X connect 13 0 11 0;
+#X connect 15 0 1 0;
+#X connect 16 0 1 0;
+#X connect 16 0 18 0;
+#X connect 17 0 16 1;
+#X connect 17 1 2 0;
+#X connect 17 2 2 1;
+#X connect 17 3 2 2;
+#X connect 17 4 2 3;
+#X connect 17 5 2 4;
+#X connect 17 6 2 5;
+#X connect 17 7 2 6;
+#X connect 17 8 14 0;
#X restore 326 122 pd digital-out;
#N canvas 310 221 540 347 pinMode 0;
#X obj 190 11 inlet;
@@ -252,20 +259,23 @@
#N canvas 0 22 462 312 report 0;
#X obj 95 26 inlet;
#X obj 97 186 print [arduino];
-#X msg 93 87 version_0.3;
+#X msg 93 87 version_0.4;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X restore 410 112 pd report object version;
-#N canvas 0 22 482 332 report 0;
-#X obj 66 7 inlet;
-#X obj 66 36 route open;
-#X obj 66 60 select 1;
-#X obj 67 147 outlet;
-#X msg 66 82 version;
+#N canvas 0 22 395 210 report 0;
+#X obj 62 21 inlet;
+#X obj 62 50 route open;
+#X obj 62 74 select 1;
+#X obj 63 161 outlet;
+#X msg 62 126 version;
+#X text 133 101 wait for the Diecimila to reset;
+#X obj 62 100 delay 2000;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
-#X connect 2 0 4 0;
+#X connect 2 0 6 0;
#X connect 4 0 3 0;
+#X connect 6 0 4 0;
#X restore 231 113 pd report firmware version;
#X text 335 299 DEBUG/RAW data (this will change);
#N canvas 590 536 467 421 make 0;
@@ -327,10 +337,47 @@
#X obj 117 228 - 1;
#X obj 79 178 trigger bang float;
#X text 89 52 only process command bytes;
-#N canvas 539 459 521 367 convert 0;
+#X text 140 78 end of sysex;
+#X obj 79 79 route 247;
+#X obj 79 100 bang;
+#X connect 0 0 2 0;
+#X connect 2 0 9 0;
+#X connect 2 1 12 0;
+#X connect 3 0 9 0;
+#X connect 3 1 4 0;
+#X connect 4 0 7 1;
+#X connect 5 0 1 0;
+#X connect 6 0 5 1;
+#X connect 7 0 8 0;
+#X connect 7 0 6 0;
+#X connect 8 0 7 1;
+#X connect 9 0 7 0;
+#X connect 9 1 5 0;
+#X connect 12 0 13 0;
+#X connect 12 1 3 0;
+#X connect 13 0 5 1;
+#X restore 61 194 pd make lists;
+#N canvas 0 22 525 269 check 0;
+#X obj 47 62 inlet;
+#X obj 47 88 route version;
+#X obj 87 119 unpack float float;
+#X obj 132 163 print [arduino]_WARNING_INCOMPATIBLE_FIRMWARE_VERSION
+;
+#X obj 47 192 print Arduino/Firmata_version;
+#X obj 87 141 select 2;
+#X text 142 142 <-- sets the protocol major version this is compatible
+with;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 1 0 4 0;
+#X connect 2 0 5 0;
+#X connect 5 1 3 0;
+#X restore 81 250 pd check version;
+#X obj 61 136 flatspace/comport \$1 115200;
+#N canvas 135 558 541 319 convert 0;
#X obj 142 278 outlet;
-#X obj 34 321 print UNKNOWN_INPUT_COMMAND;
-#N canvas 123 202 630 307 digital 0;
+#X obj 340 150 print UNKNOWN_INPUT_COMMAND;
+#N canvas 208 304 630 307 digital 0;
#X obj 163 16 inlet;
#X obj 252 255 outlet;
#X obj 163 42 unpack float float;
@@ -383,30 +430,23 @@
#X connect 17 0 4 0;
#X connect 18 0 4 0;
#X connect 19 0 4 0;
-#X restore 143 174 pd digital messages;
-#N canvas 134 58 335 267 analog 0;
-#X obj 65 6 inlet;
-#X obj 65 203 outlet;
-#X msg 65 180 analog \$1 \$2;
-#X obj 65 159 pack float float;
-#X obj 65 42 unpack float float float;
-#X obj 158 88 +;
-#X obj 158 113 / 1023;
-#X text 203 114 scale to 0-1;
-#X obj 206 63 << 7;
-#X obj 65 63 & 15;
-#X connect 0 0 4 0;
+#X restore 205 174 pd digital messages;
+#N canvas 234 399 335 267 analog 0;
+#X obj 65 16 inlet;
+#X obj 65 213 outlet;
+#X msg 65 150 analog \$1 \$2;
+#X obj 65 129 pack float float;
+#X obj 158 103 / 1023;
+#X text 203 104 scale to 0-1;
+#X obj 65 71 unpack float float;
+#X connect 0 0 6 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
-#X connect 4 0 9 0;
-#X connect 4 1 5 0;
-#X connect 4 2 8 0;
-#X connect 5 0 6 0;
-#X connect 6 0 3 1;
-#X connect 8 0 5 1;
-#X connect 9 0 3 0;
-#X restore 372 170 pd analog messages;
-#X obj 85 13 inlet;
+#X connect 4 0 3 1;
+#X connect 6 0 3 0;
+#X connect 6 1 4 0;
+#X restore 342 174 pd analog messages;
+#X obj 97 13 inlet;
#X msg 40 174 version \$2 \$1;
#N canvas 921 447 492 456 sysex 0;
#X obj 77 20 inlet;
@@ -530,65 +570,98 @@ byte left over;
#X connect 12 0 4 1;
#X connect 14 0 2 0;
#X connect 14 1 6 0;
-#X restore 279 172 pd sysex;
-#X obj 85 95 route 249 144 240;
-#X text 109 80 0xF9 0x90 0xF0;
+#X restore 134 174 pd sysex;
+#N canvas 383 54 457 452 route 0;
+#X obj 46 24 inlet;
+#X obj 175 400 outlet;
+#X obj 233 400 outlet;
+#X obj 46 91 trigger anything anything;
+#X obj 292 400 outlet;
+#X obj 175 339 route digital analog;
+#X msg 193 115 \$1;
+#X obj 244 158 moses 224;
+#X text 314 157 0xE0 analog messages;
+#X obj 193 136 moses 144;
+#X text 257 136 0x90 digital messages;
+#X obj 244 209 bang;
+#X obj 295 209 bang;
+#X msg 244 236 digital;
+#X msg 297 236 analog;
+#X text 359 178 0xF0;
+#X obj 346 236 bang;
+#X obj 211 236 bang;
+#N canvas 134 58 335 257 parse 0;
+#X obj 73 18 inlet;
+#X obj 73 215 outlet;
+#X obj 73 161 pack float float;
+#X obj 73 64 unpack float float float;
+#X obj 166 110 +;
+#X obj 214 85 << 7;
+#X obj 73 85 & 15;
+#X connect 0 0 3 0;
+#X connect 2 0 1 0;
+#X connect 3 0 6 0;
+#X connect 3 1 4 0;
+#X connect 3 2 5 0;
+#X connect 4 0 2 1;
+#X connect 5 0 4 1;
+#X connect 6 0 2 0;
+#X restore 46 167 pd parse messages;
+#X obj 295 178 moses 240;
+#X obj 175 279 cyclone/prepend;
+#X connect 0 0 3 0;
+#X connect 3 0 18 0;
+#X connect 3 1 6 0;
+#X connect 5 0 1 0;
+#X connect 5 1 2 0;
+#X connect 5 2 4 0;
+#X connect 6 0 9 0;
+#X connect 7 0 11 0;
+#X connect 7 1 19 0;
+#X connect 9 0 17 0;
+#X connect 9 1 7 0;
+#X connect 11 0 13 0;
+#X connect 12 0 14 0;
+#X connect 13 0 20 1;
+#X connect 14 0 20 1;
+#X connect 16 0 20 1;
+#X connect 17 0 20 1;
+#X connect 18 0 20 0;
+#X connect 19 0 12 0;
+#X connect 19 1 16 0;
+#X connect 20 0 5 0;
+#X restore 205 126 pd route digital/analog;
+#X obj 97 95 route 249 240;
+#X text 124 80 0xF9 0xF0;
+#X obj 247 248 purepd/once;
+#X obj 247 270 pddp/print;
+#X msg 312 226 bang;
#X connect 2 0 0 0;
#X connect 3 0 0 0;
-#X connect 4 0 7 0;
+#X connect 4 0 8 0;
#X connect 5 0 0 0;
#X connect 6 0 0 0;
-#X connect 7 0 5 0;
-#X connect 7 1 2 0;
-#X connect 7 2 6 0;
-#X connect 7 3 3 0;
-#X restore 184 334 pd convert to symbolic commands;
-#X text 140 78 end of sysex;
-#X obj 79 79 route 247;
-#X obj 79 100 bang;
-#X connect 0 0 2 0;
-#X connect 2 0 9 0;
-#X connect 2 1 13 0;
-#X connect 3 0 9 0;
-#X connect 3 1 4 0;
-#X connect 4 0 7 1;
-#X connect 5 0 11 0;
-#X connect 6 0 5 1;
+#X connect 7 0 2 0;
+#X connect 7 1 3 0;
+#X connect 7 2 1 0;
+#X connect 8 0 5 0;
+#X connect 8 1 6 0;
+#X connect 8 2 7 0;
+#X connect 8 2 10 0;
+#X connect 10 0 11 0;
+#X connect 12 0 11 0;
+#X connect 12 0 10 1;
+#X restore 61 222 pd convert to symbolic commands;
+#X text 14 337 (C) Copyright 2006-2008 Free Software Foundation;
+#X text 321 336 released under the GNU GPL v2 or later;
+#X connect 0 0 3 0;
+#X connect 3 0 13 0;
+#X connect 4 0 13 0;
#X connect 7 0 8 0;
-#X connect 7 0 6 0;
-#X connect 8 0 7 1;
-#X connect 9 0 7 0;
-#X connect 9 1 5 0;
-#X connect 11 0 1 0;
-#X connect 13 0 14 0;
-#X connect 13 1 3 0;
-#X connect 14 0 5 1;
-#X restore 62 199 pd make lists;
-#N canvas 0 22 525 269 check 0;
-#X obj 47 62 inlet;
-#X obj 47 88 route version;
-#X obj 87 119 unpack float float;
-#X obj 132 163 print [arduino]_WARNING_INCOMPATIBLE_FIRMWARE_VERSION
-;
-#X obj 87 141 select 1;
-#X text 142 142 <-- this sets the firmware version this is compatible
-with;
-#X obj 47 192 print Arduino/Firmata_version;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 1 0 6 0;
-#X connect 2 0 4 0;
-#X connect 4 1 3 0;
-#X restore 92 242 pd check version;
-#X text 10 337 (C) Copyright 2006 Free Software Foundation;
-#X obj 61 136 flatspace/comport \$1 115200;
-#X connect 2 0 5 0;
-#X connect 5 0 16 0;
-#X connect 6 0 16 0;
-#X connect 9 0 10 0;
-#X connect 11 0 5 0;
-#X connect 13 0 14 0;
-#X connect 13 0 3 0;
-#X connect 16 0 4 0;
-#X connect 16 0 13 0;
-#X connect 16 1 11 0;
+#X connect 9 0 3 0;
+#X connect 11 0 14 0;
+#X connect 13 0 2 0;
+#X connect 13 0 11 0;
+#X connect 13 1 9 0;
+#X connect 14 0 1 0;
+#X connect 14 0 12 0;