-
Notifications
You must be signed in to change notification settings - Fork 104
Best practices: Raw data logging rates #48
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
NRCan Ultra-rapid PPP results:
|
Hi @PaulZC, I have decided not to use the However, I'd still curious if you have any thoughts on what could be causing the large gaps in logged data. Could this be a bug? Cheers, |
I wonder if this is something to do with low power modes? |
Hi Paul, It could be a possibility that the receiver is trying to save power between measurements. The Interface Description does note for UBX-CFG-RATE:
It could be that a power-saving mode is enabled by default that I'm not aware of, which only activates with a sufficiently slow logging rate. Regarding commands issued to the receiver, with the exception of
I'll try to look at the power save modes in more detail when I have some time. I'll keep this issue open for now in case other users may be looking to do something similar! Cheers, |
Many thanks Adam, |
Hi @PaulZC, I'm starting to look into this issue again with version 2.0.17 of the library. I'm hoping you can quickly clarify: when running the example "Example25_MeasurementAndNavigationRate" with a measurement rate of 5000 ms and navigation ratio of 12, should we be seeing outputs being produced every second? I remember this being a bit confusing. The Cheers,
|
Hi Adam, Running Example25 unmodified on a SparkFun ATmega328P RedBoard and a ZED-F9P GPS RTK2 breakout, I get PVT updates every 60 seconds: Best guess, something is falling over in your case and the module is resetting back to its default 1Hz? The 9.94s interval, followed by 0.48s and 0.51s, is a little suspicious. Maybe try going back to the factory defaults? Best wishes, |
Hi Paul, Very strange indeed! I'm using the same test setup as listed above. All of the components are new and the only change is that the I2C jumpers were cut. I uncommented the factory reset code in the example but now it seems like no data is received. Changing to a measurement interval of 1000 ms and navigation ratio of 1 works without issue:
However, changing back to 5000 ms / 12 does not seem to work:
I can see the PPS LED blinking every second but no position updates after 15 minutes. I enabled debugging and took a peek at what was happening. It looks like after a bunch of timeouts, the I2C falls apart and starts an endless loop.
Cheers, |
Hi Adam, Which version of Apollo3 (Artemis) are you using? Thanks, |
Hi Paul, Currently using v1.2.3. I know a lot of work has been done with v2.x since this summer. Do you reckon it's safe to make the switch yet? Cheers, |
Hi Adam, Apollo3 v2.1.1 has a 'feature' which makes communication with the u-blox modules problematic. I just wanted to make sure you weren't using that. If you are going to upgrade, go with v2.1.0 for now - until v2.2.0 is released. Here's what I get with:
A little weirdness, but only a little. If I add:
after:
I get: So, right now, I can't replicate what you're seeing... Cheers, |
Hi Paul, Thanks for checking on your end. Our setup is almost identical except for the hardware version of the ZED-F9P. I tried incrementally increasing the navigation ratio while keeping the measurement rate constant at 5000 ms. It looks like it begins to fail at a ratio of 3 or higher.
I switched to an entirely different MMDLCB and Artemis Processor and also to the same u-blox GPS-RTK2 ZED-F9P board (not SMA) and ended up with the same
Very strange! The only common denominators are the GNSS antenna and my Apollo3 Core and u-blox library files. Cheers, |
Hi Adam, This is a head-scratcher... I think most of what you're seeing in terms of I see:
Also, please try running Example21_ModuleInfo. I'm curious to see what firmware version (FWVER) your modules have on them. Mine is: Thanks! |
Hi Paul, Looks like my receivers are running firmware versions 1.12 (SparkFun GPS-RTK-SMA) and 1.10 (SparkFun GPS-RTK2). I can certainly try upgrading them. I tried running Example25_MeasurementAndNavigationRate with a SparkFun Qwiic Micro and observed the same behaviour with a measurement rate of 5000 ms and navigation ratio of 12. For some reasons it falls apart and goes to 1 second.
I opened up a brand new SparkFun GPS-RTK-SMA and ran the same test (I2C pull-ups not cut) and had interesting results. It actually worked at the proper interval for two minutes before failing back to 1 s.
This is super bizarre! I've tested 3 difference receivers with 3 different microcontrollers (Artemis & SAMD21) and multiple Qwiic cables. At first I was thinking it may have been hardware related, but I just can't see that being the case now. Do you think the firmware could be to blame? Cheers, |
Hi Paul, I've upgraded all of my receivers to 1.13 but it didn't make a noticeable difference. However, I think I may be on to something. It appears the issue may possibly be power related... Can I ask how were you powering your MMDLCB and ZED-F9P? I've noticed that when I connect a separate 5V USB battery to the ZED-F9P, the output of Example25_MeasurementAndNavigationRate is as expected: USB C + 4.2V LiPo + 5V USB Battery
Removing the USB battery and things go back to being broken, even with a 4.2 V LiPo powering the MMDLCB. USB C + 4.2V LiPo
Removing the 4.2V LiPo and adding back the 5V USB battery and things work as expected! USB C + 5V USB Battery
Cheers, |
Hi Adam, Ah ha! Now that is starting to look like a smoking gun... I'm powering my boards via USB from my desktop computer. I am plugged in to an SS USB-C port. I don't have a LiPo battery attached. Peak current draw on the ZED-F9P should only be 130mA or so. Plus a little more for your active antenna. You shouldn't be getting anywhere near a current that would cause a power brown-out. But your tests do seem to indicate that's what's happening. The 2A resettable fuse on the MMDLCB prevents the board from drawing too much current from USB. If you suspect the fuse, you can solder the BYP jumper to bypass it. Have a good look at your MEAS and MEAS_BATT jumpers. They're unlikely to be the cause of what you're seeing, but do check them. The Qwiic port has its own voltage regulator. If you have a 'scope available, try monitoring the QWIIC_PWR and check for any voltage dips when you turn everything on. If you have an alternate antenna, try that. Just to rule out your TOP106 drawing too much current and causing a brown-out. Good luck with the detective work! |
Hi Paul, I believe I'm finally ready to close this issue! After sorting out the power issues (it seems the order in which you provide power to the MMDLCB/ZED-F9P when also connecting to serial via USB-C seems to be really finicky and I haven't 100% figured it out), I started to run some additional tests with various measurement and navigation rates. I'm happy to report that I did not experience the same issues as the original tests, where the receiver would seem to consistently lose its signal lock. I ran several tests and all were successful. Please see below for two examples, including the original test conditions. Test 1
Test 2
It's difficult to say what may have caused initial issue, but I'm glad that for now it seems to have been resolved. I'll close this issue for the time being but will certainly open it back up again if I encounter the same issue in future RAWX/SFRBX logging. I've also been in touch with Clive from the u-blox Support portal and he's advised in terms of best practice, if for example I wanted to log RAWX data at 5 seconds, I should use a measurement rate of 5000 ms and a navigation rate of 1. He also wasn't fond of the idea of a 30 second logging interval for PPP post-processing, so I suspect for the foreseeable future I'll continue to log at 1 Hz. Relevant question: Cheers, |
Hi Adam, Thanks for the update. Glad that's working for you. All the best, |
Hi Paul, Rereading #70, do you think changes to UBX_RXM_RAWX_MAX_BLOCKS would have made a difference with the gaps in the data originally observed in this issue? With only GPS+GLONASS enabled, I doubt that I was ever pushing the limit, especially with a partially obstructed sky view. Might have to chalk this one up to a random ephemeral bug! Cheers, |
Hi Adam, You would only see data loss if the number of blocks in a single RAWX message exceeded UBX_RXM_RAWX_MAX_BLOCKS - originally 64, now 92. A useful question to answer is "with only GPS+GLONASS enabled, do the RAWX messages only contain blocks from GPS+GLONASS"? I'll have a look at that when I get some free time. A simple test would be to run the UBX Integrity Checker on your data. It will report the longest UBX message payload length. If that is close or equal to 2064 bytes (16 + 32 * 64), then data loss might have happened. Cheers, |
Hi Paul,
Following-up on our conversation regarding best practices for changing the raw data logging rates, I wanted to share a couple of quick results from a logging test today.
Test setup:
Configuration:
Test 1:
Code:
Results:
Test 2:
Code:
Results:
Discussion
I'll update this issue later on!
Cheers,
Adam
The text was updated successfully, but these errors were encountered: