buenas tutti
roman & me did some rewrite on the pduino - citing the README:
All Pd patches are based on the official Pduino (version 0.5beta8) maintained by Hans-Christoph Steiner.
The goals of the improvements are:
Get rid of avoidable dependencies on other external/abstraction libraries
Update help- and test-patches in accordance to current Firmata
Create 'intuitive' and easy-to-understand GOP abstraction
Dependencies:
comport
pdstring library from moocow
you'll find the patches here: https://github.com/reduzent/pduino
the GOP-abstraction is still in tango alpha state aka not useable at all. so basically arduino.pd & arduino-help.pd should be of interest. as they went thru some changes - most important the dependencies are reduce to the minimum. check it out & report ø
This is a great start, it needed some loving. I'll check it out when I have some time.
.hc
On Fri, 2011-09-02 at 12:20 +0200, olsen wrote:
buenas tutti
roman & me did some rewrite on the pduino - citing the README:
Pduino - improved
All Pd patches are based on the official Pduino (version 0.5beta8) maintained by Hans-Christoph Steiner.
The goals of the improvements are:
Get rid of avoidable dependencies on other external/abstraction libraries
Update help- and test-patches in accordance to current Firmata
Create 'intuitive' and easy-to-understand GOP abstraction
Dependencies:
comport
pdstring library from moocow
you'll find the patches here: https://github.com/reduzent/pduino
the GOP-abstraction is still in tango alpha state aka not useable at all. so basically arduino.pd & arduino-help.pd should be of interest. as they went thru some changes - most important the dependencies are reduce to the minimum. check it out & report ø
I could not open any patch at all! Neither Natty nor Windows XP worked. I am still on Pd-extended 0.42.5. There is a huge list of stuff (not pd library related) missing.
So far this doesn't look like it's improving any dependency problem.
Ingo
buenas tutti
roman & me did some rewrite on the pduino - citing the README:
Pduino - improved
All Pd patches are based on the official Pduino (version 0.5beta8) maintained by Hans-Christoph Steiner.
The goals of the improvements are:
Get rid of avoidable dependencies on other external/abstraction libraries
Update help- and test-patches in accordance to current Firmata
Create 'intuitive' and easy-to-understand GOP abstraction
Dependencies:
comport
pdstring library from moocow
you'll find the patches here: https://github.com/reduzent/pduino
the GOP-abstraction is still in tango alpha state aka not useable at all. so basically arduino.pd & arduino-help.pd should be of interest. as they went thru some changes - most important the dependencies are reduce to the minimum. check it out & report
OK, I got it!
Downloading the files didn't work (at least not on my Windows computer) but copying the content into a bunch of text files and renaming them did.
I'll take a look at it later to see if the problems with the 1st and 2nd digital input as well as my problems with inputs 10 - 13 are gone.
Ingo
Betreff: Re: [PD] pduino rewrite
I could not open any patch at all! Neither Natty nor Windows XP worked. I am still on Pd-extended 0.42.5. There is a huge list of stuff (not pd library related) missing.
So far this doesn't look like it's improving any dependency problem.
Ingo
buenas tutti
roman & me did some rewrite on the pduino - citing the README:
Pduino - improved
All Pd patches are based on the official Pduino (version 0.5beta8) maintained by Hans-Christoph Steiner.
The goals of the improvements are:
Get rid of avoidable dependencies on other external/abstraction libraries
Update help- and test-patches in accordance to current Firmata
Create 'intuitive' and easy-to-understand GOP abstraction
Dependencies:
comport
pdstring library from moocow
you'll find the patches here: https://github.com/reduzent/pduino
the GOP-abstraction is still in tango alpha state aka not useable at
all.
so basically arduino.pd & arduino-help.pd should be of interest. as they went thru some changes - most important the dependencies are reduce to the minimum. check it out & report
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Hi Ingo
On Fri, 2011-09-09 at 05:47 +0200, Ingo wrote:
OK, I got it!
Downloading the files didn't work (at least not on my Windows computer) but copying the content into a bunch of text files and renaming them did.
Hm.. is this probably due to Windows and Linux using different line breaks (\r\n vs. \n)?
I'll take a look at it later to see if the problems with the 1st and 2nd digital input as well as my problems with inputs 10 - 13 are gone.
FYI: We haven't tinkered with the protocol. At this stage it's really only a version with some externals kicked out. Anyway, please report back, if you still experience the same problems.
Are you testing on a Arduino Mega?
Roman
Hi Roman,
I just messed around with the rewrite and - as you mentioned - you didn't fix any of the bugs.
I even think I send you a mail about the digital pins 2 & 3 and provided a fix for it here at the forum. Of course it's still there!
About the other things:
The test patch has still no switches to turn on the pull up resistors.
in Natty the comport number for USB0 is 32 that's not available in the
choices 0 - 7. I think for Linux [devicename /dev/ttyUSB$1( would be a better choice. At least this option of naming should be mentioned somewhere in the test patch or help patch. (maybe I missed it somewhere?)
It should be mentioned that pin 13 does not work for "Pull Up" due to the built in LED and resistor. There should also be a short explanation about PullUp resistors for beginners.
lot of time at the beginning making lots of complicated cable connections because the help patch recommends connecting the pins to ground instead of simply switching on the PullUp resistors. At least as long as you are not at the very limit of your power supply.
Since I only use the digital and analogue ins I didn't look any further. So I can't say anything about the output stuff.
The digital pins 2 & 3 should really be fixed sometime soon. I was hoping you'd be getting some of these problems solved rather than putting a grey background to the help patch (lol).
Ingo
Hi Ingo
On Fri, 2011-09-09 at 05:47 +0200, Ingo wrote:
OK, I got it!
Downloading the files didn't work (at least not on my Windows computer)
but
copying the content into a bunch of text files and renaming them did.
Hm.. is this probably due to Windows and Linux using different line breaks (\r\n vs. \n)?
I'll take a look at it later to see if the problems with the 1st and 2nd digital input as well as my problems with inputs 10 - 13 are gone.
FYI: We haven't tinkered with the protocol. At this stage it's really only a version with some externals kicked out. Anyway, please report back, if you still experience the same problems.
Are you testing on a Arduino Mega?
Roman
I forgot to mention: I tested with a Duemilanove.
Ingo
-----Ursprüngliche Nachricht----- Von: pd-list-bounces@iem.at [mailto:pd-list-bounces@iem.at] Im Auftrag von Ingo Gesendet: Freitag, 9. September 2011 10:04 An: 'Roman Haefeli'; 'olsen'; 'pd-list' Betreff: Re: [PD] pduino rewrite
Hi Roman,
I just messed around with the rewrite and - as you mentioned - you didn't fix any of the bugs.
I even think I send you a mail about the digital pins 2 & 3 and provided a fix for it here at the forum. Of course it's still there!
About the other things:
The test patch has still no switches to turn on the pull up resistors.
in Natty the comport number for USB0 is 32 that's not available in the
choices 0 - 7. I think for Linux [devicename /dev/ttyUSB$1( would be a better choice. At least this option of naming should be mentioned somewhere in the test patch or help patch. (maybe I missed it somewhere?)
- help-patch: there is no such thing as "PullDown". It's only "PullUp".
It should be mentioned that pin 13 does not work for "Pull Up" due to the built in LED and resistor. There should also be a short explanation about PullUp resistors for beginners.
- help-patch: DIGITAL-INPUT should mention the PullUp resistors. I spent a
lot of time at the beginning making lots of complicated cable connections because the help patch recommends connecting the pins to ground instead of simply switching on the PullUp resistors. At least as long as you are not at the very limit of your power supply.
Since I only use the digital and analogue ins I didn't look any further. So I can't say anything about the output stuff.
The digital pins 2 & 3 should really be fixed sometime soon. I was hoping you'd be getting some of these problems solved rather than putting a grey background to the help patch (lol).
Ingo
Hi Ingo
On Fri, 2011-09-09 at 05:47 +0200, Ingo wrote:
OK, I got it!
Downloading the files didn't work (at least not on my Windows
computer)
but
copying the content into a bunch of text files and renaming them did.
Hm.. is this probably due to Windows and Linux using different line breaks (\r\n vs. \n)?
I'll take a look at it later to see if the problems with the 1st and
2nd
digital input as well as my problems with inputs 10 - 13 are gone.
FYI: We haven't tinkered with the protocol. At this stage it's really only a version with some externals kicked out. Anyway, please report back, if you still experience the same problems.
Are you testing on a Arduino Mega?
Roman
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
On Fri, 2011-09-09 at 10:03 +0200, Ingo wrote:
Hi Roman,
I just messed around with the rewrite and - as you mentioned - you didn't fix any of the bugs.
I even think I send you a mail about the digital pins 2 & 3 and provided a fix for it here at the forum. Of course it's still there!
About the other things:
The test patch has still no switches to turn on the pull up resistors.
in Natty the comport number for USB0 is 32 that's not available in the
choices 0 - 7. I think for Linux [devicename /dev/ttyUSB$1( would be a better choice. At least this option of naming should be mentioned somewhere in the test patch or help patch. (maybe I missed it somewhere?)
- help-patch: there is no such thing as "PullDown". It's only "PullUp".
It should be mentioned that pin 13 does not work for "Pull Up" due to the built in LED and resistor. There should also be a short explanation about PullUp resistors for beginners.
- help-patch: DIGITAL-INPUT should mention the PullUp resistors. I spent a
lot of time at the beginning making lots of complicated cable connections because the help patch recommends connecting the pins to ground instead of simply switching on the PullUp resistors. At least as long as you are not at the very limit of your power supply.
Since I only use the digital and analogue ins I didn't look any further. So I can't say anything about the output stuff.
The digital pins 2 & 3 should really be fixed sometime soon. I was hoping you'd be getting some of these problems solved rather than putting a grey background to the help patch (lol).
Yo, it's very much a work in progress and yet the main goal was not loose any functionality by getting rid of the externals. I did not address any bugs yet, because I didn't experience any.
I only have a arduino Diecimila to test here. So, I ask you again: The problem you mentioned with pin 2 and 3, on which arduino board model do you experience it? Also, if the problem is located in the firmware and not in the [arduino] abstraction, I rather don't 'fix' it in the [arduino] abstraction.
Since you seem to have a strong interest on making it work for your situation, I suggest to give you commit privileges to that repository. You could send me your public key off-list and I would give you access to that repository.
Also, thanks for your other comments. Those are all valid points that need to be addressed.
(Actually, 'pduino rewrite' as thread was a bit too much a promise, it should have read 'please test and report back'.)
Roman
I did test it with the Duemilanove. But I also tested Diecimila and Uno. To me the problem looks like "unfortunate design" in the firmata. The buttons 2-9 don't somehow connect the same 8-bit word. It might simply be a bug in the firmata. Hans hasn't reacted to it the last 2 or 3 times I mentioned it.
I have changed my arduino patch to get it to work for what I need with the Diecimila to Uno. I don't like to submit any workarounds if I don't have a mega available. I don't know how the rest of the pins are set up in blocks. It might also break something else since I only use part of the functions.
I really think Hans is the one who should look into this problem to determine whether it is a pduino or firmata bug.
I am really surprised that so few people have problems with this. Or maybe they do and simply cannot figure out where the problem comes from?
Ingo
-----Ursprüngliche Nachricht----- Von: Roman Haefeli [mailto:reduzent@gmail.com] Gesendet: Freitag, 9. September 2011 10:49 An: Ingo Cc: 'olsen'; 'pd-list' Betreff: Re: AW: [PD] pduino rewrite
On Fri, 2011-09-09 at 10:03 +0200, Ingo wrote:
Hi Roman,
I just messed around with the rewrite and - as you mentioned - you
didn't
fix any of the bugs.
I even think I send you a mail about the digital pins 2 & 3 and provided
a
fix for it here at the forum. Of course it's still there!
About the other things:
The test patch has still no switches to turn on the pull up resistors.
in Natty the comport number for USB0 is 32 that's not available in the
choices 0 - 7. I think for Linux [devicename /dev/ttyUSB$1( would be a better choice. At least this option of naming should be mentioned
somewhere
in the test patch or help patch. (maybe I missed it somewhere?)
- help-patch: there is no such thing as "PullDown". It's only "PullUp".
It should be mentioned that pin 13 does not work for "Pull Up" due to
the
built in LED and resistor. There should also be a short explanation
about
PullUp resistors for beginners.
- help-patch: DIGITAL-INPUT should mention the PullUp resistors. I spent
a
lot of time at the beginning making lots of complicated cable
connections
because the help patch recommends connecting the pins to ground instead
of
simply switching on the PullUp resistors. At least as long as you are
not at
the very limit of your power supply.
Since I only use the digital and analogue ins I didn't look any further.
So
I can't say anything about the output stuff.
The digital pins 2 & 3 should really be fixed sometime soon. I was
hoping
you'd be getting some of these problems solved rather than putting a
grey
background to the help patch (lol).
Yo, it's very much a work in progress and yet the main goal was not loose any functionality by getting rid of the externals. I did not address any bugs yet, because I didn't experience any.
I only have a arduino Diecimila to test here. So, I ask you again: The problem you mentioned with pin 2 and 3, on which arduino board model do you experience it? Also, if the problem is located in the firmware and not in the [arduino] abstraction, I rather don't 'fix' it in the [arduino] abstraction.
Since you seem to have a strong interest on making it work for your situation, I suggest to give you commit privileges to that repository. You could send me your public key off-list and I would give you access to that repository.
Also, thanks for your other comments. Those are all valid points that need to be addressed.
(Actually, 'pduino rewrite' as thread was a bit too much a promise, it should have read 'please test and report back'.)
Roman
I basically haven't used an Arduino in 2 years, so I am a poor candidate for debugging this stuff. Roman and Olsen are much better candidates for this job.
The digital input pins are reported using the hardware-level ports, the hardware is organized around pins 0-7 being one port, 8-15, another, and 16-23 (analog pins) another.
As for the pull-up resistor, you activate them just like you would in an other code for an Atmel AVR chip: switch the pin mode to INPUT then set that pin to HIGH (i.e. output a 1 to that pin).
.hc
On Fri, 2011-09-09 at 11:34 +0200, Ingo wrote:
I did test it with the Duemilanove. But I also tested Diecimila and Uno. To me the problem looks like "unfortunate design" in the firmata. The buttons 2-9 don't somehow connect the same 8-bit word. It might simply be a bug in the firmata. Hans hasn't reacted to it the last 2 or 3 times I mentioned it.
I have changed my arduino patch to get it to work for what I need with the Diecimila to Uno. I don't like to submit any workarounds if I don't have a mega available. I don't know how the rest of the pins are set up in blocks. It might also break something else since I only use part of the functions.
I really think Hans is the one who should look into this problem to determine whether it is a pduino or firmata bug.
I am really surprised that so few people have problems with this. Or maybe they do and simply cannot figure out where the problem comes from?
Ingo
-----Ursprüngliche Nachricht----- Von: Roman Haefeli [mailto:reduzent@gmail.com] Gesendet: Freitag, 9. September 2011 10:49 An: Ingo Cc: 'olsen'; 'pd-list' Betreff: Re: AW: [PD] pduino rewrite
On Fri, 2011-09-09 at 10:03 +0200, Ingo wrote:
Hi Roman,
I just messed around with the rewrite and - as you mentioned - you
didn't
fix any of the bugs.
I even think I send you a mail about the digital pins 2 & 3 and provided
a
fix for it here at the forum. Of course it's still there!
About the other things:
The test patch has still no switches to turn on the pull up resistors.
in Natty the comport number for USB0 is 32 that's not available in the
choices 0 - 7. I think for Linux [devicename /dev/ttyUSB$1( would be a better choice. At least this option of naming should be mentioned
somewhere
in the test patch or help patch. (maybe I missed it somewhere?)
- help-patch: there is no such thing as "PullDown". It's only "PullUp".
It should be mentioned that pin 13 does not work for "Pull Up" due to
the
built in LED and resistor. There should also be a short explanation
about
PullUp resistors for beginners.
- help-patch: DIGITAL-INPUT should mention the PullUp resistors. I spent
a
lot of time at the beginning making lots of complicated cable
connections
because the help patch recommends connecting the pins to ground instead
of
simply switching on the PullUp resistors. At least as long as you are
not at
the very limit of your power supply.
Since I only use the digital and analogue ins I didn't look any further.
So
I can't say anything about the output stuff.
The digital pins 2 & 3 should really be fixed sometime soon. I was
hoping
you'd be getting some of these problems solved rather than putting a
grey
background to the help patch (lol).
Yo, it's very much a work in progress and yet the main goal was not loose any functionality by getting rid of the externals. I did not address any bugs yet, because I didn't experience any.
I only have a arduino Diecimila to test here. So, I ask you again: The problem you mentioned with pin 2 and 3, on which arduino board model do you experience it? Also, if the problem is located in the firmware and not in the [arduino] abstraction, I rather don't 'fix' it in the [arduino] abstraction.
Since you seem to have a strong interest on making it work for your situation, I suggest to give you commit privileges to that repository. You could send me your public key off-list and I would give you access to that repository.
Also, thanks for your other comments. Those are all valid points that need to be addressed.
(Actually, 'pduino rewrite' as thread was a bit too much a promise, it should have read 'please test and report back'.)
Roman
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Upon further testing I have found two bugs so far. On is in the firmata and the second one is in the [debytemask]. This makes fixing it a bit difficult.
disconnected it sends three. The first one should be the address and the second one the value for the group of 8 pins. There may be a reason why it sends another "0" at the end but that's not too important anyway. The bad thing is that when disconnecting a pin it sends these number five times (sometimes only three times) in a row while going back and forth between the last value and the current one. That's 15 bytes instead of two. (I am using an inc/dec wheel with the arduino and now I know why it doesn't respond like it should.) I havn't checked the analogue ins so far.
the same button of a different group of pins is pressed or released twice after each other. This could be still correct if all other pins of the group have identical values but creates "random" numbers if the other pins change. Not sure yet what else gets affected.
I am going to try to fix the problem with the [debytemask] but I don't know if the firmata stuff has any big influence on it.
I just added another 6 buttons to my remote (using all 12 digital and 6 analogue ins of the Diecimila / Duemilanove now) and the whole thing is going crazy now sending wrong stuff all over the place.
Ingo
-----Ursprüngliche Nachricht----- Von: Hans-Christoph Steiner [mailto:hans@at.or.at] Gesendet: Freitag, 9. September 2011 16:41 An: Ingo Cc: 'Roman Haefeli'; 'pd-list' Betreff: Re: [PD] pduino rewrite
I basically haven't used an Arduino in 2 years, so I am a poor candidate for debugging this stuff. Roman and Olsen are much better candidates for this job.
The digital input pins are reported using the hardware-level ports, the hardware is organized around pins 0-7 being one port, 8-15, another, and 16-23 (analog pins) another.
As for the pull-up resistor, you activate them just like you would in an other code for an Atmel AVR chip: switch the pin mode to INPUT then set that pin to HIGH (i.e. output a 1 to that pin).
.hc
On Fri, 2011-09-09 at 11:34 +0200, Ingo wrote:
I did test it with the Duemilanove. But I also tested Diecimila and Uno. To me the problem looks like "unfortunate design" in the firmata. The buttons 2-9 don't somehow connect the same 8-bit word. It might simply
be a
bug in the firmata. Hans hasn't reacted to it the last 2 or 3 times I mentioned it.
I have changed my arduino patch to get it to work for what I need with
the
Diecimila to Uno. I don't like to submit any workarounds if I don't have
a
mega available. I don't know how the rest of the pins are set up in
blocks.
It might also break something else since I only use part of the
functions.
I really think Hans is the one who should look into this problem to determine whether it is a pduino or firmata bug.
I am really surprised that so few people have problems with this. Or
maybe
they do and simply cannot figure out where the problem comes from?
Ingo
-----Ursprüngliche Nachricht----- Von: Roman Haefeli [mailto:reduzent@gmail.com] Gesendet: Freitag, 9. September 2011 10:49 An: Ingo Cc: 'olsen'; 'pd-list' Betreff: Re: AW: [PD] pduino rewrite
On Fri, 2011-09-09 at 10:03 +0200, Ingo wrote:
Hi Roman,
I just messed around with the rewrite and - as you mentioned - you
didn't
fix any of the bugs.
I even think I send you a mail about the digital pins 2 & 3 and
provided
a
fix for it here at the forum. Of course it's still there!
About the other things:
- The test patch has still no switches to turn on the pull up
resistors.
- in Natty the comport number for USB0 is 32 that's not available in
the
choices 0 - 7. I think for Linux [devicename /dev/ttyUSB$1( would be
a
better choice. At least this option of naming should be mentioned
somewhere
in the test patch or help patch. (maybe I missed it somewhere?)
- help-patch: there is no such thing as "PullDown". It's only
"PullUp".
It should be mentioned that pin 13 does not work for "Pull Up" due
to
the
built in LED and resistor. There should also be a short explanation
about
PullUp resistors for beginners.
- help-patch: DIGITAL-INPUT should mention the PullUp resistors. I
spent
a
lot of time at the beginning making lots of complicated cable
connections
because the help patch recommends connecting the pins to ground
instead
of
simply switching on the PullUp resistors. At least as long as you
are
not at
the very limit of your power supply.
Since I only use the digital and analogue ins I didn't look any
further.
So
I can't say anything about the output stuff.
The digital pins 2 & 3 should really be fixed sometime soon. I was
hoping
you'd be getting some of these problems solved rather than putting a
grey
background to the help patch (lol).
Yo, it's very much a work in progress and yet the main goal was not loose any functionality by getting rid of the externals. I did not address any bugs yet, because I didn't experience any.
I only have a arduino Diecimila to test here. So, I ask you again: The problem you mentioned with pin 2 and 3, on which arduino board model
do
you experience it? Also, if the problem is located in the firmware and not in the [arduino] abstraction, I rather don't 'fix' it in the [arduino] abstraction.
Since you seem to have a strong interest on making it work for your situation, I suggest to give you commit privileges to that repository. You could send me your public key off-list and I would give you access to that repository.
Also, thanks for your other comments. Those are all valid points that need to be addressed.
(Actually, 'pduino rewrite' as thread was a bit too much a promise, it should have read 'please test and report back'.)
Roman
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management ->
Hi Roman, Olsen and Hans,
Here' a replacement object that fixes the behaviour that wrong "digital in" pins get recognized when more than the first 6 pins are used. I hope there is nothing else interfering with those pins anymore.
The object "digital_messages" inside the patch should be placed here to replace the current object "digital messages":
Arduino/convert to symbolic commands/
Please test if it is working on other systems!
I have no idea if this works with the "mega" or not since I don't have one to test it. If anyone could check this out it would be great to know!
Ingo
#N canvas 0 0 450 300 10; #N canvas 702 733 318 273 digital_messages 0; #X obj 43 16 inlet; #X obj 43 237 outlet; #X obj 43 43 route 0 1 2 3 4 5 6; #N canvas 2032 0 534 360 resolve-bits_32-39 0; #X obj 200 18 inlet; #X obj 200 320 outlet; #X obj 380 129 mod 128; #X obj 320 129 mod 64; #X obj 260 129 mod 32; #X obj 200 129 mod 16; #X obj 140 129 mod 8; #X obj 80 129 mod 4; #X obj 20 129 mod 2; #X obj 80 149 div 2; #X obj 440 149 div 128; #X obj 440 129 mod 128; #X obj 140 149 div 4; #X obj 200 149 div 8; #X obj 260 149 div 16; #X obj 320 149 div 32; #X obj 380 149 div 64; #X obj 20 169 change -1; #X obj 80 169 change -1; #X obj 140 169 change -1; #X obj 200 169 change -1; #X obj 260 169 change -1; #X obj 320 169 change -1; #X obj 380 169 change -1; #X obj 440 169 change -1; #X obj 200 55 change -1; #X msg 20 196 digital 32 $1; #X msg 80 216 digital 33 $1; #X msg 140 196 digital 34 $1; #X msg 200 216 digital 35 $1; #X msg 260 196 digital 36 $1; #X msg 320 216 digital 37 $1; #X msg 380 196 digital 38 $1; #X msg 440 216 digital 39 $1; #X connect 0 0 25 0; #X connect 2 0 16 0; #X connect 3 0 15 0; #X connect 4 0 14 0; #X connect 5 0 13 0; #X connect 6 0 12 0; #X connect 7 0 9 0; #X connect 8 0 17 0; #X connect 9 0 18 0; #X connect 10 0 24 0; #X connect 11 0 10 0; #X connect 12 0 19 0; #X connect 13 0 20 0; #X connect 14 0 21 0; #X connect 15 0 22 0; #X connect 16 0 23 0; #X connect 17 0 26 0; #X connect 18 0 27 0; #X connect 19 0 28 0; #X connect 20 0 29 0; #X connect 21 0 30 0; #X connect 22 0 31 0; #X connect 23 0 32 0; #X connect 24 0 33 0; #X connect 25 0 2 0; #X connect 25 0 3 0; #X connect 25 0 4 0; #X connect 25 0 5 0; #X connect 25 0 6 0; #X connect 25 0 8 0; #X connect 25 0 7 0; #X connect 25 0 11 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 restore 106 150 pd resolve-bits_32-39; #N canvas 2032 0 534 360 resolve-bits_0-7 0; #X obj 200 18 inlet; #X obj 200 320 outlet; #X obj 380 129 mod 128; #X obj 320 129 mod 64; #X obj 260 129 mod 32; #X obj 200 129 mod 16; #X obj 140 129 mod 8; #X obj 80 129 mod 4; #X obj 20 129 mod 2; #X obj 80 149 div 2; #X obj 440 149 div 128; #X obj 440 129 mod 128; #X obj 140 149 div 4; #X obj 200 149 div 8; #X obj 260 149 div 16; #X obj 320 149 div 32; #X obj 380 149 div 64; #X obj 20 169 change -1; #X obj 80 169 change -1; #X obj 140 169 change -1; #X obj 200 169 change -1; #X obj 260 169 change -1; #X obj 320 169 change -1; #X obj 380 169 change -1; #X obj 440 169 change -1; #X obj 200 55 change -1; #X msg 20 196 digital 0 $1; #X msg 80 216 digital 1 $1; #X msg 140 196 digital 2 $1; #X msg 200 216 digital 3 $1; #X msg 260 196 digital 4 $1; #X msg 320 216 digital 5 $1; #X msg 380 196 digital 6 $1; #X msg 440 216 digital 7 $1; #X connect 0 0 25 0; #X connect 2 0 16 0; #X connect 3 0 15 0; #X connect 4 0 14 0; #X connect 5 0 13 0; #X connect 6 0 12 0; #X connect 7 0 9 0; #X connect 8 0 17 0; #X connect 9 0 18 0; #X connect 10 0 24 0; #X connect 11 0 10 0; #X connect 12 0 19 0; #X connect 13 0 20 0; #X connect 14 0 21 0; #X connect 15 0 22 0; #X connect 16 0 23 0; #X connect 17 0 26 0; #X connect 18 0 27 0; #X connect 19 0 28 0; #X connect 20 0 29 0; #X connect 21 0 30 0; #X connect 22 0 31 0; #X connect 23 0 32 0; #X connect 24 0 33 0; #X connect 25 0 2 0; #X connect 25 0 3 0; #X connect 25 0 4 0; #X connect 25 0 5 0; #X connect 25 0 6 0; #X connect 25 0 8 0; #X connect 25 0 7 0; #X connect 25 0 11 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 restore 43 70 pd resolve-bits_0-7; #N canvas 2032 0 534 360 resolve-bits_8-15 0; #X obj 200 18 inlet; #X obj 200 320 outlet; #X obj 380 129 mod 128; #X obj 320 129 mod 64; #X obj 260 129 mod 32; #X obj 200 129 mod 16; #X obj 140 129 mod 8; #X obj 80 129 mod 4; #X obj 20 129 mod 2; #X obj 80 149 div 2; #X obj 440 149 div 128; #X obj 440 129 mod 128; #X obj 140 149 div 4; #X obj 200 149 div 8; #X obj 260 149 div 16; #X obj 320 149 div 32; #X obj 380 149 div 64; #X obj 20 169 change -1; #X obj 80 169 change -1; #X obj 140 169 change -1; #X obj 200 169 change -1; #X obj 260 169 change -1; #X obj 320 169 change -1; #X obj 380 169 change -1; #X obj 440 169 change -1; #X obj 200 55 change -1; #X msg 20 196 digital 8 $1; #X msg 80 216 digital 9 $1; #X msg 140 196 digital 10 $1; #X msg 200 216 digital 11 $1; #X msg 260 196 digital 12 $1; #X msg 320 216 digital 13 $1; #X msg 380 196 digital 14 $1; #X msg 440 216 digital 15 $1; #X connect 0 0 25 0; #X connect 2 0 16 0; #X connect 3 0 15 0; #X connect 4 0 14 0; #X connect 5 0 13 0; #X connect 6 0 12 0; #X connect 7 0 9 0; #X connect 8 0 17 0; #X connect 9 0 18 0; #X connect 10 0 24 0; #X connect 11 0 10 0; #X connect 12 0 19 0; #X connect 13 0 20 0; #X connect 14 0 21 0; #X connect 15 0 22 0; #X connect 16 0 23 0; #X connect 17 0 26 0; #X connect 18 0 27 0; #X connect 19 0 28 0; #X connect 20 0 29 0; #X connect 21 0 30 0; #X connect 22 0 31 0; #X connect 23 0 32 0; #X connect 24 0 33 0; #X connect 25 0 2 0; #X connect 25 0 3 0; #X connect 25 0 4 0; #X connect 25 0 5 0; #X connect 25 0 6 0; #X connect 25 0 8 0; #X connect 25 0 7 0; #X connect 25 0 11 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 restore 58 90 pd resolve-bits_8-15; #N canvas 2032 0 534 360 resolve-bits_16-23 0; #X obj 200 18 inlet; #X obj 200 320 outlet; #X obj 380 129 mod 128; #X obj 320 129 mod 64; #X obj 260 129 mod 32; #X obj 200 129 mod 16; #X obj 140 129 mod 8; #X obj 80 129 mod 4; #X obj 20 129 mod 2; #X obj 80 149 div 2; #X obj 440 149 div 128; #X obj 440 129 mod 128; #X obj 140 149 div 4; #X obj 200 149 div 8; #X obj 260 149 div 16; #X obj 320 149 div 32; #X obj 380 149 div 64; #X obj 20 169 change -1; #X obj 80 169 change -1; #X obj 140 169 change -1; #X obj 200 169 change -1; #X obj 260 169 change -1; #X obj 320 169 change -1; #X obj 380 169 change -1; #X obj 440 169 change -1; #X obj 200 55 change -1; #X msg 20 196 digital 16 $1; #X msg 80 216 digital 17 $1; #X msg 140 196 digital 18 $1; #X msg 200 216 digital 19 $1; #X msg 260 196 digital 20 $1; #X msg 320 216 digital 21 $1; #X msg 380 196 digital 22 $1; #X msg 440 216 digital 23 $1; #X connect 0 0 25 0; #X connect 2 0 16 0; #X connect 3 0 15 0; #X connect 4 0 14 0; #X connect 5 0 13 0; #X connect 6 0 12 0; #X connect 7 0 9 0; #X connect 8 0 17 0; #X connect 9 0 18 0; #X connect 10 0 24 0; #X connect 11 0 10 0; #X connect 12 0 19 0; #X connect 13 0 20 0; #X connect 14 0 21 0; #X connect 15 0 22 0; #X connect 16 0 23 0; #X connect 17 0 26 0; #X connect 18 0 27 0; #X connect 19 0 28 0; #X connect 20 0 29 0; #X connect 21 0 30 0; #X connect 22 0 31 0; #X connect 23 0 32 0; #X connect 24 0 33 0; #X connect 25 0 2 0; #X connect 25 0 3 0; #X connect 25 0 4 0; #X connect 25 0 5 0; #X connect 25 0 6 0; #X connect 25 0 8 0; #X connect 25 0 7 0; #X connect 25 0 11 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 restore 74 110 pd resolve-bits_16-23; #N canvas 2032 0 534 360 resolve-bits_24-31 0; #X obj 200 18 inlet; #X obj 200 320 outlet; #X obj 380 129 mod 128; #X obj 320 129 mod 64; #X obj 260 129 mod 32; #X obj 200 129 mod 16; #X obj 140 129 mod 8; #X obj 80 129 mod 4; #X obj 20 129 mod 2; #X obj 80 149 div 2; #X obj 440 149 div 128; #X obj 440 129 mod 128; #X obj 140 149 div 4; #X obj 200 149 div 8; #X obj 260 149 div 16; #X obj 320 149 div 32; #X obj 380 149 div 64; #X obj 20 169 change -1; #X obj 80 169 change -1; #X obj 140 169 change -1; #X obj 200 169 change -1; #X obj 260 169 change -1; #X obj 320 169 change -1; #X obj 380 169 change -1; #X obj 440 169 change -1; #X obj 200 55 change -1; #X msg 20 196 digital 24 $1; #X msg 80 216 digital 25 $1; #X msg 140 196 digital 26 $1; #X msg 200 216 digital 27 $1; #X msg 260 196 digital 28 $1; #X msg 320 216 digital 29 $1; #X msg 380 196 digital 30 $1; #X msg 440 216 digital 31 $1; #X connect 0 0 25 0; #X connect 2 0 16 0; #X connect 3 0 15 0; #X connect 4 0 14 0; #X connect 5 0 13 0; #X connect 6 0 12 0; #X connect 7 0 9 0; #X connect 8 0 17 0; #X connect 9 0 18 0; #X connect 10 0 24 0; #X connect 11 0 10 0; #X connect 12 0 19 0; #X connect 13 0 20 0; #X connect 14 0 21 0; #X connect 15 0 22 0; #X connect 16 0 23 0; #X connect 17 0 26 0; #X connect 18 0 27 0; #X connect 19 0 28 0; #X connect 20 0 29 0; #X connect 21 0 30 0; #X connect 22 0 31 0; #X connect 23 0 32 0; #X connect 24 0 33 0; #X connect 25 0 2 0; #X connect 25 0 3 0; #X connect 25 0 4 0; #X connect 25 0 5 0; #X connect 25 0 6 0; #X connect 25 0 8 0; #X connect 25 0 7 0; #X connect 25 0 11 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 restore 90 130 pd resolve-bits_24-31; #N canvas 2032 0 534 360 resolve-bits_40-47 0; #X obj 200 18 inlet; #X obj 200 320 outlet; #X obj 380 129 mod 128; #X obj 320 129 mod 64; #X obj 260 129 mod 32; #X obj 200 129 mod 16; #X obj 140 129 mod 8; #X obj 80 129 mod 4; #X obj 20 129 mod 2; #X obj 80 149 div 2; #X obj 440 149 div 128; #X obj 440 129 mod 128; #X obj 140 149 div 4; #X obj 200 149 div 8; #X obj 260 149 div 16; #X obj 320 149 div 32; #X obj 380 149 div 64; #X obj 20 169 change -1; #X obj 80 169 change -1; #X obj 140 169 change -1; #X obj 200 169 change -1; #X obj 260 169 change -1; #X obj 320 169 change -1; #X obj 380 169 change -1; #X obj 440 169 change -1; #X obj 200 55 change -1; #X msg 20 196 digital 40 $1; #X msg 80 216 digital 41 $1; #X msg 140 196 digital 42 $1; #X msg 200 216 digital 43 $1; #X msg 260 196 digital 44 $1; #X msg 320 216 digital 45 $1; #X msg 380 196 digital 46 $1; #X msg 440 216 digital 47 $1; #X connect 0 0 25 0; #X connect 2 0 16 0; #X connect 3 0 15 0; #X connect 4 0 14 0; #X connect 5 0 13 0; #X connect 6 0 12 0; #X connect 7 0 9 0; #X connect 8 0 17 0; #X connect 9 0 18 0; #X connect 10 0 24 0; #X connect 11 0 10 0; #X connect 12 0 19 0; #X connect 13 0 20 0; #X connect 14 0 21 0; #X connect 15 0 22 0; #X connect 16 0 23 0; #X connect 17 0 26 0; #X connect 18 0 27 0; #X connect 19 0 28 0; #X connect 20 0 29 0; #X connect 21 0 30 0; #X connect 22 0 31 0; #X connect 23 0 32 0; #X connect 24 0 33 0; #X connect 25 0 2 0; #X connect 25 0 3 0; #X connect 25 0 4 0; #X connect 25 0 5 0; #X connect 25 0 6 0; #X connect 25 0 8 0; #X connect 25 0 7 0; #X connect 25 0 11 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 restore 122 170 pd resolve-bits_40-47; #N canvas 2032 0 534 360 resolve-bits_48-55 0; #X obj 200 18 inlet; #X obj 200 320 outlet; #X obj 380 129 mod 128; #X obj 320 129 mod 64; #X obj 260 129 mod 32; #X obj 200 129 mod 16; #X obj 140 129 mod 8; #X obj 80 129 mod 4; #X obj 20 129 mod 2; #X obj 80 149 div 2; #X obj 440 149 div 128; #X obj 440 129 mod 128; #X obj 140 149 div 4; #X obj 200 149 div 8; #X obj 260 149 div 16; #X obj 320 149 div 32; #X obj 380 149 div 64; #X obj 20 169 change -1; #X obj 80 169 change -1; #X obj 140 169 change -1; #X obj 200 169 change -1; #X obj 260 169 change -1; #X obj 320 169 change -1; #X obj 380 169 change -1; #X obj 440 169 change -1; #X obj 200 55 change -1; #X msg 20 196 digital 48 $1; #X msg 80 216 digital 49 $1; #X msg 140 196 digital 50 $1; #X msg 200 216 digital 51 $1; #X msg 260 196 digital 52 $1; #X msg 320 216 digital 53 $1; #X msg 380 196 digital 54 $1; #X msg 440 216 digital 55 $1; #X connect 0 0 25 0; #X connect 2 0 16 0; #X connect 3 0 15 0; #X connect 4 0 14 0; #X connect 5 0 13 0; #X connect 6 0 12 0; #X connect 7 0 9 0; #X connect 8 0 17 0; #X connect 9 0 18 0; #X connect 10 0 24 0; #X connect 11 0 10 0; #X connect 12 0 19 0; #X connect 13 0 20 0; #X connect 14 0 21 0; #X connect 15 0 22 0; #X connect 16 0 23 0; #X connect 17 0 26 0; #X connect 18 0 27 0; #X connect 19 0 28 0; #X connect 20 0 29 0; #X connect 21 0 30 0; #X connect 22 0 31 0; #X connect 23 0 32 0; #X connect 24 0 33 0; #X connect 25 0 2 0; #X connect 25 0 3 0; #X connect 25 0 4 0; #X connect 25 0 5 0; #X connect 25 0 6 0; #X connect 25 0 8 0; #X connect 25 0 7 0; #X connect 25 0 11 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 restore 138 190 pd resolve-bits_48-55; #X connect 0 0 2 0; #X connect 2 0 4 0; #X connect 2 1 5 0; #X connect 2 2 6 0; #X connect 2 3 7 0; #X connect 2 4 3 0; #X connect 2 5 8 0; #X connect 2 6 9 0; #X connect 3 0 1 0; #X connect 4 0 1 0; #X connect 5 0 1 0; #X connect 6 0 1 0; #X connect 7 0 1 0; #X connect 8 0 1 0; #X connect 9 0 1 0; #X restore 205 144 pd digital_messages;
Ooops,
sorry there was a typo in the modulo of all of the 8th channels saying [mod 128] instead of [mod 256]. Here it is again with the correct number.
-----Ursprüngliche Nachricht-----
Von: Ingo [mailto:ingo@miamiwave.com]
Gesendet: Samstag, 10. September 2011 15:49
An: 'Ingo'; 'Hans-Christoph Steiner'; 'olsen'
Cc: 'Roman Haefeli'; 'pd-list'
Betreff: AW: [PD] pduino rewrite
Hi Roman, Olsen and Hans,
Here' a replacement object that fixes the behaviour that wrong "digital
in"
pins get recognized when more than the first 6 pins are used. I hope there
is nothing else interfering with those pins anymore.
The object "digital_messages" inside the patch should be placed here to
replace the current object "digital messages":
Arduino/convert to symbolic commands/
Please test if it is working on other systems!
I have no idea if this works with the "mega" or not since I don't have one
to test it. If anyone could check this out it would be great to know!
Ingo
#N canvas 0 0 450 300 10;
#N canvas 702 733 318 273 digital_messages 0;
#X obj 43 16 inlet;
#X obj 43 237 outlet;
#X obj 43 43 route 0 1 2 3 4 5 6;
#N canvas 1386 0 534 360 resolve-bits_32-39 0;
#X obj 200 18 inlet;
#X obj 200 320 outlet;
#X obj 380 129 mod 128;
#X obj 320 129 mod 64;
#X obj 260 129 mod 32;
#X obj 200 129 mod 16;
#X obj 140 129 mod 8;
#X obj 80 129 mod 4;
#X obj 20 129 mod 2;
#X obj 80 149 div 2;
#X obj 440 149 div 128;
#X obj 140 149 div 4;
#X obj 200 149 div 8;
#X obj 260 149 div 16;
#X obj 320 149 div 32;
#X obj 380 149 div 64;
#X obj 20 169 change -1;
#X obj 80 169 change -1;
#X obj 140 169 change -1;
#X obj 200 169 change -1;
#X obj 260 169 change -1;
#X obj 320 169 change -1;
#X obj 380 169 change -1;
#X obj 440 169 change -1;
#X obj 200 55 change -1;
#X msg 20 196 digital 32 $1;
#X msg 80 216 digital 33 $1;
#X msg 140 196 digital 34 $1;
#X msg 200 216 digital 35 $1;
#X msg 260 196 digital 36 $1;
#X msg 320 216 digital 37 $1;
#X msg 380 196 digital 38 $1;
#X msg 440 216 digital 39 $1;
#X obj 440 129 mod 256;
#X connect 0 0 24 0;
#X connect 2 0 15 0;
#X connect 3 0 14 0;
#X connect 4 0 13 0;
#X connect 5 0 12 0;
#X connect 6 0 11 0;
#X connect 7 0 9 0;
#X connect 8 0 16 0;
#X connect 9 0 17 0;
#X connect 10 0 23 0;
#X connect 11 0 18 0;
#X connect 12 0 19 0;
#X connect 13 0 20 0;
#X connect 14 0 21 0;
#X connect 15 0 22 0;
#X connect 16 0 25 0;
#X connect 17 0 26 0;
#X connect 18 0 27 0;
#X connect 19 0 28 0;
#X connect 20 0 29 0;
#X connect 21 0 30 0;
#X connect 22 0 31 0;
#X connect 23 0 32 0;
#X connect 24 0 2 0;
#X connect 24 0 3 0;
#X connect 24 0 4 0;
#X connect 24 0 5 0;
#X connect 24 0 6 0;
#X connect 24 0 8 0;
#X connect 24 0 7 0;
#X connect 24 0 33 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 10 0;
#X restore 106 150 pd resolve-bits_32-39;
#N canvas 1386 0 534 360 resolve-bits_0-7 0;
#X obj 200 18 inlet;
#X obj 200 320 outlet;
#X obj 380 129 mod 128;
#X obj 320 129 mod 64;
#X obj 260 129 mod 32;
#X obj 200 129 mod 16;
#X obj 140 129 mod 8;
#X obj 80 129 mod 4;
#X obj 20 129 mod 2;
#X obj 80 149 div 2;
#X obj 440 149 div 128;
#X obj 140 149 div 4;
#X obj 200 149 div 8;
#X obj 260 149 div 16;
#X obj 320 149 div 32;
#X obj 380 149 div 64;
#X obj 20 169 change -1;
#X obj 80 169 change -1;
#X obj 140 169 change -1;
#X obj 200 169 change -1;
#X obj 260 169 change -1;
#X obj 320 169 change -1;
#X obj 380 169 change -1;
#X obj 440 169 change -1;
#X obj 200 55 change -1;
#X msg 20 196 digital 0 $1;
#X msg 80 216 digital 1 $1;
#X msg 140 196 digital 2 $1;
#X msg 200 216 digital 3 $1;
#X msg 260 196 digital 4 $1;
#X msg 320 216 digital 5 $1;
#X msg 380 196 digital 6 $1;
#X msg 440 216 digital 7 $1;
#X obj 440 129 mod 256;
#X connect 0 0 24 0;
#X connect 2 0 15 0;
#X connect 3 0 14 0;
#X connect 4 0 13 0;
#X connect 5 0 12 0;
#X connect 6 0 11 0;
#X connect 7 0 9 0;
#X connect 8 0 16 0;
#X connect 9 0 17 0;
#X connect 10 0 23 0;
#X connect 11 0 18 0;
#X connect 12 0 19 0;
#X connect 13 0 20 0;
#X connect 14 0 21 0;
#X connect 15 0 22 0;
#X connect 16 0 25 0;
#X connect 17 0 26 0;
#X connect 18 0 27 0;
#X connect 19 0 28 0;
#X connect 20 0 29 0;
#X connect 21 0 30 0;
#X connect 22 0 31 0;
#X connect 23 0 32 0;
#X connect 24 0 2 0;
#X connect 24 0 3 0;
#X connect 24 0 4 0;
#X connect 24 0 5 0;
#X connect 24 0 6 0;
#X connect 24 0 8 0;
#X connect 24 0 7 0;
#X connect 24 0 33 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 10 0;
#X restore 43 70 pd resolve-bits_0-7;
#N canvas 1386 0 534 360 resolve-bits_8-15 0;
#X obj 200 18 inlet;
#X obj 200 320 outlet;
#X obj 380 129 mod 128;
#X obj 320 129 mod 64;
#X obj 260 129 mod 32;
#X obj 200 129 mod 16;
#X obj 140 129 mod 8;
#X obj 80 129 mod 4;
#X obj 20 129 mod 2;
#X obj 80 149 div 2;
#X obj 440 149 div 128;
#X obj 140 149 div 4;
#X obj 200 149 div 8;
#X obj 260 149 div 16;
#X obj 320 149 div 32;
#X obj 380 149 div 64;
#X obj 20 169 change -1;
#X obj 80 169 change -1;
#X obj 140 169 change -1;
#X obj 200 169 change -1;
#X obj 260 169 change -1;
#X obj 320 169 change -1;
#X obj 380 169 change -1;
#X obj 440 169 change -1;
#X obj 200 55 change -1;
#X msg 20 196 digital 8 $1;
#X msg 80 216 digital 9 $1;
#X msg 140 196 digital 10 $1;
#X msg 200 216 digital 11 $1;
#X msg 260 196 digital 12 $1;
#X msg 320 216 digital 13 $1;
#X msg 380 196 digital 14 $1;
#X msg 440 216 digital 15 $1;
#X obj 440 129 mod 256;
#X connect 0 0 24 0;
#X connect 2 0 15 0;
#X connect 3 0 14 0;
#X connect 4 0 13 0;
#X connect 5 0 12 0;
#X connect 6 0 11 0;
#X connect 7 0 9 0;
#X connect 8 0 16 0;
#X connect 9 0 17 0;
#X connect 10 0 23 0;
#X connect 11 0 18 0;
#X connect 12 0 19 0;
#X connect 13 0 20 0;
#X connect 14 0 21 0;
#X connect 15 0 22 0;
#X connect 16 0 25 0;
#X connect 17 0 26 0;
#X connect 18 0 27 0;
#X connect 19 0 28 0;
#X connect 20 0 29 0;
#X connect 21 0 30 0;
#X connect 22 0 31 0;
#X connect 23 0 32 0;
#X connect 24 0 2 0;
#X connect 24 0 3 0;
#X connect 24 0 4 0;
#X connect 24 0 5 0;
#X connect 24 0 6 0;
#X connect 24 0 8 0;
#X connect 24 0 7 0;
#X connect 24 0 33 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 10 0;
#X restore 58 90 pd resolve-bits_8-15;
#N canvas 1386 0 534 360 resolve-bits_16-23 0;
#X obj 200 18 inlet;
#X obj 200 320 outlet;
#X obj 380 129 mod 128;
#X obj 320 129 mod 64;
#X obj 260 129 mod 32;
#X obj 200 129 mod 16;
#X obj 140 129 mod 8;
#X obj 80 129 mod 4;
#X obj 20 129 mod 2;
#X obj 80 149 div 2;
#X obj 440 149 div 128;
#X obj 140 149 div 4;
#X obj 200 149 div 8;
#X obj 260 149 div 16;
#X obj 320 149 div 32;
#X obj 380 149 div 64;
#X obj 20 169 change -1;
#X obj 80 169 change -1;
#X obj 140 169 change -1;
#X obj 200 169 change -1;
#X obj 260 169 change -1;
#X obj 320 169 change -1;
#X obj 380 169 change -1;
#X obj 440 169 change -1;
#X obj 200 55 change -1;
#X msg 20 196 digital 16 $1;
#X msg 80 216 digital 17 $1;
#X msg 140 196 digital 18 $1;
#X msg 200 216 digital 19 $1;
#X msg 260 196 digital 20 $1;
#X msg 320 216 digital 21 $1;
#X msg 380 196 digital 22 $1;
#X msg 440 216 digital 23 $1;
#X obj 440 129 mod 256;
#X connect 0 0 24 0;
#X connect 2 0 15 0;
#X connect 3 0 14 0;
#X connect 4 0 13 0;
#X connect 5 0 12 0;
#X connect 6 0 11 0;
#X connect 7 0 9 0;
#X connect 8 0 16 0;
#X connect 9 0 17 0;
#X connect 10 0 23 0;
#X connect 11 0 18 0;
#X connect 12 0 19 0;
#X connect 13 0 20 0;
#X connect 14 0 21 0;
#X connect 15 0 22 0;
#X connect 16 0 25 0;
#X connect 17 0 26 0;
#X connect 18 0 27 0;
#X connect 19 0 28 0;
#X connect 20 0 29 0;
#X connect 21 0 30 0;
#X connect 22 0 31 0;
#X connect 23 0 32 0;
#X connect 24 0 2 0;
#X connect 24 0 3 0;
#X connect 24 0 4 0;
#X connect 24 0 5 0;
#X connect 24 0 6 0;
#X connect 24 0 8 0;
#X connect 24 0 7 0;
#X connect 24 0 33 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 10 0;
#X restore 74 110 pd resolve-bits_16-23;
#N canvas 1386 0 534 360 resolve-bits_24-31 0;
#X obj 200 18 inlet;
#X obj 200 320 outlet;
#X obj 380 129 mod 128;
#X obj 320 129 mod 64;
#X obj 260 129 mod 32;
#X obj 200 129 mod 16;
#X obj 140 129 mod 8;
#X obj 80 129 mod 4;
#X obj 20 129 mod 2;
#X obj 80 149 div 2;
#X obj 440 149 div 128;
#X obj 140 149 div 4;
#X obj 200 149 div 8;
#X obj 260 149 div 16;
#X obj 320 149 div 32;
#X obj 380 149 div 64;
#X obj 20 169 change -1;
#X obj 80 169 change -1;
#X obj 140 169 change -1;
#X obj 200 169 change -1;
#X obj 260 169 change -1;
#X obj 320 169 change -1;
#X obj 380 169 change -1;
#X obj 440 169 change -1;
#X obj 200 55 change -1;
#X msg 20 196 digital 24 $1;
#X msg 80 216 digital 25 $1;
#X msg 140 196 digital 26 $1;
#X msg 200 216 digital 27 $1;
#X msg 260 196 digital 28 $1;
#X msg 320 216 digital 29 $1;
#X msg 380 196 digital 30 $1;
#X msg 440 216 digital 31 $1;
#X obj 440 129 mod 256;
#X connect 0 0 24 0;
#X connect 2 0 15 0;
#X connect 3 0 14 0;
#X connect 4 0 13 0;
#X connect 5 0 12 0;
#X connect 6 0 11 0;
#X connect 7 0 9 0;
#X connect 8 0 16 0;
#X connect 9 0 17 0;
#X connect 10 0 23 0;
#X connect 11 0 18 0;
#X connect 12 0 19 0;
#X connect 13 0 20 0;
#X connect 14 0 21 0;
#X connect 15 0 22 0;
#X connect 16 0 25 0;
#X connect 17 0 26 0;
#X connect 18 0 27 0;
#X connect 19 0 28 0;
#X connect 20 0 29 0;
#X connect 21 0 30 0;
#X connect 22 0 31 0;
#X connect 23 0 32 0;
#X connect 24 0 2 0;
#X connect 24 0 3 0;
#X connect 24 0 4 0;
#X connect 24 0 5 0;
#X connect 24 0 6 0;
#X connect 24 0 8 0;
#X connect 24 0 7 0;
#X connect 24 0 33 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 10 0;
#X restore 90 130 pd resolve-bits_24-31;
#N canvas 1386 0 534 360 resolve-bits_40-47 0;
#X obj 200 18 inlet;
#X obj 200 320 outlet;
#X obj 380 129 mod 128;
#X obj 320 129 mod 64;
#X obj 260 129 mod 32;
#X obj 200 129 mod 16;
#X obj 140 129 mod 8;
#X obj 80 129 mod 4;
#X obj 20 129 mod 2;
#X obj 80 149 div 2;
#X obj 440 149 div 128;
#X obj 140 149 div 4;
#X obj 200 149 div 8;
#X obj 260 149 div 16;
#X obj 320 149 div 32;
#X obj 380 149 div 64;
#X obj 20 169 change -1;
#X obj 80 169 change -1;
#X obj 140 169 change -1;
#X obj 200 169 change -1;
#X obj 260 169 change -1;
#X obj 320 169 change -1;
#X obj 380 169 change -1;
#X obj 440 169 change -1;
#X obj 200 55 change -1;
#X msg 20 196 digital 40 $1;
#X msg 80 216 digital 41 $1;
#X msg 140 196 digital 42 $1;
#X msg 200 216 digital 43 $1;
#X msg 260 196 digital 44 $1;
#X msg 320 216 digital 45 $1;
#X msg 380 196 digital 46 $1;
#X msg 440 216 digital 47 $1;
#X obj 440 129 mod 256;
#X connect 0 0 24 0;
#X connect 2 0 15 0;
#X connect 3 0 14 0;
#X connect 4 0 13 0;
#X connect 5 0 12 0;
#X connect 6 0 11 0;
#X connect 7 0 9 0;
#X connect 8 0 16 0;
#X connect 9 0 17 0;
#X connect 10 0 23 0;
#X connect 11 0 18 0;
#X connect 12 0 19 0;
#X connect 13 0 20 0;
#X connect 14 0 21 0;
#X connect 15 0 22 0;
#X connect 16 0 25 0;
#X connect 17 0 26 0;
#X connect 18 0 27 0;
#X connect 19 0 28 0;
#X connect 20 0 29 0;
#X connect 21 0 30 0;
#X connect 22 0 31 0;
#X connect 23 0 32 0;
#X connect 24 0 2 0;
#X connect 24 0 3 0;
#X connect 24 0 4 0;
#X connect 24 0 5 0;
#X connect 24 0 6 0;
#X connect 24 0 8 0;
#X connect 24 0 7 0;
#X connect 24 0 33 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 10 0;
#X restore 122 170 pd resolve-bits_40-47;
#N canvas 1386 0 534 360 resolve-bits_48-55 0;
#X obj 200 18 inlet;
#X obj 200 320 outlet;
#X obj 380 129 mod 128;
#X obj 320 129 mod 64;
#X obj 260 129 mod 32;
#X obj 200 129 mod 16;
#X obj 140 129 mod 8;
#X obj 80 129 mod 4;
#X obj 20 129 mod 2;
#X obj 80 149 div 2;
#X obj 440 149 div 128;
#X obj 140 149 div 4;
#X obj 200 149 div 8;
#X obj 260 149 div 16;
#X obj 320 149 div 32;
#X obj 380 149 div 64;
#X obj 20 169 change -1;
#X obj 80 169 change -1;
#X obj 140 169 change -1;
#X obj 200 169 change -1;
#X obj 260 169 change -1;
#X obj 320 169 change -1;
#X obj 380 169 change -1;
#X obj 440 169 change -1;
#X obj 200 55 change -1;
#X msg 20 196 digital 48 $1;
#X msg 80 216 digital 49 $1;
#X msg 140 196 digital 50 $1;
#X msg 200 216 digital 51 $1;
#X msg 260 196 digital 52 $1;
#X msg 320 216 digital 53 $1;
#X msg 380 196 digital 54 $1;
#X msg 440 216 digital 55 $1;
#X obj 440 129 mod 256;
#X connect 0 0 24 0;
#X connect 2 0 15 0;
#X connect 3 0 14 0;
#X connect 4 0 13 0;
#X connect 5 0 12 0;
#X connect 6 0 11 0;
#X connect 7 0 9 0;
#X connect 8 0 16 0;
#X connect 9 0 17 0;
#X connect 10 0 23 0;
#X connect 11 0 18 0;
#X connect 12 0 19 0;
#X connect 13 0 20 0;
#X connect 14 0 21 0;
#X connect 15 0 22 0;
#X connect 16 0 25 0;
#X connect 17 0 26 0;
#X connect 18 0 27 0;
#X connect 19 0 28 0;
#X connect 20 0 29 0;
#X connect 21 0 30 0;
#X connect 22 0 31 0;
#X connect 23 0 32 0;
#X connect 24 0 2 0;
#X connect 24 0 3 0;
#X connect 24 0 4 0;
#X connect 24 0 5 0;
#X connect 24 0 6 0;
#X connect 24 0 8 0;
#X connect 24 0 7 0;
#X connect 24 0 33 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 10 0;
#X restore 138 190 pd resolve-bits_48-55;
#X connect 0 0 2 0;
#X connect 2 0 4 0;
#X connect 2 1 5 0;
#X connect 2 2 6 0;
#X connect 2 3 7 0;
#X connect 2 4 3 0;
#X connect 2 5 8 0;
#X connect 2 6 9 0;
#X connect 3 0 1 0;
#X connect 4 0 1 0;
#X connect 5 0 1 0;
#X connect 6 0 1 0;
#X connect 7 0 1 0;
#X connect 8 0 1 0;
#X connect 9 0 1 0;
#X restore 195 134 pd digital_messages;
There is another thing that I just noticed about the pduino test-patch.
The mode buttons are suggesting that you can turn of all functions by selecting "NONE". This is not true! These buttons have absolutely NO function and should be replaced with the correct commands. While doing this the option "Input-PullUp" should be added.
The Arduino generally defaults to input. Selecting "NONE" at the current state leaves it at the last selected option.
The analogue ins can actually be turned off by the command "analogIns X 0" (where the X stands for the pin number 0-5). The digital input pins need the command "digitalIns X 0" (where the X stands for the pin number 0-11).
I also think that there should be a separate block for digital an analogue (with the available options only) as beginners might think you could select "analog" as an option for digital pins, and so on...
Ingo
BTW with the fix I just submitted in my last email all digital ins now work flawlessly after testing for several hours. I am amazed that hardly anybody noticed this bug for over two years!
Hi Ingo
Thanks for all your reports.
Sorry that my replies sometimes only come a few days later. I'm still willing to fix any outstanding issues, but not very often I find time to get an arduino into my hands. Since sometimes I have troubles following you and keeping your several bug reports apart from each other, I'd suggest to stick with [arduino] bugs and let the documentation aspect aside for a while.
I _think_ I finally understand your problem with the digital ins. I can't currently test or reproduce the problem, since I don't have an arduino at hand, but from reading the code, I think I see what could go wrong.
On certain incoming commands of [pd digital messages], the [pd debytemask] *) subpatch generates more than one message, but only the last one is finally sent to the outlet, because it only fires, when the left inlet of [+ ] is triggered, which is under all circumstances only triggered once after all the [pd debytemask] messages have fired. Actually, the order should be inversed, so that all messages from [pd debytemask] go the _left_ inlet of [+ ], and the summand is sent the _right_ inlet before. This is what I did in the patch you find attached.
I rather have my version going into [arduino], since it is much less code than yours. From what I can tell, they both produce similar output, but as I said, I haven't had the chance to test it in real-world circumstances with a real arduino. So, please test and report back.
I guess the main reason nobody (including me) has noticed this bug yet, is that you won't trigger it, if you only test one digital in at once. Changing the state of only one input at a time makes it seem, that all inputs work correctly. Only when changing states of several inputs at the same time, you will receive only a single digital messages, which is obviously wrong.
I'm happy now that you kept bugging about this. It took me a while to (hopefully) understand the problem. Thanks for your persistence.
*) There is no [debytemask] abstraction anymore in the git version of [arduino]. I replaced it by a subpatch.
Roman
On Sun, 2011-09-11 at 06:20 +0200, Ingo wrote:
There is another thing that I just noticed about the pduino test-patch.
The mode buttons are suggesting that you can turn of all functions by selecting "NONE". This is not true! These buttons have absolutely NO function and should be replaced with the correct commands. While doing this the option "Input-PullUp" should be added.
The Arduino generally defaults to input. Selecting "NONE" at the current state leaves it at the last selected option.
The analogue ins can actually be turned off by the command "analogIns X 0" (where the X stands for the pin number 0-5). The digital input pins need the command "digitalIns X 0" (where the X stands for the pin number 0-11).
I also think that there should be a separate block for digital an analogue (with the available options only) as beginners might think you could select "analog" as an option for digital pins, and so on...
Ingo
BTW with the fix I just submitted in my last email all digital ins now work flawlessly after testing for several hours. I am amazed that hardly anybody noticed is bug for over two years!
As Ingo pointed out, one bug is that [mapping/debytemask] has the [change] object for each outlet. So probably the way to fix this is to make a bunch of [mapping/debytemask] objects for all the possible digital ports.
[arduino] should only output on change of digital input, and it receives the digital information one byte/port at a time, i.e. 8 pins. Another approach would be to have an array of all of the previous values which are then compared to the current before outputting.
.hc
On Wed, 2011-09-14 at 11:24 +0200, Roman Haefeli wrote:
Hi Ingo
Thanks for all your reports.
Sorry that my replies sometimes only come a few days later. I'm still willing to fix any outstanding issues, but not very often I find time to get an arduino into my hands. Since sometimes I have troubles following you and keeping your several bug reports apart from each other, I'd suggest to stick with [arduino] bugs and let the documentation aspect aside for a while.
I _think_ I finally understand your problem with the digital ins. I can't currently test or reproduce the problem, since I don't have an arduino at hand, but from reading the code, I think I see what could go wrong.
On certain incoming commands of [pd digital messages], the [pd debytemask] *) subpatch generates more than one message, but only the last one is finally sent to the outlet, because it only fires, when the left inlet of [+ ] is triggered, which is under all circumstances only triggered once after all the [pd debytemask] messages have fired. Actually, the order should be inversed, so that all messages from [pd debytemask] go the _left_ inlet of [+ ], and the summand is sent the _right_ inlet before. This is what I did in the patch you find attached.
I rather have my version going into [arduino], since it is much less code than yours. From what I can tell, they both produce similar output, but as I said, I haven't had the chance to test it in real-world circumstances with a real arduino. So, please test and report back.
I guess the main reason nobody (including me) has noticed this bug yet, is that you won't trigger it, if you only test one digital in at once. Changing the state of only one input at a time makes it seem, that all inputs work correctly. Only when changing states of several inputs at the same time, you will receive only a single digital messages, which is obviously wrong.
I'm happy now that you kept bugging about this. It took me a while to (hopefully) understand the problem. Thanks for your persistence.
*) There is no [debytemask] abstraction anymore in the git version of [arduino]. I replaced it by a subpatch.
Roman
On Sun, 2011-09-11 at 06:20 +0200, Ingo wrote:
There is another thing that I just noticed about the pduino test-patch.
The mode buttons are suggesting that you can turn of all functions by selecting "NONE". This is not true! These buttons have absolutely NO function and should be replaced with the correct commands. While doing this the option "Input-PullUp" should be added.
The Arduino generally defaults to input. Selecting "NONE" at the current state leaves it at the last selected option.
The analogue ins can actually be turned off by the command "analogIns X 0" (where the X stands for the pin number 0-5). The digital input pins need the command "digitalIns X 0" (where the X stands for the pin number 0-11).
I also think that there should be a separate block for digital an analogue (with the available options only) as beginners might think you could select "analog" as an option for digital pins, and so on...
Ingo
BTW with the fix I just submitted in my last email all digital ins now work flawlessly after testing for several hours. I am amazed that hardly anybody noticed is bug for over two years!
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list