Arduino sending data with vvvv gamma via SerialPort

Hi together, I am trying to get Arduino talking via SerialPort to vvvv gamma, but somehow I don’t achieve to constantly receive/read the data. In the Serial Monitor, the random integer I want to send is constantly updated/printed, but when trying to receive it in vvvv gamma, nothing is read. Also the Node (SerialPort) is not “on data” (but Serial Connection is open).

Fun fact: it works once for a moment when I had the Serial Monitor from Arduino IDE open before, but then stops…

Am I missin something? Is “Serial.print(123);” the correct command to send Data from Arduino to the SerialPort Node?

Thanks for any hints/help on this.

P.S.: I do not want to use Firmata in this case.

230628_arduino_serialport

please try this instead for a test. note: the SerialPort4 node is experimental:

grafik

It’s showing “Subject<MutableArraySegment>” but I do not receive the string

230628_arduino_serialport4

Additional info: i tried the same on another computer with Windows11, where I do not receive the “Subject” but also nothing else (stays empty), whereas the serial monitor in Arduino IDE is working…

Thanks @joreg thx to @robotanton we found out, that “Dtr Enabled”-Pin must be set to true (which is false by default). If so, it works with SerialPort and SerialPort4.

With “DTR enabled”, the SerialPort4 with StringReceiver does a good job. But I am not able to receive all messages, which most probably is because the “StringReceiver[IO]” that it only returns the last string in the current frame. So if multiple strings are sent/received in one frame, it will not show up.

I also tried working with “StringReceiver[Reactive]” to work around this, but failed to read the full spread of the observable. Is it possible to flatten an observable, or to transform it to a spread?

Thanks for any further hints.

yes, the reactive one is the one to be used here. and in general there are 3 ways to receive reactive events.

1 Like