#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; #X obj 61 19 inlet; #X obj 61 297 outlet; #X obj 544 297 outlet; #N canvas 7 503 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; #X restore 326 122 pd digital-out; #N canvas 310 221 540 347 pinMode 0; #X obj 190 11 inlet; #X obj 289 307 outlet; #X obj 60 91 unpack float float; #X text 27 90 pin#; #X text 177 92 mode; #X obj 60 146 moses 128; #X obj 165 144 select 0; #X msg 165 167 0; #X msg 210 167 1; #X text 54 125 do bounds checking to be safe; #X obj 190 35 trigger list bang; #X msg 289 256 244; #X obj 138 254 float; #X obj 36 202 trigger bang float; #X connect 0 0 10 0; #X connect 2 0 5 0; #X connect 2 1 6 0; #X connect 5 0 13 0; #X connect 6 0 7 0; #X connect 6 1 8 0; #X connect 7 0 12 1; #X connect 8 0 12 1; #X connect 10 0 2 0; #X connect 10 1 11 0; #X connect 11 0 1 0; #X connect 12 0 1 0; #X connect 13 0 12 0; #X connect 13 1 1 0; #X restore 238 94 pd pinMode; #N canvas 300 373 372 380 pwm 0; #X obj 44 14 inlet; #X obj 44 312 outlet; #X obj 44 79 unpack float float; #X obj 44 124 + 224; #X text 78 125 0xE0; #X msg 44 249 \$1 \, \$2 \, \$3; #X obj 44 212 pack float float float; #X obj 149 126 * 255; #X obj 173 165 >> 7; #X obj 108 165 & 127; #X connect 0 0 2 0; #X connect 2 0 3 0; #X connect 2 1 7 0; #X connect 3 0 6 0; #X connect 5 0 1 0; #X connect 6 0 5 0; #X connect 7 0 8 0; #X connect 7 0 9 0; #X connect 8 0 6 2; #X connect 9 0 6 1; #X restore 24 94 pd pwm; #X msg 307 94 info; #X msg 420 136 249; #N canvas 0 22 462 312 analogIns 0; #X obj 64 7 inlet; #X obj 69 263 outlet; #X obj 64 65 unpack float float; #X obj 69 175 pack float float; #X msg 69 201 \$1 \, \$2; #X obj 169 95 select 0; #X obj 214 118 bang; #X msg 214 140 1; #X msg 169 117 0; #X obj 64 124 + 192; #X obj 64 95 moses 16; #X text 100 123 0xC0; #X connect 0 0 2 0; #X connect 2 0 10 0; #X connect 2 1 5 0; #X connect 3 0 4 0; #X connect 4 0 1 0; #X connect 5 0 8 0; #X connect 5 1 6 0; #X connect 6 0 7 0; #X connect 7 0 3 1; #X connect 8 0 3 1; #X connect 9 0 3 0; #X connect 10 0 9 0; #X restore 69 94 pd analogIns; #N canvas 0 22 458 308 digitalIns 0; #X obj 98 26 inlet; #X obj 98 264 outlet; #X obj 98 89 select 0; #X msg 98 111 0; #X obj 143 110 bang; #X msg 143 131 1; #X msg 98 178 208 \, \$1; #X connect 0 0 2 0; #X connect 2 0 3 0; #X connect 2 1 4 0; #X connect 3 0 6 0; #X connect 4 0 5 0; #X connect 5 0 6 0; #X connect 6 0 1 0; #X restore 150 94 pd digitalIns; #X obj 361 77 route digital version firmware; #X msg 479 136 240 \, 121 \, 247; #X obj 420 116 bang; #X obj 479 115 bang; #X obj 24 51 route pwm analog analogIns digitalIns pinMode info; #N canvas 624 420 451 466 sysex 0; #X obj 62 424 outlet; #X obj 28 22 inlet; #X obj 28 145 list split 1; #X obj 62 321 list prepend; #X obj 62 177 route bang; #X text 68 22 sysex; #X obj 250 22 inlet; #X text 286 21 string; #X obj 250 155 trigger anything bang; #X text 398 176 0x71; #X msg 373 177 113; #N canvas 366 192 467 461 split 0; #X text 87 12 Firmata sends 8-bit chars as two 7-bit bytes; #X obj 32 12 inlet; #X obj 50 422 outlet; #X obj 168 173 list; #X obj 50 361 mapping/tolist; #X obj 189 112 route bang; #X obj 189 137 bang; #X obj 32 311 trigger bang bang; #X obj 32 54 trigger bang anything; #X obj 155 89 list split 1; #X obj 110 208 trigger bang anything anything; #X text 256 191 LSB; #X obj 226 298 % 128; #X text 267 297 only 7-bits of data allowed; #X text 204 190 MSB; #X obj 198 234 >> 7; #X text 235 137 bang resets once finished; #X connect 1 0 8 0; #X connect 3 0 9 0; #X connect 4 0 2 0; #X connect 5 0 6 0; #X connect 5 1 3 1; #X connect 6 0 3 1; #X connect 7 0 4 0; #X connect 7 1 4 1; #X connect 8 0 7 0; #X connect 8 1 9 0; #X connect 9 0 10 0; #X connect 9 1 5 0; #X connect 10 0 3 0; #X connect 10 1 15 0; #X connect 10 2 12 0; #X connect 12 0 4 0; #X connect 15 0 12 0; #X restore 119 212 pd split into 7-bit bytes; #X obj 62 344 list prepend 240; #X text 168 345 0xF0 start_sysex; #X text 167 366 0xF7 end_sysex; #X obj 62 366 list append 247; #X obj 28 66 trigger anything anything; #X msg 175 87 \$1; #X connect 1 0 16 0; #X connect 2 1 4 0; #X connect 3 0 12 0; #X connect 4 0 3 0; #X connect 4 1 11 0; #X connect 6 0 8 0; #X connect 8 0 11 0; #X connect 8 1 10 0; #X connect 10 0 3 1; #X connect 11 0 3 0; #X connect 12 0 15 0; #X connect 15 0 0 0; #X connect 16 0 2 0; #X connect 16 1 17 0; #X connect 17 0 3 1; #X restore 572 136 pd sysex; #X obj 572 114 route sysex string; #X connect 0 0 13 0; #X connect 2 0 1 0; #X connect 3 0 1 0; #X connect 4 0 1 0; #X connect 5 0 1 0; #X connect 6 0 1 0; #X connect 7 0 1 0; #X connect 8 0 1 0; #X connect 9 0 2 0; #X connect 9 1 11 0; #X connect 9 2 12 0; #X connect 9 3 15 0; #X connect 10 0 1 0; #X connect 11 0 6 0; #X connect 12 0 10 0; #X connect 13 0 4 0; #X connect 13 1 4 0; #X connect 13 2 7 0; #X connect 13 3 8 0; #X connect 13 4 3 0; #X connect 13 5 5 0; #X connect 13 6 9 0; #X connect 14 0 1 0; #X connect 15 0 14 0; #X connect 15 1 14 1; #X connect 15 2 1 0; #X restore 61 52 pd command processing; #X obj 319 19 inlet; #X text 306 1 raw input; #X text 57 1 processed input; #X obj 410 88 loadbang; #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 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; #X connect 0 0 1 0; #X connect 1 0 2 0; #X connect 2 0 4 0; #X connect 4 0 3 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; #X obj 28 6 inlet; #X obj 184 377 outlet; #X obj 28 52 moses 128; #X obj 130 100 trigger float float; #N canvas 459 531 653 358 set 0; #X obj 26 3 inlet; #X obj 34 307 outlet; #X text 85 31 0xF0; #X obj 26 31 moses 240; #X text 79 307 length in byte count; #X msg 283 122 2; #X obj 26 60 & 240; #X obj 26 101 select 144 160 176 192 208 224; #X text 29 86 0x90 0xA0 0xB0 0xC0 0xD0 0xE0; #X msg 251 122 2; #X text 282 83 0xF4 0xF9; #X obj 195 242 print [arduino]_WARNING_currently_unsupported; #X msg 55 122 160; #X msg 26 122 2; #X msg 85 122 176; #X msg 114 122 1; #X msg 144 122 1; #X msg 173 122 2; #X text 348 69 sysex; #X msg 315 122 999999; #X text 362 121 <-- sets sysex size limit; #X text 62 60 strip channel info; #X text 342 83 0xF0; #X obj 251 101 select 244 249 240; #X connect 0 0 3 0; #X connect 3 0 6 0; #X connect 3 1 23 0; #X connect 5 0 1 0; #X connect 6 0 7 0; #X connect 7 0 13 0; #X connect 7 1 12 0; #X connect 7 2 14 0; #X connect 7 3 15 0; #X connect 7 4 16 0; #X connect 7 5 17 0; #X connect 9 0 1 0; #X connect 12 0 11 0; #X connect 13 0 1 0; #X connect 14 0 11 0; #X connect 15 0 1 0; #X connect 16 0 1 0; #X connect 17 0 1 0; #X connect 19 0 1 0; #X connect 23 0 9 0; #X connect 23 1 5 0; #X connect 23 2 19 0; #X restore 241 127 pd set message length; #X obj 184 298 mapping/tolist; #X obj 79 250 select 0; #X obj 79 228 float; #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 obj 142 278 outlet; #X obj 34 321 print UNKNOWN_INPUT_COMMAND; #N canvas 123 202 630 307 digital 0; #X obj 163 16 inlet; #X obj 252 255 outlet; #X obj 163 42 unpack float float; #X obj 284 71 mapping/debytemask; #X msg 252 229 digital \$1 \$2; #X obj 117 71 mapping/debytemask; #X msg 4 119 0 \$1; #X msg 42 119 1 \$1; #X msg 80 119 2 \$1; #X msg 118 119 3 \$1; #X msg 156 119 4 \$1; #X msg 194 119 5 \$1; #X msg 232 119 6 \$1; #X msg 274 119 7 \$1; #X msg 312 119 8 \$1; #X msg 350 119 9 \$1; #X msg 388 119 10 \$1; #X msg 432 119 11 \$1; #X msg 480 119 12 \$1; #X msg 527 119 13 \$1; #X connect 0 0 2 0; #X connect 2 0 5 0; #X connect 2 1 3 0; #X connect 3 0 13 0; #X connect 3 1 14 0; #X connect 3 2 15 0; #X connect 3 3 16 0; #X connect 3 4 17 0; #X connect 3 5 18 0; #X connect 3 6 19 0; #X connect 4 0 1 0; #X connect 5 0 6 0; #X connect 5 1 7 0; #X connect 5 2 8 0; #X connect 5 3 9 0; #X connect 5 4 10 0; #X connect 5 5 11 0; #X connect 5 6 12 0; #X connect 6 0 4 0; #X connect 7 0 4 0; #X connect 8 0 4 0; #X connect 9 0 4 0; #X connect 10 0 4 0; #X connect 11 0 4 0; #X connect 12 0 4 0; #X connect 13 0 4 0; #X connect 14 0 4 0; #X connect 15 0 4 0; #X connect 16 0 4 0; #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 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 msg 40 174 version \$2 \$1; #N canvas 921 447 492 456 sysex 0; #X obj 77 20 inlet; #X obj 77 407 outlet; #N canvas 1036 237 450 300 firmware 0; #X obj 91 6 inlet; #X obj 91 272 outlet; #X obj 91 170 list prepend; #X obj 91 206 list prepend firmware; #X obj 91 239 list trim; #X obj 160 116 moocow/string2any 32 -1; #X obj 91 39 list split 2; #N canvas 843 250 610 545 reassemble 0; #X text 91 24 Firmata sends 8-bit chars as two 7-bit bytes; #X obj 36 24 inlet; #X obj 54 514 outlet; #X obj 159 131 list split 2; #X obj 196 206 list; #X obj 109 256 trigger bang anything; #X obj 232 280 unpack float float; #X obj 232 340 +; #X obj 54 403 mapping/tolist; #X obj 193 154 route bang; #X obj 337 303 << 7; #X obj 193 179 bang; #X obj 36 353 trigger bang bang; #X obj 36 106 trigger bang anything; #X text 249 179 reset the list if end of list or there is a single byte left over; #X connect 1 0 13 0; #X connect 3 0 5 0; #X connect 3 1 9 0; #X connect 3 2 11 0; #X connect 4 0 3 0; #X connect 5 0 4 0; #X connect 5 1 6 0; #X connect 6 0 7 0; #X connect 6 1 10 0; #X connect 7 0 8 0; #X connect 8 0 2 0; #X connect 9 0 11 0; #X connect 9 1 4 1; #X connect 10 0 7 1; #X connect 11 0 4 1; #X connect 12 0 8 0; #X connect 12 1 8 1; #X connect 13 0 12 0; #X connect 13 1 3 0; #X restore 160 79 pd reassemble chars; #X connect 0 0 6 0; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 1 0; #X connect 5 0 2 1; #X connect 6 0 2 0; #X connect 6 1 7 0; #X connect 6 2 7 0; #X connect 7 0 5 0; #X restore 77 229 pd firmware; #N canvas 843 250 610 545 assemble 0; #X text 91 24 Firmata sends 8-bit chars as two 7-bit bytes; #X obj 36 24 inlet; #X obj 54 514 outlet; #X obj 159 131 list split 2; #X obj 196 206 list; #X obj 109 256 trigger bang anything; #X obj 232 280 unpack float float; #X obj 232 340 +; #X obj 54 403 mapping/tolist; #X obj 193 154 route bang; #X obj 337 303 << 7; #X obj 193 179 bang; #X obj 36 353 trigger bang bang; #X obj 36 106 trigger bang anything; #X text 249 179 reset the list if end of list or there is a single byte left over; #X connect 1 0 13 0; #X connect 3 0 5 0; #X connect 3 1 9 0; #X connect 3 2 11 0; #X connect 4 0 3 0; #X connect 5 0 4 0; #X connect 5 1 6 0; #X connect 6 0 7 0; #X connect 6 1 10 0; #X connect 7 0 8 0; #X connect 8 0 2 0; #X connect 9 0 11 0; #X connect 9 1 4 1; #X connect 10 0 7 1; #X connect 11 0 4 1; #X connect 12 0 8 0; #X connect 12 1 8 1; #X connect 13 0 12 0; #X connect 13 1 3 0; #X restore 181 281 pd assemble 7-bit into 14-bit values; #X obj 181 330 list prepend; #X obj 181 351 list trim; #X obj 180 157 trigger anything anything; #X msg 327 181 \$1; #X obj 181 183 list split 1; #X obj 327 205 select 112 113; #X text 358 188 0x70 0x71; #X msg 356 230 string; #X msg 273 230 servo_config; #X text 108 80 0x79; #X obj 77 98 route 121; #X connect 0 0 14 0; #X connect 2 0 1 0; #X connect 3 0 4 0; #X connect 4 0 5 0; #X connect 5 0 1 0; #X connect 6 0 8 0; #X connect 6 1 7 0; #X connect 7 0 9 0; #X connect 8 1 3 0; #X connect 9 0 12 0; #X connect 9 1 11 0; #X connect 9 2 4 1; #X connect 11 0 4 1; #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 connect 2 0 0 0; #X connect 3 0 0 0; #X connect 4 0 7 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 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;