Thanks for that patch, it was very helpful in tracking down the bug. I figured it out and fixed it. Please try it again:
http://pure-data.svn.sourceforge.net/viewvc/pure-data/trunk/externals/ hardware/arduino/arduino.pd?view=log .hc On Oct 8, 2008, at 11:59 AM, Derek Holzer wrote: > Attached is a diagnostic patch which demonstrates the problem. This > problem can be demonstrated using only the Arduino board with a > single LED (plus current reducing resistor of 1.5K) connected from > pin 2 to GND. > > At 7 simultaneous [metro]s, the on-board LED at Pin 13 starts to > blink, even when it has not been sent any messages. After that, a > single LED on Pin 2 will start to blink sporadically, especially > with more randomized [metro] intervals. If the [metro] controlling > the LED on Pin 2 is switched off, it will continue to blink if > other [metro]s are running. > > Clearly this is a case of message collisions, even though the > [comport] object does not report any TX-OVERRUNS. > > I'm not too skilled with writing code for the Arduino, so I have no > way of running something standalone right now to see if it can be > isolated from the board. > > I'd really like to have a solution or workaround to this problem, > as it's quite an unexpected bug!!!! > > thanks + best! > Derek > > Charles Henry wrote: >> On Wed, Oct 8, 2008 at 9:38 AM, Derek Holzer <[EMAIL PROTECTED]> wrote: >>> The blink interval is something in the area of 200-500 miliseconds, >>> certainly slow enough for the comport. Could it be trouble with >>> some of >>> the objects in the [arduino] abstraction? >> Hi, Derek, >> One thought that occurred to me: it takes around 16-20 ms to send a >> message to the arduino and recieve a message back (which has to do >> with the FTDI chip). This is a round-trip time--I'm not sure what >> the >> delay time is like for data traffic going in one way. Perhaps those >> delays are adding up, when you've got 10 separate LEDs to control? >> Have you considered making a test program on the arduino to blink the >> LEDs at different rates and see if the problem persists? That would >> isolate the communications from the actions performed. >> Chuck > > -- > derek holzer ::: http://www.umatic.nl ::: http://blog.myspace.com/ > macumbista > ---Oblique Strategy # 70: > "Feedback recordings into an acoustic situation" > #N canvas 0 22 1000 776 10; > #X obj 152 528 tgl 20 0 empty empty all 1 12 0 11 -261682 -1 -1 1 1 > ; > #X obj 374 641 send \$0-arduino; > #X obj 631 617 send \$0-arduino-out; > #X obj 631 573 receive \$0-arduino; > #X obj 94 637 send \$0-arduino; > #X obj 401 508 tgl 15 0 empty empty 2 3 -6 1 12 -260818 -1 -1 1 1; > #X obj 418 508 tgl 15 0 empty empty 3 3 -6 1 12 -260818 -1 -1 1 1; > #X obj 435 508 tgl 15 0 empty empty 4 3 -6 1 12 -260818 -1 -1 1 1; > #X obj 452 508 tgl 15 0 empty empty 5 3 -6 1 12 -260818 -1 -1 1 1; > #X obj 469 508 tgl 15 0 empty empty 6 3 -6 1 12 -260818 -1 -1 1 1; > #X obj 486 508 tgl 15 0 empty empty 7 3 -6 1 12 -260818 -1 -1 1 1; > #X obj 503 508 tgl 15 0 empty empty 8 3 -6 1 12 -260818 -1 -1 1 1; > #X obj 520 508 tgl 15 0 empty empty 9 3 -6 1 12 -260818 -1 -1 1 1; > #X obj 537 508 tgl 15 0 empty empty 10 0 -6 1 12 -260818 -1 -1 1 1 > ; > #X obj 554 508 tgl 15 0 empty empty 11 0 -6 1 12 -260818 -1 -1 1 1 > ; > #X obj 571 508 tgl 15 0 empty empty 12 0 -6 1 12 -260818 -1 -1 1 1 > ; > #X obj 589 508 tgl 15 0 empty empty 13 0 -6 1 12 -260818 -1 -1 1 1 > ; > #X msg 367 549 pinMode 2 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 367 527 pd send-to-arduino-------------------; > #X text 446 597 here is our Arduino object -->; > #X msg 94 466 open 3; > #X obj 567 287 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 > 1; > #X msg 38 478 close; > #X msg 97 311 digital 2 \$1; > #X msg 187 311 digital 3 \$1; > #X msg 277 311 digital 4 \$1; > #X msg 367 311 digital 5 \$1; > #X msg 457 311 digital 6 \$1; > #X msg 97 361 digital 7 \$1; > #X msg 187 361 digital 8 \$1; > #X msg 277 361 digital 9 \$1; > #X msg 367 361 digital 10 \$1; > #X msg 457 361 digital 11 \$1; > #X msg 567 305 digital 13 \$1; > #X text 665 306 test with built in LED; > #X obj 117 264 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 0 > 1; > #X obj 144 265 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 0 > 1; > #X obj 192 264 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 0 > 1; > #X obj 232 263 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 1 > 1; > #X obj 282 263 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 0 > 1; > #X obj 631 596 arduino 1; > #X obj 575 337 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 > 1; > #X msg 575 355 digital 12 \$1; > #X obj 332 255 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 1 > 1; > #X obj 359 256 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 1 > 1; > #X obj 407 255 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 1 > 1; > #X obj 447 254 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 0 > 1; > #X obj 497 254 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 1 > 1; > #X obj 34 57 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 0 1 > ; > #X obj 85 35 random 200; > #X obj 85 62 + 200; > #X floatatom 104 92 5 0 0 0 - - -; > #X obj 85 12 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144 -1 > -1; > #X obj 174 57 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 0 > 1; > #X obj 225 35 random 200; > #X obj 225 62 + 200; > #X floatatom 244 92 5 0 0 0 - - -; > #X obj 225 12 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144 -1 > -1; > #X obj 174 91 metro 200; > #X obj 314 57 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 0 > 1; > #X obj 365 35 random 200; > #X obj 365 62 + 200; > #X floatatom 384 92 5 0 0 0 - - -; > #X obj 365 12 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144 -1 > -1; > #X obj 314 91 metro 200; > #X obj 454 57 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 1 > 1; > #X obj 505 35 random 200; > #X obj 505 62 + 200; > #X floatatom 524 92 5 0 0 0 - - -; > #X obj 505 12 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144 -1 > -1; > #X obj 454 91 metro 200; > #X obj 594 57 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 1 > 1; > #X obj 645 35 random 200; > #X obj 645 62 + 200; > #X floatatom 664 92 5 0 0 0 - - -; > #X obj 645 12 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144 -1 > -1; > #X obj 594 91 metro 200; > #X obj 124 167 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 1 > 1; > #X obj 175 145 random 200; > #X obj 175 172 + 200; > #X floatatom 194 202 5 0 0 0 - - -; > #X obj 175 122 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144 > -1 -1; > #X obj 124 201 metro 200; > #X obj 264 167 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 1 > 1; > #X obj 315 145 random 200; > #X obj 315 172 + 200; > #X floatatom 334 202 5 0 0 0 - - -; > #X obj 315 122 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144 > -1 -1; > #X obj 264 201 metro 200; > #X obj 404 167 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 1 > 1; > #X obj 455 145 random 200; > #X obj 455 172 + 200; > #X floatatom 474 202 5 0 0 0 - - -; > #X obj 455 122 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144 > -1 -1; > #X obj 404 201 metro 200; > #X obj 544 167 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 1 > 1; > #X obj 595 145 random 200; > #X obj 595 172 + 200; > #X floatatom 614 202 5 0 0 0 - - -; > #X obj 595 122 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144 > -1 -1; > #X obj 544 201 metro 200; > #X obj 684 167 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 1 > 1; > #X obj 735 145 random 200; > #X obj 735 172 + 200; > #X floatatom 754 202 5 0 0 0 - - -; > #X obj 735 122 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144 > -1 -1; > #X obj 34 91 metro 200; > #X obj 684 201 metro 200; > #X text 621 407 At 7 metros \, on-board LED at Pin 13 will light even > when no message is sent. More metros will cause single LED to blink > sporadically. If LED is connected to first channel \, and that metro > is switched off \, it will still blink when other metros run.; > #X connect 0 0 16 0; > #X connect 0 0 15 0; > #X connect 0 0 14 0; > #X connect 0 0 13 0; > #X connect 0 0 12 0; > #X connect 0 0 11 0; > #X connect 0 0 10 0; > #X connect 0 0 9 0; > #X connect 0 0 8 0; > #X connect 0 0 7 0; > #X connect 0 0 6 0; > #X connect 0 0 5 0; > #X connect 3 0 40 0; > #X connect 5 0 18 2; > #X connect 6 0 18 3; > #X connect 7 0 18 4; > #X connect 8 0 18 5; > #X connect 9 0 18 6; > #X connect 10 0 18 7; > #X connect 11 0 18 8; > #X connect 12 0 18 9; > #X connect 13 0 18 10; > #X connect 14 0 18 11; > #X connect 15 0 18 12; > #X connect 16 0 18 13; > #X connect 17 0 1 0; > #X connect 18 0 17 0; > #X connect 20 0 4 0; > #X connect 21 0 33 0; > #X connect 22 0 4 0; > #X connect 23 0 1 0; > #X connect 24 0 1 0; > #X connect 25 0 1 0; > #X connect 26 0 1 0; > #X connect 27 0 1 0; > #X connect 28 0 1 0; > #X connect 29 0 1 0; > #X connect 30 0 1 0; > #X connect 31 0 1 0; > #X connect 32 0 1 0; > #X connect 33 0 1 0; > #X connect 35 0 23 0; > #X connect 36 0 24 0; > #X connect 37 0 25 0; > #X connect 38 0 26 0; > #X connect 39 0 27 0; > #X connect 40 0 2 0; > #X connect 41 0 42 0; > #X connect 42 0 1 0; > #X connect 43 0 28 0; > #X connect 44 0 29 0; > #X connect 45 0 30 0; > #X connect 46 0 31 0; > #X connect 47 0 32 0; > #X connect 48 0 106 0; > #X connect 49 0 50 0; > #X connect 50 0 51 0; > #X connect 50 0 106 1; > #X connect 52 0 49 0; > #X connect 53 0 58 0; > #X connect 54 0 55 0; > #X connect 55 0 56 0; > #X connect 55 0 58 1; > #X connect 57 0 54 0; > #X connect 58 0 36 0; > #X connect 59 0 64 0; > #X connect 60 0 61 0; > #X connect 61 0 62 0; > #X connect 61 0 64 1; > #X connect 63 0 60 0; > #X connect 64 0 37 0; > #X connect 65 0 70 0; > #X connect 66 0 67 0; > #X connect 67 0 68 0; > #X connect 67 0 70 1; > #X connect 69 0 66 0; > #X connect 70 0 38 0; > #X connect 71 0 76 0; > #X connect 72 0 73 0; > #X connect 73 0 74 0; > #X connect 73 0 76 1; > #X connect 75 0 72 0; > #X connect 76 0 39 0; > #X connect 77 0 82 0; > #X connect 78 0 79 0; > #X connect 79 0 80 0; > #X connect 79 0 82 1; > #X connect 81 0 78 0; > #X connect 82 0 43 0; > #X connect 83 0 88 0; > #X connect 84 0 85 0; > #X connect 85 0 86 0; > #X connect 85 0 88 1; > #X connect 87 0 84 0; > #X connect 88 0 44 0; > #X connect 89 0 94 0; > #X connect 90 0 91 0; > #X connect 91 0 92 0; > #X connect 91 0 94 1; > #X connect 93 0 90 0; > #X connect 94 0 45 0; > #X connect 95 0 100 0; > #X connect 96 0 97 0; > #X connect 97 0 98 0; > #X connect 97 0 100 1; > #X connect 99 0 96 0; > #X connect 100 0 46 0; > #X connect 101 0 107 0; > #X connect 102 0 103 0; > #X connect 103 0 104 0; > #X connect 103 0 107 1; > #X connect 105 0 102 0; > #X connect 106 0 35 0; > #X connect 107 0 47 0; > _______________________________________________ > Pd-list@iem.at mailing list > UNSUBSCRIBE and account-management -> http://lists.puredata.info/ > listinfo/pd-list ------------------------------------------------------------------------ ---- As we enjoy great advantages from inventions of others, we should be glad of an opportunity to serve others by any invention of ours; and this we should do freely and generously. - Benjamin Franklin _______________________________________________ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list