-
Notifications
You must be signed in to change notification settings - Fork 53
checksum errors in ubx file #30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
My guess is the UART RX task buffer is getting overrun periodically. I've done a few things to try to replicate:
Now I can log over USB what should be all the data generated by the ZED on the UART port and compare the three logs:
Comparing the USB log (captured via u-center) and the log file from SD card I get the following diff: I'm using Beyond Compare which is just an amazing tool. The highlighted red on the left shows how often and repeating the errors are. The SW Map logs match the UART logs so SPP seems to be performing well. The F9PSerialReadTask() seems to be dropping characters. |
I did some tests where I removed the ESP32 from the equation and recorded the UART TX to a terminal and USB via u-center and the problem persists. This would seem to indicate that the UART is putting out slightly different data from USB which is a bigger u-blox firmware issue. I'm still determining if it is related to the number of messages, or fix rate, or a combination there of. |
Hmmm..interesting... I don't know if I'll find some free time to do this soon. |
Another test today NMEA only at 4 Hz (default settings)
Analyse with JOSM
Analyse with Beyond Compare
This analyse seem to show that the NMEA messages sent over USB and UART are a bit different. |
Yep, you have to be really careful to configure the UART and USB messages to be identical so that the logs match. Additionally, if UBX data or RTCM is turned on Beyond Compare has problems aligning the logs. I often have to align the logs by going into the shortest log, finding a unique two sentences, and then removing all the garbage data above those points. It looks like this: You can see on the left that the RMC messages appears on line 83905(!) vs line 1 on the right. Deleting everything above I get the following: Then importing Beyond Compare has an easier time identifying where the two files align: You can see in the above image we have perfect byte-wise recording of the NMEA data at 4Hz. The log on the left is 'teraterm'. It is the log of the UART data coming directly out of the ZED. I wanted to prove the ESP32 is correctly recording everything it receives and it appears to do a very good job. Similarly if we compare the UART data to the USB data, we see (below) a perfect capture. Side note: Turning on all 67 messages on both UART and USB works until you power cycle the ZED at which time it goes into a very bad 'slow PPS' death state. where the PSS LED blinks a slow 0.5Hz long blink. The ZED fails to enumerate over USB. It is recoverable by running a factory default reset over I2C but it's a huge pain programming and then reprogramming the ESP. I'm going to return to trying to replicate the message sets you two report and seem to regularly use. |
@Stefal - Please just drag/drop your settings file into the github comment window and it will upload it. Otherwise, I'm likely to miss an =1 in my setup. Here's my settings: SFE_Surveyor_Settings.txt @pyrog - I added a 'Duplicate UART messages to USB' in the test menu just so I didn't have to use u-center to set all of Stefal's messages manually. It's in the release candidate branch and will be in the next RC. Above: Ok, after alignment, I get error-free recording between USB and SD for a minute. I'll turn on NTRIP and run a bit longer. Above: 1 minute no NTRIP then 3 minutes of NTRIP and RTK lock. Huh. It matches what you report. I'll see what I can do. Thanks for all your work and help you two! Please keep it coming. I really appreciate it. |
How do you do that? In practice, I need messages over BlueTooth or USB, and logging to SD card, but reliably.
I do that directly in Beyond Compare 😃
Unfortunately, the "JOSM test" prove that data are corrupted. EDIT: I just see quickly another post where you answer this question 😎 It's a bit late in the evening. I'll read carefully it tomorrow. |
No. Modifying the settings on RTK Surveyor changes only the UART1 on the ZED. The USB, UART2, and I2C ports are left as they were. Therefor, you have to use u-center (or the test menu feature) to setup the USB messages to be the same as the UART1 enabled messages.
Hmm. How do you do that?
I disagree. I don't know or trust JSOM. It could be parsing sentences wrong. Similarly, if the ZED is the problem, there is nothing I will be able to do to make JOSM happy. My goal is to give you identical output on the SD as the ZED puts across the USB port. I suspect my code is the issue (and not u-blox's firmware on the ZED) but there is always the chance! |
Just search a NMEA sentence on the right pane, search the same on the left pane.
As an advanced OpenStreetMap contributor, I know it pretty well and I could also check the source code if necessary. JOSM report no errors with a NMEA record from the USB output, and some from the SD card.
Mine too 😙
Yes. The ZED firmware have at least one issue with RTCM over UART2 |
Ok, it's looking pretty good. I have seen a few errors but far fewer than before. Please give RTK_Surveyor_Firmware_v14RC_June15.zip a try. Notes to my future self: The TX SPP buffer didn't matter it was the task priority. |
Select hidden test menu
Select 3 and 4 Test
|
Yay! That's good to hear. @Stefal - Please give the latest RC a try. I'll close this issue for now but please feel free to open another if you see any more problems. |
I made 2 quick tests, and I still have some checksum errors: Just to be sure, I made a ubx to kml convertion with u-center, and I have the same result as my script. I'll make more tests tomorrow with a unused SD card |
It seems better with my new µSD Card. Only 5 checksum errors for a 45mn log. |
Subject of the issue
I still have a lot of checksum errors when parsing the ubx file.
Your workbench
Steps to reproduce
Log ubx messages:
Start your log without any connection to a base, then after a few minutes, connect the RTK Surveyor to a local base station
Expected behavior
We should be able to convert the ubx file without seeing any checksum error
Actual behavior
I see no checksum error as long as there is no correction from a local base station, but many checksum errors as soon as the RTK Surveyor is connected to a local base station.
In the snapshot, the checksum errors started a few seconds before I got a fix (point are green)
The text was updated successfully, but these errors were encountered: