Motion Capture System

Just wondering... are you also monitoring the serial stream coming back for prompts and error messages from the device?

Edit:

P.S. I don't know how the serial communication works exactly, but the Arduino docs say that the incoming serial buffer is 128 bytes in size (Serial.available() - Arduino Reference), so if your code isn't reading these bytes (as it appears it's not), maybe the buffer is filling up and setting CTS or whatever low so that the USB thingie can't send its prompts back, and things just lock up? I see from the Vinculum firmware docs that the device sends back a 5-character prompt for each command ("D:>" plus CR).

Maybe just try clearing out the buffer each time with:

if (Serial.available() > 0) {
int i, j ;
i = Serial.available() ;
while (i--)
j = Serial.read() ;
}

Just a wild guess!