Problem solved!
I added this line to the firmata 2.1:
digitalWrite(pin, HIGH); // turn on pullup resistors
in this context:
case INPUT:
pinStatus[pin] = mode;
pinMode(pin, INPUT);
-> digitalWrite(pin, HIGH); // turn on pullup resistors
portStatus[port] = portStatus[port] &~ (1 << (pin - offset));
break;
exactly as described on the arduino website.
I think this definitely needs to be included in the standard firmata!
Hans, don't you think so (since you're taking care of the pduino)?
Cheers
Ingo
> From: "Ingo Scherzinger" <ingo(a)miamiwave.com>
> Subject: [PD] problem with arduino digital ins - Pduino-0.5beta8 /
> Firmata 2.1
> To: <pd-list(a)iem.at>
> Message-ID: <821D925E7C144A22B5E3EE150BAE3EAC@meincomputer>
> Content-Type: text/plain; charset="us-ascii"
>
> Hi,
>
> I'm having a problem with the arduino digital ins.
> According to the arduino website there are pull up resistors inside the
> ATmega that get activated automatically when the digital ins are turned
on.
> This is not the case here with the Pduino-0.5beta8.
> When I connect ground to the pin it switches to 0 as expected. When I
> disconnect the wire it starts switching randomly between 0 and 1. If I use
> an "external" pullup resistor everything works as expected again.
> I just read the help file from the pduino and it states that this is the
> normal behaviour which shouldn't be the case with the internal pullup
> resistors activated.
> What's the problem with these internal pullup resistor not getting turned
> on?
> Is there a command I can (or have to) send to the arduino?
>
> I've tested this with a diecimila and duemilanove and Ubuntu 10.4 and
> Windows XP.
> Maybe there is a problem with Pduino or Firmata 2.1?
>
> Any ideas appreciated!
> Cheers, Ingo