You're going to have to do some syncronization first. Because the instrument is always sending out 10 bytes and there's no termination character, specifying a 10 byte read might get you part of one message and another part of a second message. You'll have to read some number of bytess and determine how much of a complete message you've received. So, if you read 10 bytes and get 3 bytes of message 1 and 7 bytes of message 2, the next read you do, read 3 bytes and after that, you should be synched to the message stream and a constant 10 byte read will work. This all depends on you knowing where in the message you are. You need to have some sort of format you can depend on. A character that precedes the data or a fixed numeric format such as some fixed number of digits, a decimal point, followed by another fixed number of digits.