I am trying to set up a novatel gps receiver to work in Ubuntu 8.04 using the usbserial driver. I have have the vendor id and product id and am using the commands :
mknod /dev/ttyUSB0 c 188 0
sudo modprobe usbserial vendor=#### product=####
to set up the usb port on ttyUSB0
This works fairly well and I can communicate with the device via hyperterminal and can see ASCII messages come over. When I switch to have binary messages sent, I see that 0x13 is stripped from the message. The software version number is in every header and it has 0x13 in it which does not show up in the output of the port. Every message comes out 1 byte shorter than it should be.
I verified that the receiver was outputting the message correctly on a windows machine and saw the 0x13 byte where it should be.
Looking at the ASCII tables, 0x13 is a hardware control XOFF byte. Are there any settings in the usbserial driver that I can toggle to prevent it from stripping this byte out?
Hmmm, sounds like the old CR LF issues. I wonder are you adjusting the tty when you open it (to make sure you are in raw mode so there are no CR LF -> LF conversions)?