-
Notifications
You must be signed in to change notification settings - Fork 2
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
uBlox Dynamic Model Setting? #3
Comments
I missed that, thanks. Didn't know that the default mode doesn't support higher altitudes. In the free time I will implement that in the firmware. |
Published a new release with experimental support for this function. It wasn't tested right now, because I don't have an SDR capable of spoofing the GPS for testing the higher altitudes. We will have to probably wait for a real HAB flight to confirm that it's working. The source code of the function is based on the RS41HUP, so I hope it's alright, becasue as mentioned somewhere else, the new GPS doesn't have a public, complete datasheet. |
The protocol specification will match this: https://content.u-blox.com/sites/default/files/u-blox-M10-SPG-5.10_InterfaceDescription_UBX-21035062.pdf |
From a brief look over that protocol specification, it looks like the configuration method for the uBlox chipsets has changed significantly with the 10-series chipsets, and the CFG-NAV5 message no longer exists. You are instead going to have to set the CFG-NAVSPG-DYNMODEL setting (still to a value of 6=AIRBORNE1G), using the UBX-CFG-VALSET command. This is described pretty thoroughly in the protocol specification. I'd also highly recommend that this value then be polled using the UBX-CFG-VALGET command to ensure it has been set correctly. This means you will need to be able to receive ublox binary data, not just NMEA. The code from RS41ng is probably a suitable starting point for this - the overall message structure is the same, but you would need to add in new message definitions. |
I didn't have time to work on it yet (school term etc). |
Both the code snippets above are still sending the obsolete CFG-NAV5 message, so will not work on the ublox 10. |
I deleted my post because darkside is correct - I did not notice that the coding was for version 8 & 9. He also modified his repository. uint8_t ubx_cfg_valset_dyn6[] = { // Series 9 and 10 See also Clive1's repository at # https://github.com/cturvey/RandomNinjaChef/blob/main/uBloxHABceiling.c |
Yes, that looks a lot better - it's really important to read back the setting and verify that it's taken effect as well though... |
I have finally had enough time to add the Clive's commands for M10 uBlox series to the RS41-NFW code. New release here. For now, there is no reading function of the Dynamic Model setting, because I'll have to investigate how to do it (the VALGET query is helpful so that's what I'll be observing now). Currently, it sends the commands to the GPS twice, as a kind of fail-safe. |
Wrote some simple code that would read the response from the GPS. The problem is that it's not similar to the format like I think it should be, but this will need some thinkering. The good news is that something is changing here because the response after sending the VALSET command is different. |
Franek, worked with the new code in order to understand. The output I see on my serial port is
Clive helped me out because i could not make sense of these codes. He replied that these are the hex codes for portions of NMEA Sentences.
You'll have to fish through the stream looking for B5 62 06 .. patterns |
Thanks, that makes sense now. |
Working with mixed NMEA and uBlox binary sentences is always going to be a bit messy... You may be better off just disabling all the NMEA output and working with the uBlox binary data directly. |
And thats probably the hardest part, with implementing the binary protocol. I'll look at the responses again, maybe there is a lag somewhere, maybe the code doesn't read everything. We'll see. |
I guess my point here is that you don't need to start from scratch. Other projects have implemented the uBlox protocol, e.g. the RS41ng implementation here: https://github.com/mikaelnousiainen/RS41ng/blob/main/src/drivers/ubxg6010/ubxg6010.c |
I flew BZ-nextgen today. The balloon position / altitude appeared to work nicely, 23363 m altitude was burst level and no show of wrong postitions or altitude . |
I think that the VALGET query won't be as important now, because we can see that the GPS of the new model worked perfectly. I'll try to finally add it in the future, but I'm happy that the VALSET works properly on the new model. |
I still think it's important to check that the mode is correct. On a related note, the uBlox 10-series is a multi-GNSS receiver, though oddly only a maximum of 12 SVs were reported during the flight - I would have expected a higher number than this. I'm wondering if the ublox is outputting NMEA strings from other 'talkers' (e.g. GPNDA vs GPGGA) that TinyGPS might not be interpreting. A dump of serial output from one of these modules would be interesting to look at. |
Yeah, but the number of satellites value is dependent on the NMEA messages mentioning GPS constellation, by the TinyGPS++ library. The actual coordinates are calculated on the GPS module using more of them. |
This is why i was asking about what NMEA sentences are actually being sent. Often there is are 'combined' sentences beginning with $GN (e.g. GNGGA) which provide multi-constellation information. It would be valuable to report this information if it exists. |
There are combined sentences, but it would be only valuable in the number of visible satellites. It won't make a difference in navigation capabilities, though. |
Sure... it would be nice to show though! |
Like to send the information about the PCB model (including Horus)? |
What I mean about the RSM4x2 is that it uses a GPS-only receiver. It's only going to report up to some limited number of SVs, since it only sees the GPS constellation. It seems the maximum number is about 12 (which make sense, thats about as many GPS SVs you can see at once from a given location). The RSM4x4 series has a multi-GNSS receiver, so the total number of SVs it can see will be higher, as it's seeing GPS+Glonass+Beidou+Galileo. If you report that complete number, it should make it a bit more obvious that the board in use is one of the RSM4x4 series. |
Oh I see. Thanks |
Maybe I missed something, but I couldn't spot anywhere in your code where you are setting the dynamic model of the uBlox GNSS chipset.
If you don't set this to one of the airborne dynamic models (I recommend Airborne 1G), the GNSS receiver will drop lock at 18km altitude. Not good for a high altitude balloon flight!
I'd also highly recommend using the ublox binary protocol rather than NMEA. There's plenty of examples of using this in other high altitude balloon tracker projects.
The text was updated successfully, but these errors were encountered: