Thank you all for your thoughts regarding this issue.
On Thu, 2023-04-13 at 16:28 -0500, Rick Snow wrote:
I am helping someone use pd with an arduino mega.? They would like to
use all of the digital output pins.? I?ve used pduino in the past in
this way and not had trouble,?
Also with a Mega?
but I seem to be bumping into something now.
What version of pduino are you using? Most current is 0.8.
Also, if an older version of pduino worked fine with the Arduino Mega,
what version was that?
I have used pduino in the past with a mega. I do not remember if I used the specific pins in question previously. I am using pduino .8 and standardFirmata (most recent). I am using a Mac with a usb c dongle….I have tried it on a pc laptop and had the same problem. I have used a couple of different brand new megas for testing.
One test run revealed the following.
Process: I turn on all the pins with a 250 ms delay in sending messages “pinMode 2 output” -> “pinMode 53 output”.
Then I check each individual pin with a multimeter. The results are:
Pins 2-23 work fine
Pins 24-30 turn on but do not turn off
Pins 31-38 do not turn on or off
Pins 39-53 work fine
I’ve done this a few times and had different sets of pins working/not working but they are generally in the areas above with pins 24-38 the most problematic.
I started by using the arduino help patch.? StandardFirmata sketch on
the Mega.? Connection via usb works fine.
I set all the pins to output by sending "pinMode 2 output? ->
?pinMode 45 output? messages to the arduino object. No errors.
Then, I use the messages ?digital 2 1? ?digital 2 0? -> ?digital 45
1? ?digital 45 0? sent to the arduino object to check the pins.? When
checking with a multimeter I am not able to get output from pins 2-
7.? I do get output from 8-20.? Between 20-40 some pins work and
others not at all.? Other pins will turn on but not turn off.
What happens if you specifically send 'pinMode 45 output, digital 45
1'? Or you use any other pin that seems to be not working correctly
with your setup.
When trying this method directly (without trying to turn on all the pins first) the working pins all work.
When trying with a “non-working pin”, if I do this right after opening the patch, I can do this with at least 1 pin and it will work. Sometimes, I can check up to 3-4 “non-working pins” with this method and they will work, but then no more “non working pins” will work, and the previously checked non-working pins will stop working. Working pins will work even after the “non-working pins” stop responding. Restarting pd will allow this behavior to be replicated.
Also, there is 'pinState' message for querying the
current state and there is the 'capability' message that triggers a
report of all supported modes of all pins. So, I would like to know if
the non-working pins report of themselves to support 'output' mode.
Then, if you set their 'pinMode' to 'output', do they actually report
their 'pinState' as 'output'?
pinState messages will show what the multimeter shows with all working pins. pinState will sometimes show 1 for non working pins when the multimeter shows 0.
Checking the pins using a simple blink sketch shows all the pins
working fine.
Ok, so you can be sure the board is working.
Any advice would be greatly appreciate!
I don't own an Arduino Mega and I don't know how well [pduino] is
tested with that board. I certainly haven't tested it ever.?
This makes it hard for me to reproduce the problem. If you can give a
hint that the problem is in the software, that would help.
My intuition is that the messaging for these pins gets corrupted somehow after a certain number of pinMode messages are sent to the arduino object, but I really know absolutely nothing about the serial port/sysex side of this.
Thank you all again for your thoughts! Ultimately this person would like to control about 40 solenoids with an arduino mega and a pd patch.
Cheers,
Rick