1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184
|
#N canvas 418 119 596 398 10;
#X obj 32 56 inlet;
#X obj 32 334 outlet;
#X obj 515 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 - - -;
#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 obj 32 171 comport \$1 57600;
#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 connect 0 0 3 0;
#X connect 3 0 11 0;
#X connect 5 0 7 0;
#X connect 7 0 1 0;
#X connect 7 1 2 0;
#X connect 7 1 6 0;
#X connect 10 0 14 0;
#X connect 11 0 5 0;
#X connect 11 1 2 0;
#X connect 14 0 9 0;
|