[PD] digital write problem in Pduino

Hans-Christoph Steiner hans at eds.org
Wed Oct 8 20:58:58 CEST 2008


I'll take a look and see what I can find.  You could also write an  
Arduino firmware using Firmata as a library, then just support the  
things you need to have working.  Perhaps the timing of the analogIns  
or something like that are interfering.

Look at the examples in Arduino, like SimpleDigitalFirmata.  They are  
in File -> Sketchbook -> examples -> Library-Firmata

.hc

On Oct 8, 2008, at 2:07 PM, Derek Holzer wrote:

> Problem remains the same after upgrade. Looks like I or probably a  
> friend have to write some custom firmware for this project before  
> tomorrow.
>
> D.
>
> Hans-Christoph Steiner wrote:
>> There were bugs in that version.  They have been fixed in the  
>> version of Firmata that is included in Arduino 0012.  Burn that  
>> version to your Arduino and use the regular Pduino pd patches.   
>> Once I get a spare moment, I'll update the Pduino .zip on my page.
>> .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 <derek at umatic.nl>  
>>>> 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 at iem.at mailing list
>>> UNSUBSCRIBE and account-management -> http://lists.puredata.info/ 
>>> listinfo/pd-list
>> --------------------------------------------------------------------- 
>> ------- There is no way to peace, peace is the way.       -A.J. Muste
>
> -- 
> derek holzer ::: http://www.umatic.nl ::: http://blog.myspace.com/ 
> macumbista
> ---Oblique Strategy # 113:
> "Make a blank valuable by putting it in an exquisite frame"





------------------------------------------------------------------------ 
----

'You people have such restrictive dress for women,’ she said,  
hobbling away in three inch heels and panty hose to finish out  
another pink-collar temp pool day.  - “Hijab Scene #2", by Mohja Kahf






More information about the Pd-list mailing list