[PD] Another arduino weirdness
Matteo Sisti Sette
matteosistisette at gmail.com
Wed Jun 15 01:22:33 CEST 2011
On 06/15/2011 12:57 AM, Martin Peach wrote:
>> I've found out that if I send the arduino the "version" message, then
>> these messages _are_ received (also in Windows), while when the Arduino
>> send them just after connecting, they are lost in Windows.
>>
>> So I think there must be an issue either in the Windows version of
>> [comport] or in the Windows drivers, that if a message is received too
>> soon after connecting, it is lost.
>>
>>
>
> Yes I've run into that with arduino on MacOSX; the arduino bootloader is
> active for about 5 seconds after power-up, or whenever the port is
> opened if you are powering it via USB, so you have to be careful not to
> send anything through the serial port in the first 5 seconds or the
> arduino will interpret it as an incoming program.
>
But I'm talking about the opposite direction. Messages sent from the
Arduino to the computer immediately after the connection is established,
1. I connect the arduino physically, and wait several seconds, so it is
already powered on and running StandardFirmata
2. In Pd I send the message "open 0" to the [arduino] object
In linux:
[comport]'s left outlet outputs some data coming from the arduino, which
happen to be the messages telling the firmware version and such
In windows:
[comport]'s left outlet doesn't output anything.
So my guess is that the Arduino board, as soon as the connection is
established from Pd, immediately sends data. In Linux this data is
received and output by [comport], in Windows it is lost.
I'm talking about data sent from Arduino to the computer, not viceversa.
My guess may be entirely wrong, of course. It's just the only
explanation I can think of.
Note that these messages that the arduino sends (immediately after
opening the connection through comport) are NOT being triggered by
anything being sent by the [arduino] abstraction to the arduino board
through [comport].
A possible explanation, now that I think about it, may be that the
Arduino board does not send the firmware version every time a connection
is established, but every time it is reset, and for some reason (due to
differences in the way drivers work) establishing the connection from Pd
in Limux triggers an Arduino reset while establishing the connection
from Pd in Windows does not.
Is it so?
Ohhhhhhhh, it may be relevant (though I don't directly see how) that
when I test on Windows I do it through a virtual machine (on a linux
host which is the one on which i test it in Linux).
More information about the Pd-list
mailing list