I am using a ublox GPS for a data acquisition application. The device is outputting NMEA on a virtual COM port.
The NMEA output works just fine. But between the NMEA messages strange characters are interspersed. See screenshot below from Realterm with setting "Ascii".
Can somebody tell me what this is? And ideally what commands I would need to send to the device to disable this output?
You should disable the UBX binary protocol. The NMEA and UBX messages are interleaved on the same port. This can be done by sending UBX-CFG-PRT message disabling the UBX output protocol on your port. You can use the handy u-center application avaiable from u-blox website to perfrom this task.
An alternative is to reflash the device or remove the backup battery. It should default back to NMEA only.
Related
I am monitoring USB traffic with Wireshark in the interface XHC2. However, the payload of all USB packets is all-zero. The packet's length is correct, but the packet's payload is all zero. It does not matter which device, which packet or whichever. It is always zero. Obviously, this is not the reality, since the devices work properly and lot of information is displayed via lsusb.
My guess is that the XHC interface is setting the payload to 0 before delivering to upper layers, but I do not know if it is intentionally, a bug, kernel issue, my fault or something related with Wireshark.
I also tried tcpdump -i XHC2 and the saved pcap file is the same.
Additional info:
Mac Mini M1 with Big Sur
Wireshark ARM 3.6
SIP disabled
It's unlikely to be related to Wireshark, given that it happened when you captured with tcpdump as well.
You should file an issue on Apple's Feedback Assistant.
I'm having similar difficulties to the gentleman in this post:
ublox GPS strange characters interspersed with NMEA output
I am using u-blox on a Dell Rugged 7212 tablet to output NMEA to a virtual com port. I am getting GPS coordinates but I'm also getting a strange line of characters in the middle of the output. Any ideas on what could be causing this?
https://i.stack.imgur.com/IKOAb.jpg
You can try replacing the installed driver with the u-blox VCP device driver for Windows Download from here. Driver binaries are at the bottom of the page.
This driver creates 2 VCP Virtual COM Ports and publishes the NMEA strings. Beware, this VCP driver does not emulate/work as a Hardware Serialport. So the asynchronous callbacks etc. do not work. You need to busy poll to read the port. After installation of the driver, you can test the driver using Putty or an application like VisualGps to make sure the driver is working the way you expect it to work.
We're trying to read data from a digital yacht AISnet base station on a linux box. From what I've read, Digital Yacht has drivers for both osx and windows (but not linux for this unit) and their job is to create a virtual com port so that the device can send an NMEA 1083 stream as if it's doing RS-232 serial communication. We are OK with parsing the NMEA data ourselves, but I don't know much about drivers. Wondering if anyone has any experience getting NMEA data from a digital yacht or similar device in to linux? Is the USB to virtual RS-232 something common for other devices or something that would be practical to make ourselves? Any pointers much appreciated.
Answering myself: use the GPSD gps daemon, as GPS uses the same protocol as AIS (something I didn't know when I posted the initial question and was first dipping into AIS). GPSD handles listening to the stream of raw NMEA data on the device and provides a high level interface to get the data already parsed to JSON. It was very easy to get going on linux and supposedly also runs on OSX though I haven't tried it.
If using Python, there is also a client library for working with the GPSD stream to making AIS listening applications.
GPSD: http://www.catb.org/gpsd/
https://github.com/wadda/gps3/blob/master/examples/agegps3.py
I have a text file containing NMEA (GPS) data that I' like to replay to a COM port so the application I'm building can read it.
I considered writing a quick C# console app to loop over the file but I don't have any COM ports. This appraoch would require a virtual COM port and I'm not sure what challenges that would entail.
I also looked at GPSGate. Nice product but it doesn't seem to replay NMEA files over one of its virtual com ports.
How can I stream an existing text file to simulate GPS over a serial connection? I prefer a serial port, rather than mocking, to avoid reworking the application I'm developing and to facilitate use with other applications that use GPS over serial ports for which we don't have source code.
Update 1 - I downloaded a trial version of Virtual Serial Port Driver by Eltima and within a few minutes had some C# code writing to a serial port and appearing in Termite. Yes, it works but $100 seems excessive for what I'm trying to accomplish. Open source or free commercial would be preferred.
gpsfake is part of the gpsd project
gpsfake is a test harness for gpsd and its clients. It opens a pty (pseudo-TTY), launches a gpsd instance that thinks the slave side of the pty is its GPS device, and repeatedly feeds the contents of one or more test logfiles through the master side to the GPS. If there are multiple logfiles, sentences from them are interleaved in the order the files are specified.
You can port the output to a virtual serial via /usr/bin/gpspipe -r | socat - PTY,link=/tmp/gpsd.pty,raw using gpspipe, also from the gpsd project, to be picked up however you choose.
It is POSIX compliant.
You need a virtual serial port such as:
http://sourceforge.net/projects/com0com/
and a hyper terminal replacement.. in XP and earlier it was very easy with the shipped copy of hyperterminal as mentioned bellow..
You set up a virtual null modem connection
Null modem has a COM4 to COM5 Connection established as Null modem std gps is 4800Baud
Hyperterminal to COM5
Application to COM4
Copy paste your NMEA Values into Hyperterminal this isn't 1Hz like GPS though.. to enable 1Hz(or 1 line per second) you will need to find a different application than hyperterminal to send the messages at 1 second increments.
I would like to know if there is a program for analyzing traffic through USB. For example, I would like to know what files are transmitted from the computer to the device at the moment, what he does with the device. I need it to debug device, not driver! Is there such a program?
I think you can use this site as a starting point and inspect the different methods in detail on your own.
wireshark wiki