Hello list,
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, but I seem to be bumping into something now.
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.
Checking the pins using a simple blink sketch shows all the pins working fine.
Any advice would be greatly appreciate!
Cheers, Rick
Hello Rick, This sound like a problem in the serial connection, maybe the arduino misses some data because they are send to fast. Have you tried to slow down the messages you send (not sending them all on the same time)? Have you try to configure and use all pin interdependently?
Cheers C
Le 13/04/2023 à 23:28, Rick Snow a écrit :
Hello list,
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, but I seem to be bumping into something now.
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.
Checking the pins using a simple blink sketch shows all the pins working fine.
Any advice would be greatly appreciate!
Cheers, Rick
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
On Fri, 2023-04-14 at 09:05 +0200, cyrille henry wrote:
This sound like a problem in the serial connection, maybe the arduino misses some data because they are send to fast.
You make it sound like it behaves like UDP where some packets are omitted if the link is saturated. But the serial connection is _serial_ and buffered (from what I understand) and I was assuming that data doesn't get randomly lost during transmission.
Of course, data still can get garbled during transmission due to unstable power, unstable physical connection and similar reasons.
Roman
Le 14/04/2023 à 09:59, Roman Haefeli a écrit :
On Fri, 2023-04-14 at 09:05 +0200, cyrille henry wrote:
This sound like a problem in the serial connection, maybe the arduino misses some data because they are send to fast.
You make it sound like it behaves like UDP where some packets are omitted if the link is saturated. But the serial connection is _serial_ and buffered (from what I understand) and I was assuming that data doesn't get randomly lost during transmission.
If you fill the buffer faster than you can empty it, at one point the buffer will be full and then you will lose data. you CAN lost data on serial connection.
C
Of course, data still can get garbled during transmission due to unstable power, unstable physical connection and similar reasons.
Roman
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
On Fri, 2023-04-14 at 12:37 +0200, cyrille henry wrote:
Le 14/04/2023 à 09:59, Roman Haefeli a écrit :
On Fri, 2023-04-14 at 09:05 +0200, cyrille henry wrote:
This sound like a problem in the serial connection, maybe the arduino misses some data because they are send to fast.
You make it sound like it behaves like UDP where some packets are omitted if the link is saturated. But the serial connection is _serial_ and buffered (from what I understand) and I was assuming that data doesn't get randomly lost during transmission.
If you fill the buffer faster than you can empty it, at one point the buffer will be full and then you will lose data. you CAN lost data on serial connection.
I see. Do you know how [comport] handles buffer overruns? Does it block Pd? Does it drop new data and print an error? Does it silently drop data?
Roman
Le 14/04/2023 à 12:44, Roman Haefeli a écrit :
On Fri, 2023-04-14 at 12:37 +0200, cyrille henry wrote:
Le 14/04/2023 à 09:59, Roman Haefeli a écrit :
On Fri, 2023-04-14 at 09:05 +0200, cyrille henry wrote:
This sound like a problem in the serial connection, maybe the arduino misses some data because they are send to fast.
You make it sound like it behaves like UDP where some packets are omitted if the link is saturated. But the serial connection is _serial_ and buffered (from what I understand) and I was assuming that data doesn't get randomly lost during transmission.
If you fill the buffer faster than you can empty it, at one point the buffer will be full and then you will lose data. you CAN lost data on serial connection.
I see. Do you know how [comport] handles buffer overruns? Does it block Pd? Does it drop new data and print an error? Does it silently drop data?
I don't know. But I was more thinking about data lost in the arduino side.
C
Roman
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
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 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. 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'?
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.
Roman