Skip to content
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

update EGNOS PRN mask to latest EGSA definition, fix SBAS for non-Galileo usage. #6431

Merged
merged 5 commits into from
Dec 18, 2020

Conversation

stronnag
Copy link
Collaborator

@stronnag stronnag commented Dec 17, 2020

This is the first part of fixing the SBAS implementation from its c. 2015 pedigree.

  • Updates EGNOS to current specifications

ToDo :

  • Make usage of UBX-CFG-GNSS generic for M8N / M9N case with and without Galileo and / or SBAS.
  • Verify PRNs for other ground augmentation systems
  • Generate SBAS scanmasks from PRN numbers
  • Generate GNSS structures in a dynamic / readable way.
  • Test on at least M6N and M8N
  • Test on M9N

via #6412

@digitalentity
Copy link
Member

It would be awesome if we can dynamically generate UBX-CFG-GNSS message. Those hardcoded payloads are very opaque

@stronnag
Copy link
Collaborator Author

It would be awesome if we can dynamically generate UBX-CFG-GNSS message. Those hardcoded payloads are very opaque

Sure. I'll do that as well (and create SBAS PRN masks from a list of PRNs vice an opaque bit mask.

configureGalileo();
ptWaitTimeout((_ack_state == UBX_ACK_GOT_ACK || _ack_state == UBX_ACK_GOT_NAK), GPS_CFG_CMD_TIMEOUT_MS);
// Configure GNSS for M8N and later
if ((gpsState.gpsConfig->provider == GPS_UBLOX) || (gpsState.hwVersion < 70000)) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks wrong. hwVersion < 70000 will match only M6N.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll look at that. It's still very much WIP ...

* Improve readabily of SBAS scanmask1 / PRN setting
* Use current PRNs for all SBAS options
* Decouple Galileo dependency for UBX-CFG-GNSS
* Only set required GNSS options
* Set GNSS options dynamically
* Replace magic numbers with #define where appropriate
@stronnag stronnag added the Release Notes Add this when a PR needs to be mentioned in the release notes label Dec 18, 2020
@stronnag stronnag added this to the 2.7 milestone Dec 18, 2020
@stronnag
Copy link
Collaborator Author

With M8N, Galileo and EGNOS:

SVINFO: Channels 32
16       G2 - - 1
 1       G5 Y - 4
 2       G7 Y - 4
 5       G9 Y - 4
 3      G13 Y - 4
23      G14 - - 1
27      G15 Y - 4
28      G18 - - 1
30      G27 - - 1
24      G28 Y - 7
 0      G30 Y - 4
 8  SBAS123 - - 1
10  SBAS136 - - 1
17     E211 Y - 4
11     E214 - - 3
18     E215 Y - 4
12     E219 Y - 4
255     E225 - - 0
 7     E231 - - 4
25     E234 - - 1
 9     E241 Y - 4
 6     E246 Y - 4
15      R65 Y - 4
13      R66 Y - 4
21      R67 Y - 4
19      R74 - - 1
26      R75 - - 1
14      R76 Y - 4
29      R77 - - 1
20      R81 - - 1
 4      R82 Y - 4
22      R83 - - 1

NEO6M (remember those ?)

SVINFO: Channels 15
 2       G2 - - 4
13       G5 Y - 6
 7       G7 Y - 4
 9       G9 Y - 7
15      G11 - - 1
10      G13 - - 4
 4      G14 - - 4
 1      G15 - - 4
 8      G18 - - 3
 3      G27 - - 1
 6      G28 - - 1
 5      G29 - - 2
 0      G30 Y - 7
14  SBAS123 - - 1
12  SBAS126 - - 1

@0crap
Copy link
Contributor

0crap commented Dec 18, 2020

Any chance you can create a hex to test with?
Preferably 2.6 release with this fix on top.
My target is MATEKF405

Thx!

@stronnag
Copy link
Collaborator Author

stronnag commented Dec 18, 2020

I can do a 2.7 hex ...
inav_2.7.0_MATEKF405_pr6431.hex.zip

@0crap
Copy link
Contributor

0crap commented Dec 18, 2020

Thx! For bench test perfectly fine.
I'll let you know how it goes.

@stronnag
Copy link
Collaborator Author

stronnag commented Dec 18, 2020

Here's the 2.6.0 version (untested by me).
inav_2.6.0_MATEKF405_pr6431.hex.zip

@digitalentity
Copy link
Member

Minor refactoring. Tested and working correctly on M9N.

@stronnag stronnag merged commit e90c76a into master Dec 18, 2020
@stronnag stronnag deleted the jh_update_EGNOS_PRN_mask_to_latest_EGSA_definition branch December 18, 2020 16:55
@0crap
Copy link
Contributor

0crap commented Dec 21, 2020

@stronnag Bench tested the 2.7 hex and all seems fine.
Thx!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Release Notes Add this when a PR needs to be mentioned in the release notes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants