#N canvas 89 22 674 563 10; #X declare -lib flatspace; #X obj 558 10 import flatspace; #N canvas 233 472 466 316 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 ; #X text 39 217 [speedlim] \, from iemlib \, pd-cvs/externals/iemlib ; #X text 20 27 1 General information on arduino: http://www.arduino.cc ; #X text 20 61 2 You need the firmware for Pduino: http://at.or.at/hans/pd/objects.html ; #X text 20 109 3 Don't forget to upload the firmware onto your arduino board !; #X text 21 159 4 Pduino needs the following externals and abstractions: ; #X text 22 257 5 If you still have troubles \, mail to the pd list !; #X restore 25 92 pd INSTALL-NOTES; #X text 150 93 <- read this first !; #X msg 58 189 close; #X msg 58 234 info; #X text 11 149 select/close the serial port:; #N canvas 248 49 447 555 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! ; #X obj 40 194 cnv 15 100 22 empty empty empty 20 12 0 14 -253938 -66577 0; #X msg 49 197 digital 13 0; #X obj 168 134 tgl 15 0 empty empty 7 4 -6 1 12 -233017 -1 -1 0 1; #X obj 185 134 tgl 15 0 empty empty 8 4 -6 1 12 -233017 -1 -1 0 1; #X obj 202 134 tgl 15 0 empty empty 9 4 -6 1 12 -233017 -1 -1 0 1; #X obj 219 134 tgl 15 0 empty empty 10 0 -6 1 12 -233017 -1 -1 0 1 ; #X obj 236 134 tgl 15 0 empty empty 11 0 -6 1 12 -233017 -1 -1 0 1 ; #X obj 253 134 tgl 15 0 empty empty 12 0 -6 1 12 -233017 -1 -1 0 1 ; #X obj 270 134 tgl 15 0 empty empty 13 0 -6 1 12 -233017 -1 -1 0 1 ; #X obj 83 134 tgl 15 0 empty empty 2 4 -6 1 12 -233017 -1 -1 0 1; #X obj 100 134 tgl 15 0 empty empty 3 4 -6 1 12 -233017 -1 -1 0 1; #X obj 117 134 tgl 15 0 empty empty 5 4 -6 1 12 -233017 -1 -1 0 1; #X obj 134 134 tgl 15 0 empty empty 6 4 -6 1 12 -233017 -1 -1 0 1; #X obj 151 134 tgl 15 0 empty empty 7 4 -6 1 12 -233017 -1 -1 0 1; #N canvas 474 328 810 360 generate 0; #X obj 49 24 inlet; #X obj 89 24 inlet; #X obj 128 24 inlet; #X obj 168 24 inlet; #X obj 208 24 inlet; #X obj 248 24 inlet; #X obj 287 24 inlet; #X obj 327 24 inlet; #X obj 368 23 inlet; #X obj 408 23 inlet; #X obj 447 23 inlet; #X obj 487 23 inlet; #X obj 527 23 inlet; #X msg 49 66 digital 0 \$1; #X msg 89 88 digital 1 \$1; #X msg 128 110 digital 2 \$1; #X msg 168 130 digital 3 \$1; #X msg 208 62 digital 4 \$1; #X msg 248 84 digital 5 \$1; #X msg 287 106 digital 6 \$1; #X msg 327 126 digital 7 \$1; #X msg 368 58 digital 8 \$1; #X msg 408 80 digital 9 \$1; #X msg 447 102 digital 10 \$1; #X msg 487 122 digital 11 \$1; #X msg 527 50 digital 12 \$1; #X obj 566 23 inlet; #X msg 566 70 digital 13 \$1; #X obj 305 196 prepend set; #X obj 305 254 outlet; #X obj 305 215 trigger bang anything; #X connect 0 0 13 0; #X connect 1 0 14 0; #X connect 2 0 15 0; #X connect 3 0 16 0; #X connect 4 0 17 0; #X connect 5 0 18 0; #X connect 6 0 19 0; #X connect 7 0 20 0; #X connect 8 0 21 0; #X connect 9 0 22 0; #X connect 10 0 23 0; #X connect 11 0 24 0; #X connect 12 0 25 0; #X connect 13 0 28 0; #X connect 14 0 28 0; #X connect 15 0 28 0; #X connect 16 0 28 0; #X connect 17 0 28 0; #X connect 18 0 28 0; #X connect 19 0 28 0; #X connect 20 0 28 0; #X connect 21 0 28 0; #X connect 22 0 28 0; #X connect 23 0 28 0; #X connect 24 0 28 0; #X connect 25 0 28 0; #X connect 26 0 27 0; #X connect 27 0 28 0; #X connect 28 0 30 0; #X connect 30 0 29 0; #X connect 30 1 29 0; #X restore 49 158 pd generate digital out messages; #X obj 319 109 tgl 25 0 empty empty ALL 2 12 0 12 -262144 -1 -1 0 1 ; #X obj 319 70 tgl 15 0 empty empty empty 0 -6 0 8 -225271 -1 -1 0 16383 ; #X obj 319 88 metro 100; #X obj 49 280 send \$0-arduino; #X text 143 197 <-- this is the message format; #X text 181 69 strobe all pins -->; #X obj 49 134 tgl 15 0 empty empty 0 3 -6 1 12 -260818 -1 -1 0 1; #X obj 66 134 tgl 15 0 empty empty 1 3 -6 1 12 -260818 -1 -1 0 1; #X obj 49 134 cnv 15 15 15 empty empty Rx 1 10 0 11 -128992 -86277 0; #X obj 66 134 cnv 15 15 15 empty empty Tx 1 10 0 11 -128992 -13381 0; #X obj 49 510 send \$0-arduino; #X text 38 311 You can also send digital messages 8-bits at a time \, called a "port". Microcontrollers like the Arduino are organized around 8-bit ports. This allows you to set 8 pins at the same time with one message; #X msg 267 392 port 1 0; #X msg 123 391 port 0 0; #X msg 49 391 port 0 255; #X msg 193 392 port 1 255; #X connect 3 0 20 0; #X connect 4 0 16 7; #X connect 5 0 16 8; #X connect 6 0 16 9; #X connect 7 0 16 10; #X connect 8 0 16 11; #X connect 9 0 16 12; #X connect 10 0 16 13; #X connect 11 0 16 2; #X connect 12 0 16 3; #X connect 13 0 16 4; #X connect 14 0 16 5; #X connect 15 0 16 6; #X connect 16 0 3 0; #X connect 17 0 10 0; #X connect 17 0 9 0; #X connect 17 0 8 0; #X connect 17 0 7 0; #X connect 17 0 6 0; #X connect 17 0 5 0; #X connect 17 0 4 0; #X connect 17 0 15 0; #X connect 17 0 14 0; #X connect 17 0 13 0; #X connect 17 0 12 0; #X connect 17 0 11 0; #X connect 18 0 19 0; #X connect 19 0 17 0; #X connect 29 0 27 0; #X connect 30 0 27 0; #X connect 31 0 27 0; #X connect 32 0 27 0; #X restore 61 428 pd DIGITAL-OUTPUT; #N canvas 494 94 578 280 DIGITAL-INPUT 0; #X obj 114 67 r \$0-arduino-out; #X text 387 93 connect the Digital Input; #X text 387 110 to the ground (=0) or to; #X text 387 127 the positive voltage (=1); #X text 113 185 NOTE: if you don't connect your pin neither to + nor to the ground \, you will get random values (0 or 1) - to avoid that \, you could connect all the pins to the ground !; #X text 114 32 NOTE: don't forget to set pins to input mode first! ; #X obj 114 89 route digital; #X obj 114 112 route 0 1 2 3 4 5 6 7 8 9 10 11 12 13; #X obj 145 134 tgl 15 0 empty empty 2 4 23 1 12 -232448 -1 -1 0 1; #X obj 162 134 tgl 15 0 empty empty 3 4 23 1 12 -232448 -1 -1 0 1; #X obj 179 134 tgl 15 0 empty empty 4 4 23 1 12 -232448 -1 -1 0 1; #X obj 196 134 tgl 15 0 empty empty 5 4 23 1 12 -232448 -1 -1 0 1; #X obj 213 134 tgl 15 0 empty empty 6 4 23 1 12 -232448 -1 -1 0 1; #X obj 230 134 tgl 15 0 empty empty 7 4 23 1 12 -232448 -1 -1 0 1; #X obj 247 134 tgl 15 0 empty empty 8 4 23 1 12 -232448 -1 -1 0 1; #X obj 264 134 tgl 15 0 empty empty 9 4 23 1 12 -232448 -1 -1 0 1; #X obj 281 134 tgl 15 0 empty empty 10 0 23 1 12 -232448 -1 -1 0 1 ; #X obj 298 134 tgl 15 0 empty empty 11 0 23 1 12 -232448 -1 -1 0 1 ; #X obj 315 134 tgl 15 0 empty empty 12 0 23 1 12 -232448 -1 -1 0 1 ; #X obj 332 134 tgl 15 0 empty empty 13 0 23 1 12 -232448 -1 -1 0 1 ; #X obj 111 134 tgl 15 0 empty empty 0 4 23 1 12 -232448 -1 -1 0 1; #X obj 128 134 tgl 15 0 empty empty 1 4 23 1 12 -232448 -1 -1 0 1; #X obj 111 134 cnv 15 15 15 empty empty Rx 1 10 0 11 -128992 -86277 0; #X obj 128 134 cnv 15 15 15 empty empty Tx 1 10 0 11 -128992 -13381 0; #X text 12 134 (serial port)->; #X connect 0 0 6 0; #X connect 6 0 7 0; #X connect 7 2 8 0; #X connect 7 3 9 0; #X connect 7 4 10 0; #X connect 7 5 11 0; #X connect 7 6 12 0; #X connect 7 7 13 0; #X connect 7 8 14 0; #X connect 7 9 15 0; #X connect 7 10 16 0; #X connect 7 11 17 0; #X connect 7 12 18 0; #X connect 7 13 19 0; #X restore 68 404 pd DIGITAL-INPUT; #X text 531 203 (0=input \, 1=output); #X obj 551 165 tgl 20 0 empty empty all 1 12 0 11 -261682 -1 -1 0 1 ; #X msg 394 244 pinMode 13 1; #X text 480 245 set pin 13 to output mode; #X text 290 149 Set input/output mode of the pins for digital IO:; #N canvas 268 170 441 343 ANALOG-INPUT 0; #X obj 121 70 r \$0-arduino-out; #X obj 121 108 spigot 0; #X obj 183 105 tgl 20 0 empty empty empty 0 -6 0 8 -258699 -1 -1 0 1; #X text 30 24 Analog Inputs of the Arduino-Board:; #X text 211 107 <- enable analog inputs; #X text 25 283 NOTE: connect the analog pins that you don't use to the ground \, if you want to avoid flickering of the values !; #X floatatom 22 226 5 0 0 3 a0 - -; #X floatatom 68 226 5 0 0 3 a1 - -; #X floatatom 114 226 5 0 0 3 a2 - -; #X floatatom 160 226 5 0 0 3 a3 - -; #X floatatom 206 226 5 0 0 3 a4 - -; #X floatatom 252 226 5 0 0 3 a5 - -; #X floatatom 298 226 5 0 0 3 a6 - -; #X floatatom 344 226 5 0 0 3 a7 - -; #X obj 121 147 route analog; #X obj 121 169 route 0 1 2 3 4 5 6 7; #N canvas 0 22 499 396 display 0; #X obj 6 7 inlet; #X obj 6 28 mapping/resample 100; #X obj 6 50 outlet; #X obj 54 50 inlet; #X obj 54 71 mapping/resample 100; #X obj 54 93 outlet; #X obj 103 93 inlet; #X obj 103 114 mapping/resample 100; #X obj 103 136 outlet; #X obj 151 136 inlet; #X obj 151 157 mapping/resample 100; #X obj 151 179 outlet; #X obj 200 179 inlet; #X obj 200 200 mapping/resample 100; #X obj 200 222 outlet; #X obj 247 222 inlet; #X obj 247 243 mapping/resample 100; #X obj 247 265 outlet; #X obj 295 265 inlet; #X obj 295 286 mapping/resample 100; #X obj 295 308 outlet; #X obj 345 308 inlet; #X obj 345 329 mapping/resample 100; #X obj 345 351 outlet; #X connect 0 0 1 0; #X connect 1 0 2 0; #X connect 3 0 4 0; #X connect 4 0 5 0; #X connect 6 0 7 0; #X connect 7 0 8 0; #X connect 9 0 10 0; #X connect 10 0 11 0; #X connect 12 0 13 0; #X connect 13 0 14 0; #X connect 15 0 16 0; #X connect 16 0 17 0; #X connect 18 0 19 0; #X connect 19 0 20 0; #X connect 21 0 22 0; #X connect 22 0 23 0; #X restore 45 200 pd display values without pegging the CPU; #X connect 0 0 1 0; #X connect 1 0 14 0; #X connect 2 0 1 1; #X connect 14 0 15 0; #X connect 15 0 16 0; #X connect 15 1 16 1; #X connect 15 2 16 2; #X connect 15 3 16 3; #X connect 15 4 16 4; #X connect 15 5 16 5; #X connect 15 6 16 6; #X connect 15 7 16 7; #X connect 16 0 6 0; #X connect 16 1 7 0; #X connect 16 2 8 0; #X connect 16 3 9 0; #X connect 16 4 10 0; #X connect 16 5 11 0; #X connect 16 6 12 0; #X connect 16 7 13 0; #X restore 73 452 pd ANALOG-INPUT; #N canvas 462 480 562 378 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.; #X text 17 89 NOTE: don't forget to set the pins to output mode first !; #X msg 21 189 pwm 9 \$1; #X obj 24 168 hsl 150 17 0 1 0 0 empty empty PWM_control_(0-1) -2 -6 1 10 -260818 -1 -1 0 1; #X obj 21 258 s \$0-arduino; #X text 29 215 disable PWM:; #X obj 192 168 hsl 150 17 0 1 0 0 empty empty PWM_control_(0-1) -2 -6 1 10 -260818 -1 -1 0 1; #X obj 189 258 s \$0-arduino; #X text 197 215 disable PWM:; #X obj 354 168 hsl 150 17 0 1 0 0 empty empty PWM_control_(0-1) -2 -6 1 10 -260818 -1 -1 0 1; #X obj 351 258 s \$0-arduino; #X text 359 215 disable PWM:; #X text 21 133 PIN9:; #X text 189 135 PIN10:; #X text 351 135 PIN11:; #X msg 189 189 pwm 10 \$1; #X msg 351 189 pwm 11 \$1; #X text 21 319 NOTE: it is possible to write as well on the other pins to send software-PWM signals (will come soon ...); #X msg 31 234 pwm 9 0; #X msg 199 234 pwm 10 0; #X msg 361 234 pwm 11 0; #X connect 3 0 5 0; #X connect 4 0 3 0; #X connect 7 0 16 0; #X connect 10 0 17 0; #X connect 16 0 8 0; #X connect 17 0 11 0; #X connect 19 0 5 0; #X connect 20 0 8 0; #X connect 21 0 11 0; #X restore 43 477 pd ANALOG-OUTPUT-PWM; #X text 25 357 With the Arduino-Board you can do digital and analog input and output \, as descriped in the following sub-patches:; #X text 191 427 <- example of Digital Output; #X text 191 405 <- example of Digital Input; #X text 191 453 <- example of Analog Input; #X text 191 478 <- example of Analog Output; #X text 259 30 Arduino Interface For PD; #X text 286 4 ::::_PDUINO_::::; #X text 468 517 2006 \, released under GNU GPL \; Gerda Strobl \, Georg Holzmann; #X text 111 261 <- list devices; #X obj 295 318 send \$0-arduino; #X obj 476 111 send \$0-arduino-out; #X obj 476 67 receive \$0-arduino; #X obj 16 314 send \$0-arduino; #N canvas 0 22 436 343 GETTING-INFO 0; #X msg 147 65 version; #X msg 207 65 info; #X obj 146 177 route version; #X floatatom 146 245 5 0 0 0 - - -; #X floatatom 251 245 5 0 0 0 - - -; #X obj 146 146 receive \$0-arduino-out; #X obj 147 107 send \$0-arduino; #X obj 146 221 unpack float float; #X connect 0 0 6 0; #X connect 1 0 6 0; #X connect 2 0 7 0; #X connect 5 0 2 0; #X connect 7 0 3 0; #X connect 7 1 4 0; #X restore 73 501 pd GETTING-INFO; #X text 191 502 <- example of getting status data; #N canvas 477 400 471 273 SWITCHING-INPUTS 0; #X obj 140 195 send \$0-arduino; #X msg 25 123 analogIns 0 0; #N canvas 162 133 610 460 serin 0; #X obj 59 337 outlet; #X obj 59 266 trigger bang anything; #X obj 201 286 list; #X obj 60 61 tgl 15 0 junk_to_hide_inlet junk_to_hide_outlet 0 5 9 1 12 -262130 -1 -1 0 1; #X obj 75 61 tgl 15 0 junk_to_hide_inlet junk_to_hide_outlet 1 5 9 1 12 -262130 -1 -1 0 1; #X obj 90 61 tgl 15 0 junk_to_hide_inlet junk_to_hide_outlet 2 5 9 1 12 -262130 -1 -1 0 1; #X obj 105 61 tgl 15 0 junk_to_hide_inlet junk_to_hide_outlet 3 5 9 1 12 -262130 -1 -1 0 1; #X obj 120 61 tgl 15 0 junk_to_hide_inlet junk_to_hide_outlet 4 5 9 1 12 -262130 -1 -1 0 1; #X obj 135 61 tgl 15 0 junk_to_hide_inlet junk_to_hide_outlet 5 5 9 1 12 -262130 -1 -1 0 1; #X obj 150 61 tgl 15 0 junk_to_hide_inlet junk_to_hide_outlet 6 5 9 1 12 -262130 -1 -1 0 1; #X obj 165 61 tgl 15 0 junk_to_hide_inlet junk_to_hide_outlet 7 5 9 1 12 -262130 -1 -1 0 1; #X msg 59 210 analogIns \$1 \$2; #X msg 35 106 0 \$1; #X msg 70 106 1 \$1; #X msg 105 106 2 \$1; #X msg 140 106 3 \$1; #X msg 175 106 4 \$1; #X msg 210 106 5 \$1; #X msg 245 106 6 \$1; #X msg 280 106 7 \$1; #X msg 202 307 set \$1 \$2 \$3; #X connect 1 0 0 0; #X connect 1 1 2 0; #X connect 2 0 20 0; #X connect 3 0 12 0; #X connect 4 0 13 0; #X connect 5 0 14 0; #X connect 6 0 15 0; #X connect 7 0 16 0; #X connect 8 0 17 0; #X connect 9 0 18 0; #X connect 10 0 19 0; #X connect 11 0 1 0; #X connect 12 0 11 0; #X connect 13 0 11 0; #X connect 14 0 11 0; #X connect 15 0 11 0; #X connect 16 0 11 0; #X connect 17 0 11 0; #X connect 18 0 11 0; #X connect 19 0 11 0; #X connect 20 0 0 0; #X coords 0 -1 1 1 120 16 1 60 60; #X restore 25 103 pd serin; #X text 24 86 which analogIns to enable:; #X msg 234 128 digitalIns 0 0; #X text 233 91 which digital ports to enable:; #N canvas 162 133 610 460 seri 0; #X obj 59 337 outlet; #X obj 59 266 trigger bang anything; #X obj 201 286 list; #X obj 60 61 tgl 15 0 junk_to_hide_inlet ARDUINO_TEST_RESET 0 5 9 1 12 -260736 -1 -1 0 1; #X obj 75 61 tgl 15 0 junk_to_hide_inlet ARDUINO_TEST_RESET 1 5 9 1 12 -260736 -1 -1 0 1; #X obj 90 61 tgl 15 0 junk_to_hide_inlet ARDUINO_TEST_RESET 2 5 9 1 12 -260736 -1 -1 0 1; #X msg 35 106 0 \$1; #X msg 70 106 1 \$1; #X msg 105 106 2 \$1; #X msg 202 307 set \$1 \$2 \$3; #X msg 59 210 digitalIns \$1 \$2; #X connect 1 0 0 0; #X connect 1 1 2 0; #X connect 2 0 9 0; #X connect 3 0 6 0; #X connect 4 0 7 0; #X connect 5 0 8 0; #X connect 6 0 10 0; #X connect 7 0 10 0; #X connect 8 0 10 0; #X connect 9 0 0 0; #X connect 10 0 1 0; #X coords 0 -1 1 1 45 16 1 60 60; #X restore 234 108 pd seri; #X text 23 15 Currently \, you have to tell StandardFirmata to send you data from the inputs. For analog \, its controlled per-pin. For digital it is controller per 8-pin "port".; #X connect 1 0 0 0; #X connect 2 0 1 0; #X connect 4 0 0 0; #X connect 6 0 4 0; #X restore 49 526 pd SWITCHING-INPUTS; #X text 191 526 <- example of switching inputs on and off; #X msg 394 283 digital 13 \$1; #X obj 394 265 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1; #X text 480 283 toggle pin 13 on and off; #X obj 476 90 arduino 1; #X msg 58 260 devices; #X text 92 234 <- info for current connection; #X obj 329 185 tgl 15 0 empty empty 2 3 -6 1 12 -260818 -1 -1 0 1; #X obj 346 185 tgl 15 0 empty empty 3 3 -6 1 12 -260818 -1 -1 0 1; #X obj 363 185 tgl 15 0 empty empty 4 3 -6 1 12 -260818 -1 -1 0 1; #X obj 380 185 tgl 15 0 empty empty 5 3 -6 1 12 -260818 -1 -1 0 1; #X obj 397 185 tgl 15 0 empty empty 6 3 -6 1 12 -260818 -1 -1 0 1; #X obj 414 185 tgl 15 0 empty empty 7 3 -6 1 12 -260818 -1 -1 0 1; #X obj 431 185 tgl 15 0 empty empty 8 3 -6 1 12 -260818 -1 -1 0 1; #X obj 448 185 tgl 15 0 empty empty 9 3 -6 1 12 -260818 -1 -1 0 1; #X obj 465 185 tgl 15 0 empty empty 10 0 -6 1 12 -260818 -1 -1 0 1 ; #X obj 482 185 tgl 15 0 empty empty 11 0 -6 1 12 -260818 -1 -1 0 1 ; #X obj 499 185 tgl 15 0 empty empty 12 0 -6 1 12 -260818 -1 -1 0 1 ; #X obj 516 185 tgl 15 0 empty empty 13 0 -6 1 12 -260818 -1 -1 0 1 ; #X msg 295 226 pinMode 13 1; #N canvas 163 104 696 323 send-to-arduino------------------- 0; #X obj 49 24 inlet; #X obj 89 24 inlet; #X obj 128 24 inlet; #X obj 168 24 inlet; #X obj 208 24 inlet; #X obj 248 24 inlet; #X obj 287 24 inlet; #X obj 327 24 inlet; #X obj 368 23 inlet; #X obj 408 23 inlet; #X obj 447 23 inlet; #X obj 487 23 inlet; #X obj 527 23 inlet; #X msg 49 66 pinMode 0 \$1; #X msg 89 88 pinMode 1 \$1; #X msg 128 110 pinMode 2 \$1; #X msg 168 130 pinMode 3 \$1; #X msg 208 62 pinMode 4 \$1; #X msg 248 84 pinMode 5 \$1; #X msg 287 106 pinMode 6 \$1; #X msg 327 126 pinMode 7 \$1; #X msg 368 58 pinMode 8 \$1; #X msg 408 80 pinMode 9 \$1; #X msg 447 102 pinMode 10 \$1; #X msg 487 122 pinMode 11 \$1; #X msg 527 50 pinMode 12 \$1; #X obj 566 23 inlet; #X msg 566 70 pinMode 13 \$1; #X obj 305 282 outlet; #X obj 305 243 trigger bang anything; #X obj 305 196 list prepend set; #X obj 305 220 list trim; #X connect 0 0 13 0; #X connect 1 0 14 0; #X connect 2 0 15 0; #X connect 3 0 16 0; #X connect 4 0 17 0; #X connect 5 0 18 0; #X connect 6 0 19 0; #X connect 7 0 20 0; #X connect 8 0 21 0; #X connect 9 0 22 0; #X connect 10 0 23 0; #X connect 11 0 24 0; #X connect 12 0 25 0; #X connect 13 0 30 0; #X connect 14 0 30 0; #X connect 15 0 30 0; #X connect 16 0 30 0; #X connect 17 0 30 0; #X connect 18 0 30 0; #X connect 19 0 30 0; #X connect 20 0 30 0; #X connect 21 0 30 0; #X connect 22 0 30 0; #X connect 23 0 30 0; #X connect 24 0 30 0; #X connect 25 0 30 0; #X connect 26 0 27 0; #X connect 27 0 30 0; #X connect 29 0 28 0; #X connect 29 1 28 0; #X connect 30 0 31 0; #X connect 31 0 29 0; #X restore 295 204 pd send-to-arduino-------------------; #X obj 295 185 tgl 15 0 empty empty 0 3 -6 1 12 -260818 -1 -1 0 1; #X obj 312 185 tgl 15 0 empty empty 1 3 -6 1 12 -260818 -1 -1 0 1; #X obj 295 185 cnv 15 15 15 empty empty Rx 1 10 0 11 -128992 -86277 0; #X obj 312 185 cnv 15 15 15 empty empty Tx 1 10 0 11 -128992 -13381 0; #X text 291 91 here is our Arduino object -->; #X msg 58 286 version; #X text 110 286 <- get firmware version; #X msg 11 189 open 1; #N canvas 627 365 360 384 serin 0; #X obj 180 61 cnv 15 15 15 empty \$0-number-canvas 1 4 8 0 14 -233017 -1 0; #X obj 200 225 s \$0-number-canvas; #X obj 60 61 hradio 15 1 1 8 empty empty empty 0 -6 0 8 -225271 -1 -1 1; #X obj 60 13 inlet; #X msg 200 202 label \$1; #X obj 200 180 makefilename %d; #X obj 59 108 int; #X msg 59 206 open \$1; #X obj 59 337 outlet; #X msg 201 306 set \$1 \$2; #X obj 59 266 trigger bang anything; #X obj 201 286 list; #X connect 2 0 6 0; #X connect 3 0 2 0; #X connect 4 0 1 0; #X connect 5 0 4 0; #X connect 6 0 5 0; #X connect 6 0 7 0; #X connect 7 0 10 0; #X connect 9 0 8 0; #X connect 10 0 8 0; #X connect 10 1 11 0; #X connect 11 0 9 0; #X coords 0 -1 1 1 136 17 1 60 60; #X restore 11 166 pd serin; #N canvas 0 22 467 240 ver 0; #X obj 250 100 cnv 15 145 17 empty \$0-version_cnv empty 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 23 6 receive \$0-arduino-out; #X connect 2 0 1 0; #X connect 3 0 2 0; #X connect 4 0 2 0; #X connect 5 0 4 0; #X connect 6 0 4 0; #X connect 7 0 3 0; #X connect 8 0 7 0; #X coords 0 -1 1 1 145 17 1 250 100; #X restore 125 314 pd ver; #X text 201 185 (serial port)->; #X connect 3 0 27 0; #X connect 4 0 27 0; #X connect 9 0 49 0; #X connect 9 0 48 0; #X connect 9 0 47 0; #X connect 9 0 46 0; #X connect 9 0 45 0; #X connect 9 0 44 0; #X connect 9 0 43 0; #X connect 9 0 42 0; #X connect 9 0 41 0; #X connect 9 0 40 0; #X connect 9 0 39 0; #X connect 9 0 38 0; #X connect 10 0 24 0; #X connect 26 0 35 0; #X connect 32 0 24 0; #X connect 33 0 32 0; #X connect 35 0 25 0; #X connect 36 0 27 0; #X connect 38 0 51 2; #X connect 39 0 51 3; #X connect 40 0 51 4; #X connect 41 0 51 5; #X connect 42 0 51 6; #X connect 43 0 51 7; #X connect 44 0 51 8; #X connect 45 0 51 9; #X connect 46 0 51 10; #X connect 47 0 51 11; #X connect 48 0 51 12; #X connect 49 0 51 13; #X connect 50 0 24 0; #X connect 51 0 50 0; #X connect 57 0 27 0; #X connect 59 0 27 0; #X connect 60 0 59 0;