#N canvas 350 188 596 398 10; #X obj 32 56 inlet; #X obj 32 334 outlet; #N canvas 214 231 982 332 command 0; #X obj 24 7 inlet; #X obj 299 298 outlet; #N canvas 562 295 547 478 digital-out 0; #X obj 4 15 inlet; #X obj 284 440 outlet; #X msg 373 158 \$1; #X text 402 157 add channel to command; #X text 411 201 0x90; #X obj 373 202 + 144; #X obj 373 180 div 8; #X obj 212 391 float; #X obj 145 391 float; #X obj 459 16 inlet; #X text 339 15 state from port-out; #X msg 157 84 \$2; #X obj 237 121 <<; #X msg 237 100 1 \$1; #X obj 284 242 * 8; #X obj 172 371 >> 7; #X obj 239 371 & 127; #X obj 249 314 &; #X msg 290 267 255 \$1; #X obj 290 288 <<; #X obj 5 55 trigger bang bang bang anything anything anything; #X obj 157 267 float; #X obj 255 338 >>; #X obj 207 197 |; #X obj 207 165 float; #X obj 157 159 float; #X obj 157 115 select 0 1; #X floatatom 462 49 0 0 0 0 - - - 0; #X obj 157 181 * -1; #X obj 157 210 - 1; #X obj 157 239 &; #X connect 0 0 20 0; #X connect 2 0 6 0; #X connect 5 0 1 0; #X connect 6 0 5 0; #X connect 6 0 14 0; #X connect 7 0 1 0; #X connect 8 0 1 0; #X connect 9 0 23 0; #X connect 9 0 27 0; #X connect 11 0 26 0; #X connect 12 0 24 1; #X connect 12 0 25 1; #X connect 13 0 12 0; #X connect 14 0 18 0; #X connect 14 0 22 1; #X connect 15 0 8 1; #X connect 16 0 7 1; #X connect 17 0 22 0; #X connect 18 0 19 0; #X connect 19 0 17 1; #X connect 20 0 8 0; #X connect 20 1 7 0; #X connect 20 3 11 0; #X connect 20 4 13 0; #X connect 20 5 2 0; #X connect 21 0 23 1; #X connect 21 0 17 0; #X connect 21 0 30 1; #X connect 22 0 16 0; #X connect 22 0 15 0; #X connect 23 0 21 0; #X connect 24 0 23 0; #X connect 25 0 28 0; #X connect 26 0 25 0; #X connect 26 1 24 0; #X connect 28 0 29 0; #X connect 29 0 30 0; #X connect 30 0 21 0; #X restore 310 114 pd digital-out; #N canvas 37 230 541 377 pinMode 0; #X obj 51 8 inlet; #X obj 51 350 outlet; #X text 141 54 pin#; #X text 321 56 mode; #X obj 174 147 moses 128; #X msg 51 227 244; #X text 194 131 do bounds checking to be safe; #X obj 51 252 pack float float float; #X obj 279 147 moses 128; #X obj 225 255 bang; #X obj 225 320 list trim; #X obj 225 300 list prepend ERROR:; #X msg 225 275 pinMode pin# greater than 127; #X obj 330 213 bang; #X msg 330 233 pinMode mode greater than 127; #X obj 225 340 print [arduino]; #N canvas 577 324 396 304 turn 0; #X obj 123 21 inlet; #X obj 43 21 inlet; #X obj 123 78 select 0; #X text 178 78 INPUT; #X obj 215 252 outlet; #X obj 110 135 spigot; #X msg 123 109 1; #X obj 215 180 >> 3; #X obj 110 158 trigger bang float; #X msg 152 109 0; #X text 254 201 0xD0; #X obj 215 201 + 208; #X obj 215 228 pack float 1; #X text 42 202 generate digitalIns message; #X connect 0 0 2 0; #X connect 1 0 5 0; #X connect 2 0 6 0; #X connect 5 0 8 0; #X connect 6 0 5 1; #X connect 7 0 11 0; #X connect 8 0 9 0; #X connect 8 1 7 0; #X connect 9 0 5 1; #X connect 11 0 12 0; #X connect 12 0 4 0; #X restore 174 184 pd turn digital reporting on; #X obj 51 32 trigger bang anything; #X obj 309 78 route float symbol; #N canvas 0 76 450 300 s2f 0; #X obj 72 14 inlet; #X obj 72 265 outlet; #X obj 72 69 select input output analog pwm servo; #X obj 285 262 outlet; #X msg 72 95 0; #X msg 114 95 1; #X msg 157 95 2; #X msg 199 95 3; #X msg 242 95 4; #X connect 0 0 2 0; #X connect 2 0 4 0; #X connect 2 1 5 0; #X connect 2 2 6 0; #X connect 2 3 7 0; #X connect 2 4 8 0; #X connect 2 5 3 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 restore 361 99 pd s2f; #X obj 414 120 list; #X msg 414 141 unknown pinMode: \$1; #X obj 174 55 list split 1; #X connect 0 0 17 0; #X connect 4 0 7 1; #X connect 4 0 16 0; #X connect 4 1 9 0; #X connect 5 0 7 0; #X connect 7 0 1 0; #X connect 8 0 7 2; #X connect 8 0 16 1; #X connect 8 1 13 0; #X connect 9 0 12 0; #X connect 10 0 15 0; #X connect 11 0 10 0; #X connect 12 0 11 0; #X connect 13 0 14 0; #X connect 14 0 11 0; #X connect 16 0 1 0; #X connect 17 0 5 0; #X connect 17 1 22 0; #X connect 18 0 8 0; #X connect 18 1 19 0; #X connect 18 2 20 0; #X connect 19 0 8 0; #X connect 19 1 20 0; #X connect 20 0 21 0; #X connect 21 0 11 0; #X connect 22 0 4 0; #X connect 22 1 18 0; #X restore 237 93 pd pinMode; #N canvas 300 396 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 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 6 0; #X connect 3 0 5 0; #X connect 5 0 1 0; #X connect 6 0 7 0; #X connect 6 0 8 0; #X connect 7 0 5 2; #X connect 8 0 5 1; #X restore 24 94 pd pwm; #X msg 477 113 249; #N canvas 0 50 462 312 analogIns 0; #X obj 64 7 inlet; #X obj 64 263 outlet; #X obj 64 65 unpack float float; #X obj 64 175 pack float float; #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 9 0; #X connect 2 1 4 0; #X connect 3 0 1 0; #X connect 4 0 7 0; #X connect 4 1 5 0; #X connect 5 0 6 0; #X connect 6 0 3 1; #X connect 7 0 3 1; #X connect 8 0 3 0; #X connect 9 0 8 0; #X restore 69 94 pd analogIns; #N canvas 592 114 341 294 digitalIns 0; #X obj 87 26 inlet; #X obj 87 250 outlet; #X text 126 117 0xD0; #X obj 87 90 unpack float float; #X obj 87 146 pack float float; #X obj 87 117 + 208; #X connect 0 0 3 0; #X connect 3 0 5 0; #X connect 3 1 4 1; #X connect 4 0 1 0; #X connect 5 0 4 0; #X restore 150 94 pd digitalIns; #N canvas 623 398 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 363 261 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 32 367 outlet; #X obj 168 173 list; #X obj 189 112 route bang; #X obj 189 137 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; #N canvas 0 50 313 216 tolist 0; #X obj 89 50 inlet; #X obj 179 50 inlet; #X obj 89 155 outlet; #N canvas 140 104 344 212 msg 0; #X obj 12 13 inlet; #X obj 12 113 outlet; #X msg 12 33; #X connect 0 0 2 0; #X connect 2 0 1 0; #X restore 89 124 pd msg; #X msg 179 70 add2 \$1; #X msg 89 86 bang \, set; #X connect 0 0 5 0; #X connect 1 0 4 0; #X connect 3 0 2 0; #X connect 4 0 3 0; #X connect 5 0 3 0; #X restore 32 344 pd tolist; #X connect 1 0 6 0; #X connect 3 0 7 0; #X connect 4 0 5 0; #X connect 4 1 3 1; #X connect 5 0 3 1; #X connect 6 0 15 0; #X connect 6 1 7 0; #X connect 7 0 8 0; #X connect 7 1 4 0; #X connect 8 0 3 0; #X connect 8 1 13 0; #X connect 8 2 10 0; #X connect 10 0 15 1; #X connect 13 0 10 0; #X connect 15 0 2 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 860 113 pd sysex; #N canvas 107 521 569 343 port-out 0; #X obj 13 15 inlet; #X obj 167 281 outlet; #X msg 244 82 \$1; #X text 343 149 add channel to command; #X text 309 190 0x90; #X obj 271 191 + 144; #X obj 244 129 moses; #X obj 13 55 trigger bang anything anything anything; #X obj 271 149 moses 16; #X obj 353 219 print [arduino]; #X msg 353 197 ERROR: no such channel: \$1; #X msg 167 82 \$2; #X msg 90 82 \$2; #X obj 167 129 & 127; #X obj 90 130 & 128; #X obj 90 151 == 128; #X obj 21 285 outlet; #X obj 36 230 * 8; #X obj 21 251 <<; #X connect 0 0 7 0; #X connect 2 0 6 0; #X connect 5 0 1 0; #X connect 6 0 10 0; #X connect 6 1 8 0; #X connect 7 1 12 0; #X connect 7 2 11 0; #X connect 7 3 2 0; #X connect 8 0 5 0; #X connect 8 0 17 0; #X connect 8 1 10 0; #X connect 10 0 9 0; #X connect 11 0 13 0; #X connect 12 0 14 0; #X connect 12 0 18 0; #X connect 13 0 1 0; #X connect 14 0 15 0; #X connect 15 0 1 0; #X connect 17 0 18 1; #X connect 18 0 16 0; #X restore 403 114 pd port-out; #N canvas 429 494 450 300 samplingInterval 0; #X obj 39 252 outlet; #X obj 38 21 inlet; #X text 156 54 LSB; #X obj 39 131 % 128; #X text 103 54 MSB; #X obj 39 107 >> 7; #X obj 39 153 pack float float; #X obj 132 130 % 128; #X text 172 129 only 7-bit chunks of data allowed; #X msg 39 188 240 122 \$2 \$1 247; #X text 152 189 START_SYSEX 0x7A LSB MSB END_SYSEX; #X obj 39 71 trigger anything anything; #X connect 1 0 11 0; #X connect 3 0 6 0; #X connect 5 0 3 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 9 0 0 0; #X connect 11 0 5 0; #X connect 11 1 7 0; #X restore 733 113 pd samplingInterval; #X obj 24 51 route pwm analog analogIns digitalIns pinMode; #X obj 952 108 t a; #X msg 506 143 240 \$1 247; #X msg 506 113 121; #X msg 536 113 107; #N canvas 0 50 421 260 pinState 0; #X obj 15 20 inlet; #X obj 15 200 outlet; #X obj 15 56 route float; #X obj 15 78 moses 128; #X obj 99 154 print [arduino]; #X msg 99 129 ERROR: invalid pin for pinState query: \$1; #X obj 99 104 list; #X msg 15 177 240 109 \$1 247; #X connect 0 0 2 0; #X connect 2 0 3 0; #X connect 2 1 6 0; #X connect 3 0 7 0; #X connect 3 1 5 0; #X connect 5 0 4 0; #X connect 6 0 5 0; #X connect 7 0 1 0; #X restore 582 113 pd pinState; #X obj 310 51 route digital port version firmware capability pinState ; #X obj 661 52 route analogMapping samplingInterval sysex string; #X msg 661 113 105; #X connect 0 0 11 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 1; #X connect 9 1 1 0; #X connect 10 0 1 0; #X connect 11 0 4 0; #X connect 11 1 4 0; #X connect 11 2 6 0; #X connect 11 3 7 0; #X connect 11 4 3 0; #X connect 11 5 17 0; #X connect 12 0 1 0; #X connect 13 0 1 0; #X connect 14 0 13 0; #X connect 15 0 13 0; #X connect 16 0 1 0; #X connect 17 0 2 0; #X connect 17 1 9 0; #X connect 17 2 5 0; #X connect 17 3 14 0; #X connect 17 4 15 0; #X connect 17 5 16 0; #X connect 17 6 18 0; #X connect 18 0 19 0; #X connect 18 1 10 0; #X connect 18 2 8 0; #X connect 18 3 8 1; #X connect 18 4 12 0; #X connect 19 0 13 0; #X restore 32 89 pd command processing; #X text 28 38 processed input; #N canvas 590 443 467 421 make 0; #X obj 28 6 inlet; #X obj 133 332 outlet; #X obj 28 52 moses 128; #X obj 130 100 trigger float float; #N canvas 459 506 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 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; #X text 140 78 end of sysex; #X obj 79 79 route 247; #X obj 79 100 bang; #N canvas 0 50 313 216 tolist 0; #X obj 89 50 inlet; #X obj 179 50 inlet; #X obj 89 155 outlet; #N canvas 140 104 344 212 msg 0; #X obj 12 13 inlet; #X obj 12 113 outlet; #X msg 12 33; #X connect 0 0 2 0; #X connect 2 0 1 0; #X restore 89 124 pd msg; #X msg 179 70 add2 \$1; #X msg 89 86 bang \, set; #X connect 0 0 5 0; #X connect 1 0 4 0; #X connect 3 0 2 0; #X connect 4 0 3 0; #X connect 5 0 3 0; #X restore 133 308 pd tolist; #X connect 0 0 2 0; #X connect 2 0 8 0; #X connect 2 1 11 0; #X connect 3 0 8 0; #X connect 3 1 4 0; #X connect 4 0 6 1; #X connect 5 0 13 0; #X connect 6 0 7 0; #X connect 6 0 5 0; #X connect 7 0 6 1; #X connect 8 0 6 0; #X connect 8 1 13 1; #X connect 11 0 12 0; #X connect 11 1 3 0; #X connect 12 0 13 0; #X connect 13 0 1 0; #X restore 32 199 pd make lists; #N canvas 0 50 525 269 check 0; #X obj 47 62 inlet; #X obj 47 88 route version; #X obj 47 127 unpack float float; #X obj 92 171 print [arduino]_WARNING_INCOMPATIBLE_FIRMWARE_VERSION ; #X obj 47 149 select 2; #X text 102 150 <-- sets the protocol major version this is compatible with; #X connect 0 0 1 0; #X connect 1 0 2 0; #X connect 2 0 4 0; #X connect 4 1 3 0; #X restore 215 325 pd check version; #N canvas 192 246 541 319 convert 0; #X obj 142 278 outlet; #N canvas 234 468 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 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; #N canvas 325 132 888 458 sysex 0; #X obj 30 11 inlet; #X obj 30 398 outlet; #N canvas 990 306 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 91 39 list split 2; #N canvas 736 297 645 461 reassemble 0; #X text 91 24 Firmata sends 8-bit chars as two 7-bit bytes; #X obj 36 24 inlet; #X obj 36 411 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 193 154 route bang; #X obj 337 303 << 7; #X obj 193 179 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; #N canvas 0 50 313 216 tolist 0; #X obj 89 50 inlet; #X obj 179 50 inlet; #X obj 89 155 outlet; #N canvas 140 104 344 212 msg 0; #X obj 12 13 inlet; #X obj 12 113 outlet; #X msg 12 33; #X connect 0 0 2 0; #X connect 2 0 1 0; #X restore 89 124 pd msg; #X msg 179 70 add2 \$1; #X msg 89 86 bang \, set; #X connect 0 0 5 0; #X connect 1 0 4 0; #X connect 3 0 2 0; #X connect 4 0 3 0; #X connect 5 0 3 0; #X restore 36 381 pd tolist; #X connect 1 0 11 0; #X connect 3 0 5 0; #X connect 3 1 8 0; #X connect 3 2 10 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 9 0; #X connect 7 0 13 1; #X connect 8 0 10 0; #X connect 8 1 4 1; #X connect 9 0 7 1; #X connect 10 0 4 1; #X connect 11 0 13 0; #X connect 11 1 3 0; #X connect 13 0 2 0; #X restore 160 79 pd reassemble chars; #X obj 160 116 list tosymbol; #X connect 0 0 5 0; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 1 0; #X connect 5 0 2 0; #X connect 5 1 6 0; #X connect 5 2 6 0; #X connect 6 0 7 0; #X connect 7 0 2 1; #X restore 30 220 pd firmware; #N canvas 830 319 667 494 assemble 0; #X text 91 24 Firmata sends 8-bit chars as two 7-bit bytes; #X obj 36 24 inlet; #X obj 36 408 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 323 +; #X obj 193 154 route bang; #X obj 337 303 << 7; #X obj 193 179 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; #N canvas 0 50 313 216 tolist 0; #X obj 89 50 inlet; #X obj 179 50 inlet; #X obj 89 155 outlet; #N canvas 140 104 344 212 msg 0; #X obj 12 13 inlet; #X obj 12 113 outlet; #X msg 12 33; #X connect 0 0 2 0; #X connect 2 0 1 0; #X restore 89 124 pd msg; #X msg 179 70 add2 \$1; #X msg 89 86 bang \, set; #X connect 0 0 5 0; #X connect 1 0 4 0; #X connect 3 0 2 0; #X connect 4 0 3 0; #X connect 5 0 3 0; #X restore 36 366 pd tolist; #X connect 1 0 11 0; #X connect 3 0 5 0; #X connect 3 1 8 0; #X connect 3 2 10 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 9 0; #X connect 7 0 13 1; #X connect 8 0 10 0; #X connect 8 1 4 1; #X connect 9 0 7 1; #X connect 10 0 4 1; #X connect 11 0 13 0; #X connect 11 1 3 0; #X connect 13 0 2 0; #X restore 115 244 pd assemble 7-bit into 14-bit values; #X obj 115 293 list prepend; #X obj 115 314 list trim; #X msg 275 188 string; #X msg 184 185 servo_config; #X text 71 396 data; #X obj 138 398 outlet; #X text 184 398 status; #X obj 30 59 route 121; #X obj 101 84 route 112; #X obj 172 104 route 113; #X obj 101 104 t a b; #X obj 172 124 t a b; #X text 95 60 0x79 firmware; #X obj 388 138 route 108; #X text 452 139 0x6C Capability; #X text 237 106 0x71 string; #X text 162 84 0x70 servo (where is this documented?); #N canvas 268 50 540 585 capability 0; #X obj 14 41 t b a a; #X obj 306 13 table \$0.capability; #X msg 53 90 resize \$1; #X obj 53 64 list length; #X obj 14 19 inlet; #X obj 53 141 s \$0.capability; #X obj 33 212 until; #X obj 14 139 f; #X obj 33 113 list prepend 0; #X obj 14 169 t b a b; #X obj 33 237 f; #X msg 76 212 0; #X obj 33 260 t a a; #X obj 84 248 + 1; #X obj 33 285 tabread \$0.capability; #X obj 72 565 outlet; #X obj 33 310 sel 127; #X text 84 310 bump pin number; #X obj 132 378 t a; #X obj 99 377 == 1; #X obj 120 337 t b b; #X msg 120 357 1; #X obj 72 357 t a b; #X obj 72 401 list prepend; #X obj 72 420 route 1 0; #X obj 72 476 list prepend; #X obj 72 439 pack f f; #X obj 198 384 f; #X obj 198 406 + 1; #X obj 198 430 t a a; #N canvas 372 119 398 398 conver_to_human_readable 0; #X obj 9 10 inlet; #X obj 9 375 outlet; #X obj 9 31 unpack f f f; #X obj 43 53 sel 0 1 2 3 4 5 6 7 8 9 10 11; #X msg 43 294 DIGITAL_INPUT; #X msg 57 274 DIGITAL_OUTPUT; #X msg 71 255 ANALOG_INPUT; #X msg 85 236 PWM; #X msg 100 218 SERVO; #X msg 114 200 SHIFT; #X msg 128 180 I2C; #X msg 142 161 ONEWIRE; #X msg 157 140 STEPPER; #X msg 171 121 ENCODER; #X msg 185 101 SERIAL; #X msg 199 80 INPUT_PULLUP; #X obj 171 329 list; #X obj 9 351 pack f s f; #X connect 0 0 2 0; #X connect 2 0 17 0; #X connect 2 1 3 0; #X connect 2 2 17 2; #X connect 3 0 4 0; #X connect 3 1 5 0; #X connect 3 2 6 0; #X connect 3 3 7 0; #X connect 3 4 8 0; #X connect 3 5 9 0; #X connect 3 6 10 0; #X connect 3 7 11 0; #X connect 3 8 12 0; #X connect 3 9 13 0; #X connect 3 10 14 0; #X connect 3 11 15 0; #X connect 4 0 16 0; #X connect 5 0 16 0; #X connect 6 0 16 0; #X connect 7 0 16 0; #X connect 8 0 16 0; #X connect 9 0 16 0; #X connect 10 0 16 0; #X connect 11 0 16 0; #X connect 12 0 16 0; #X connect 13 0 16 0; #X connect 14 0 16 0; #X connect 15 0 16 0; #X connect 16 0 17 1; #X connect 17 0 1 0; #X restore 72 497 pd conver_to_human_readable; #X msg 72 458 \$2 \$1; #X text 177 476 pin# \, mode \, resolution; #X text 240 404 count pin#; #X obj 72 522 list prepend capability; #X obj 72 542 list trim; #X msg 14 457 end; #X msg 359 463 begin; #X connect 0 0 7 0; #X connect 0 1 8 0; #X connect 0 2 3 0; #X connect 2 0 5 0; #X connect 3 0 2 0; #X connect 3 0 7 1; #X connect 4 0 0 0; #X connect 6 0 10 0; #X connect 7 0 9 0; #X connect 8 0 5 0; #X connect 9 0 36 0; #X connect 9 1 6 0; #X connect 9 2 11 0; #X connect 9 2 37 0; #X connect 10 0 12 0; #X connect 11 0 10 1; #X connect 11 0 29 0; #X connect 12 0 14 0; #X connect 12 1 13 0; #X connect 13 0 10 1; #X connect 14 0 16 0; #X connect 16 0 20 0; #X connect 16 1 22 0; #X connect 18 0 19 1; #X connect 19 0 18 0; #X connect 19 0 23 1; #X connect 20 0 21 0; #X connect 20 1 27 0; #X connect 21 0 19 1; #X connect 22 0 23 0; #X connect 22 1 19 0; #X connect 23 0 24 0; #X connect 24 0 26 0; #X connect 24 1 26 1; #X connect 25 0 30 0; #X connect 26 0 31 0; #X connect 27 0 28 0; #X connect 28 0 29 0; #X connect 29 0 25 1; #X connect 29 1 27 1; #X connect 30 0 34 0; #X connect 31 0 25 0; #X connect 34 0 35 0; #X connect 35 0 15 0; #X connect 36 0 34 0; #X connect 37 0 34 0; #X restore 388 184 pd capability; #X obj 544 171 route 110; #X text 607 172 0x6E Pin State; #N canvas 268 50 386 285 pinState 0; #X obj 14 19 inlet; #X obj 14 215 outlet; #N canvas 0 50 386 373 convert_to_human_readable 0; #X obj 51 48 sel 0 1 2 3 4 5 6 7 8 9 10 11; #X msg 51 289 DIGITAL_INPUT; #X msg 65 269 DIGITAL_OUTPUT; #X msg 79 250 ANALOG_INPUT; #X msg 93 231 PWM; #X msg 108 213 SERVO; #X msg 122 195 SHIFT; #X msg 136 175 I2C; #X msg 150 156 ONEWIRE; #X msg 165 135 STEPPER; #X msg 179 116 ENCODER; #X msg 193 96 SERIAL; #X msg 207 75 INPUT_PULLUP; #X obj 179 324 list; #X obj 51 19 inlet; #X obj 179 346 outlet; #X connect 0 0 1 0; #X connect 0 1 2 0; #X connect 0 2 3 0; #X connect 0 3 4 0; #X connect 0 4 5 0; #X connect 0 5 6 0; #X connect 0 6 7 0; #X connect 0 7 8 0; #X connect 0 8 9 0; #X connect 0 9 10 0; #X connect 0 10 11 0; #X connect 0 11 12 0; #X connect 1 0 13 0; #X connect 2 0 13 0; #X connect 3 0 13 0; #X connect 4 0 13 0; #X connect 5 0 13 0; #X connect 6 0 13 0; #X connect 7 0 13 0; #X connect 8 0 13 0; #X connect 9 0 13 0; #X connect 10 0 13 0; #X connect 11 0 13 0; #X connect 12 0 13 0; #X connect 13 0 15 0; #X connect 14 0 0 0; #X restore 71 120 pd convert_to_human_readable; #X obj 14 54 list split 2; #X obj 14 81 unpack f f; #X obj 14 161 pack f s f; #X msg 14 186 pinState \$1 \$2 \$3; #X msg 135 186 pinState \$1 NOT_PRESENT; #X connect 0 0 3 0; #X connect 2 0 5 1; #X connect 3 0 4 0; #X connect 3 1 5 2; #X connect 3 2 7 0; #X connect 4 0 5 0; #X connect 4 1 2 0; #X connect 5 0 6 0; #X connect 6 0 1 0; #X connect 7 0 1 0; #X restore 544 200 pd pinState; #X obj 639 196 route 106; #X text 704 195 0x6A Analog Mapping; #N canvas 288 35 536 407 analogMapping 0; #X obj 12 7 inlet; #X obj 70 361 outlet; #X obj 12 27 t b a a; #X msg 51 72 resize \$1; #X obj 51 47 list length; #X obj 31 165 until; #X obj 12 119 f; #X obj 31 90 list prepend 0; #X obj 12 144 t b a b; #X obj 31 190 f; #X msg 74 165 0; #X obj 92 201 + 1; #X obj 51 125 s \$0.analogMapping; #X obj 178 14 table \$0.analogMapping; #X obj 31 245 tabread \$0.analogMapping; #X obj 31 265 sel 127; #X obj 70 288 pack f f; #X obj 31 213 t a a a; #X obj 70 318 list prepend analogMapping; #X obj 70 338 list trim; #X msg 208 249 begin; #X msg 12 285 end; #X connect 0 0 2 0; #X connect 2 0 6 0; #X connect 2 1 7 0; #X connect 2 2 4 0; #X connect 3 0 12 0; #X connect 4 0 3 0; #X connect 4 0 6 1; #X connect 5 0 9 0; #X connect 6 0 8 0; #X connect 7 0 12 0; #X connect 8 0 21 0; #X connect 8 1 5 0; #X connect 8 2 10 0; #X connect 8 2 20 0; #X connect 9 0 17 0; #X connect 10 0 9 1; #X connect 11 0 9 1; #X connect 14 0 15 0; #X connect 15 1 16 0; #X connect 16 0 18 0; #X connect 17 0 14 0; #X connect 17 1 16 1; #X connect 17 2 11 0; #X connect 18 0 19 0; #X connect 19 0 1 0; #X connect 20 0 18 0; #X connect 21 0 18 0; #X restore 639 223 pd analogMapping; #X connect 0 0 11 0; #X connect 2 0 9 0; #X connect 3 0 4 0; #X connect 4 0 5 0; #X connect 5 0 1 0; #X connect 6 0 4 1; #X connect 7 0 4 1; #X connect 11 0 2 0; #X connect 11 1 12 0; #X connect 12 0 14 0; #X connect 12 1 13 0; #X connect 13 0 15 0; #X connect 13 1 17 0; #X connect 14 0 3 0; #X connect 14 1 7 0; #X connect 15 0 3 0; #X connect 15 1 6 0; #X connect 17 0 21 0; #X connect 17 1 22 0; #X connect 21 0 9 0; #X connect 22 0 24 0; #X connect 22 1 25 0; #X connect 24 0 9 0; #X connect 25 0 27 0; #X connect 27 0 9 0; #X restore 134 174 pd sysex; #N canvas 383 77 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 176 360 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 list prepend; #X obj 175 301 list trim; #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 21 0; #X connect 21 0 5 0; #X restore 205 86 pd route digital/analog; #X obj 97 75 route 249 240; #X text 124 60 0xF9 0xF0; #X msg 40 174 version \$1 \$2; #X obj 263 277 outlet; #X text 312 279 status outlet; #X text 184 277 data outlet; #N canvas 418 242 444 547 digital_messages 0; #X obj 43 26 inlet; #X obj 62 416 outlet; #X obj 43 67 unpack f f, f 30; #X obj 43 92 t a a a; #X obj 41 510 table \$0.digital.input.change 16; #X obj 82 116 tabread \$0.digital.input.change; #X obj 82 141 expr $f1 ^ $f2; #X text 181 143 which bits have changed?; #N canvas 0 238 288 383 byte2bits 0; #X msg 44 78 8; #X obj 44 104 until; #X obj 44 129 f; #X obj 131 133 + 1; #X msg 82 105 0; #X msg 44 179 2 \$1; #X obj 44 202 pow; #X obj 44 226 &, f 8; #X obj 44 153 t a a a, f 12; #X obj 44 28 inlet; #X obj 44 52 t b b a; #X obj 71 303 outlet; #X obj 44 249 sel 0; #X obj 71 278 list prepend; #X connect 0 0 1 0; #X connect 1 0 2 0; #X connect 2 0 8 0; #X connect 3 0 2 1; #X connect 4 0 2 1; #X connect 5 0 6 0; #X connect 6 0 7 0; #X connect 7 0 12 0; #X connect 8 0 5 0; #X connect 8 1 13 1; #X connect 8 2 3 0; #X connect 9 0 10 0; #X connect 10 0 0 0; #X connect 10 1 4 0; #X connect 10 2 7 1; #X connect 12 1 13 0; #X connect 13 0 11 0; #X restore 82 174 pd byte2bits; #X obj 110 278 &, f 14; #X obj 82 227 t a a a, f 10; #X msg 110 253 \$2; #X obj 110 303 >>; #X text 167 173 serialize bits \, limit to those that changed; #X obj 62 333 pack f f; #X obj 62 276 * 8; #X obj 62 304 +, f 4; #X text 126 334 digital input (pin \, value); #X msg 62 387 digital \$1 \$2; #X obj 43 473 s \$0.digital.input.change; #X obj 43 448 pack f f, f 30; #X text 206 472 cache value for later comparison; #X msg 139 254 \$1; #X msg 82 253 \$1; #X text 87 201 <- bit position and corresponding bit mask; #X connect 0 0 2 0; #X connect 2 0 3 0; #X connect 2 1 6 1; #X connect 2 1 9 1; #X connect 2 1 20 1; #X connect 3 0 20 0; #X connect 3 1 15 0; #X connect 3 2 5 0; #X connect 5 0 6 0; #X connect 6 0 8 0; #X connect 8 0 10 0; #X connect 9 0 12 0; #X connect 10 0 23 0; #X connect 10 1 11 0; #X connect 10 2 22 0; #X connect 11 0 9 0; #X connect 12 0 14 1; #X connect 14 0 18 0; #X connect 15 0 16 0; #X connect 16 0 14 0; #X connect 18 0 1 0; #X connect 20 0 19 0; #X connect 22 0 12 1; #X connect 23 0 16 1; #X restore 205 168 pd digital_messages; #X obj 340 150 print [arduino]; #X obj 340 109 list prepend UNKNOWN_RESPONSE; #X obj 340 129 list trim; #X connect 1 0 0 0; #X connect 2 0 5 0; #X connect 3 0 0 0; #X connect 3 1 8 0; #X connect 4 0 11 0; #X connect 4 1 1 0; #X connect 4 2 13 0; #X connect 5 0 7 0; #X connect 5 1 3 0; #X connect 5 2 4 0; #X connect 7 0 8 0; #X connect 11 0 0 0; #X connect 13 0 14 0; #X connect 14 0 12 0; #X restore 32 259 pd convert to symbolic commands; #X text 323 361 released under the GNU GPL v2 or later; #X obj 257 115 print [arduino]; #X obj 257 57 loadbang; #X text 254 34 supports Firmata v2.X; #X text 27 361 (C) Copyright 2006-2012 Free Software Foundation; #X msg 257 80 version 0.8; #X obj 32 144 tcpclient; #X obj 185 101 inlet; #X connect 0 0 2 0; #X connect 2 0 13 0; #X connect 4 0 6 0; #X connect 6 0 1 0; #X connect 6 1 5 0; #X connect 9 0 12 0; #X connect 12 0 8 0; #X connect 13 0 4 0; #X connect 14 0 13 0;