From b5ddfbc4f01c27e2419f9fddcac614dec93d00a4 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Fri, 11 Apr 2008 22:08:18 +0000 Subject: 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 --- arduino.pd | 337 +++++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 205 insertions(+), 132 deletions(-) (limited to 'arduino.pd') 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; -- cgit v1.2.1