Serial library weirdness

I’ve been working on a library to control my Vaddio HD-20 camera via openFrameworks

It’s basically an implementation of the protocol found at the end of this document:

You send these hex commands to both request information (the pan/tilt/zoom/focus/etc) or simply carry out a task (start panning to the left). It’s very similar (but not identical) to the VISCA protocol, so I’ve been lifting some code from http://sourceforge.net/projects/libvisca/

The good news is that it works great on my Macbook Pro! But I have an old Mac Pro tower, and when I try to use it on that machine, it starts dropping commands. It seems to garble up the serial messages. It’s especially bad at dealing with multiple commands in succession.

So my question is, has anyone experienced this before: serial communication working on one platform but not on another?

Definitely. But I’ve only run into problems due to bad serial drivers … for example for the USB->RS232 pl2303 chips etc.

If you want to try out a different serial library with more configuration options, check out ofxSerial. It could be a flow control or speed issue or something I suppose …

That is definitely pretty weird. Normally serial is pretty robust. And you know that for sure it is sending out crap? Usually this could be a baud rate mis match from the sending UART to the receiving UART. You don’t have any flow control, so it wouldn’t be that. It could possibly be wiring or connectors? Did you change any adapters or anything between the two machines? It could also be a driver issue with the serial usb adapter you have and the OS.

One quick test you could do is jump pins 2 and 3 on the serial to usb adapter and do a cout of anything that comes in. So when you start sending commands out, it will echo back to your app and you can verify its actually sending something out at 9600 baud and reading it back at 9600 baud. Guess that would give you an idea if its the adapter/driver/os side of things or something wiring wise.