Closed cturvey closed 2 weeks ago
Here's an offending NAV-PVT packet for context, I don't think RTKLIB is implicitly using it. I've use on occasion to establish ECEF location for Rover RINEX antenna estimate in header. It might be flagging the drop-out of PVT reporting, I'm observing a 4 second absence of the message immediately prior.
---UBX-----------------------------------------------------------------------
0000 : B5 62 01 07 5C 00 50 66-9B 08 E8 07 0A 07 10 06 .b..\.Pf........
0010 : 18 B7 06 00 00 00 F3 DD-03 00 03 01 EA 8A 08 3F ...............? <<< probably this 0x8A should be interpreted as 0x0A
0020 : 43 06 4F 2E A3 1C 67 02-0A 00 2B 4A 09 00 0A 07 C.O...g...+J....
0030 : 00 00 3B 0B 00 00 00 00-00 00 FD FF FF FF FA FF ..;.............
0040 : FF FF 03 00 00 00 25 77-C3 01 93 00 00 00 28 1F ......%w......(.
0050 : 44 00 B3 00 00 00 12 19-26 3B 00 00 00 00 00 00 D.......&;......
0060 : 00 00 B8 24 ...$
01 07 NAV-PVT - B8 24 : B8 24 100
PVT DELTA TOW 4000 ??
NAV-PVT 144402000 253427 6 3 01 EA
105070344 480456271 655975 608811 1802 2875
0 -3 -6 3 29587237 147 4464424
1.79 138
TOW:144402.000253427 1 16:06:42.000
Valid Fix
PSM is not active
3D Fix
!!! NAV PVT USED HIGH BIT SET !!!
LLH: 48.0456271 10.5070344 655.975 608.811 47.164
ACC: 3.39 HACC: 1.80 VACC: 2.88 PDOP: 1.79 USED: 10
NEO-M8P-2 EXT CORE 3.01 (db0c89) ROM BASE 3.01 (107888) FWVER=HPG 1.40REF PROTVER=20.30
Honestly, the more I look at this the more suspicious I'm getting with the SparkFun Artemis OpenLog implementation, or I2C transport.
The NEO-M8P firmware doesn't look to use these high bits, but there is a persistent presence in the OP's data logging. Like a timing, or pull-up issue on the I2C bus, or how the transfer deblocks over the bus. I can't currently explain the Fletcher checksum's being good, unless it's pattern specific, and it's dropping all the packets with bad checksums from the logging entirely. Which might be the case as the UBX-RXM-RAWX packets are relatively large, and the OP's complaining about packet loss too, as well as the inability to process the logged data.
@PaulZC
[Edit:OpenLog Artemis GNSS Data Logging links removed for clarity and reduced confusion]
There are other indications in the stream of data corruption, in the high bit. The svid numbers have occasional high bit set, the svid for system GPS having the high bit set, the sigid having the high bit set, the gnss value having the high bit set. But not a single CRC error, and the CRC code does appear capable of detection this, it is working when high bit errors are injected, so it would not appear to be data corruption in the pipeline unless the data is being re-encoded.
Is there a vendor that is responsive to RTKLib level issues, and more so on what might be a legacy product? Shall be interesting to see if PocketSDR can be a substitute.
Is there a vendor that is responsive to RTKLib level issues, and more so on what might be a legacy product?
Why would any be responsive? I'm not aware any selling off the back of RTKLIB The M9, M10 and F10 all have viability if there's some quantifiable value to implementing them. Similarly fractional CNO can be recovered.
CRC code does appear capable of detection this
The Fletcher sum doesn't really have the rigor of a CRC, I didn't try flipping bits to confirm, but I am suspicious that only packets with a viable sum are logged, my tools didn't flag any errors in the two exemplar files, but would also explain the missing packets. The speed of the logger could be helped significantly if aligned 8KB or 32KB were flushed instead of the tetris method employed. Basically reading the available() bytes on the receiver's I2C interface, and dumping to the file in a more direct / minimal step process rather than parsing / de-muxing packets. This would make a lot more sense, especially at 5, 8 or 10 Hz rates, when it really just needs to fire-hose the data on to the card.
Hi Clive (@cturvey ),
Please delete the two links in your post above. I believe they're not relevant and will just confuse anyone following them.
I believe the user is using the SparkFun OpenLog_Artemis_GNSS_Logger firmware. I have opened an issue here:
https://github.com/sparkfun/OpenLog_Artemis_GNSS_Logger/issues/34
Best, Paul
Hi Tim,
Ok, so had a report this morning of RINEX generation failures, where it appeared the Count in RXM-RAWX and Used in NAV-PVT had the high order bit (7) set. Not sure which NEO-M8P HPG firmware this is, but there were several anomalies in the file provided, whilst checksums, etc, suggested they were intact, and from the device. The NAV-PVT is probably not an issue for you, I need to check if any other messages are impacted
https://portal.u-blox.com/s/question/0D5Oj00000Ux8tRKAR/conversion-of-ubx-to-rinex-in-rtklib-fails-sometimes-only-converts-a-few-samples-rawx-and-sfrbx-messages-are-recorded
https://github.com/rtklibexplorer/RTKLIB/blob/16ea4949e31c45661a869f5aa471b378b5dad7f1/src/rcv/ublox.c#L373 nmeas=U1(p+11); / numMeas /
nmeas &= 0x7F; // mask the satellite count, pending an understanding of what bit 7 communicates
End user UBX log file https://portal.u-blox.com/s/contentdocument/069Oj00000Dh4FNIAZ
My analysis / RINEX, this is a .RAR file, uploaded as a .DOCX so uBlox forum would host https://portal.u-blox.com/s/contentdocument/069Oj00000DhBqRIAV
I'm going to run this to ground over at uBlox
Regards, -Clive