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

decrease timeout from RTK to DGNSS when no RTCM are available #109

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion src/ubx.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -520,6 +520,8 @@ int GPSDriverUBX::configureDevice(const GNSSSystemsMask &gnssSystems)
cfgValset<uint8_t>(UBX_CFG_KEY_NAVSPG_UTCSTANDARD, 3 /* USNO (U.S. Naval Observatory derived from GPS) */,
cfg_valset_msg_size);
cfgValset<uint8_t>(UBX_CFG_KEY_NAVSPG_DYNMODEL, _dyn_model, cfg_valset_msg_size);
// The rover will stop using RTCM corrections that are older than 2 seconds
cfgValset<uint8_t>(CFG_NAVSPG_CONSTR_DGNSSTO, 2, cfg_valset_msg_size);
Copy link
Member

Choose a reason for hiding this comment

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

Probably ok, but it means it will also fall out of RTK with base station quite quickly

Copy link
Contributor Author

@JonasPerolini JonasPerolini Aug 3, 2022

Choose a reason for hiding this comment

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

From your experience, the RTCM data does not arrive at 1Hz?

The other options that I see are:

  • set it to a higher value i.e. 3 (which is already much better than 60s)
  • create a parameter for CFG_NAVSPG_CONSTR_DGNSSTO and let the user chose.

Copy link
Member

Choose a reason for hiding this comment

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

From your experience, the RTCM data does not arrive at 1Hz?

Yes but the datalink might not always have perfect connectivity.

We can set it to 3. The other option would be to just set it to the one that gets the heading corrections (it does not get the RTK base station corrections at the same time).


// disable odometer & filtering
cfgValset<uint8_t>(UBX_CFG_KEY_ODO_USE_ODO, 0, cfg_valset_msg_size);
Expand Down Expand Up @@ -2196,7 +2198,7 @@ GPSDriverUBX::activateRTCMOutput(bool reduce_update_rate)
cfgValset<uint16_t>(UBX_CFG_KEY_RATE_MEAS, 1000, cfg_valset_msg_size);
}

cfgValsetPort(UBX_CFG_KEY_MSGOUT_RTCM_3X_TYPE1005_I2C, 5, cfg_valset_msg_size);
cfgValsetPort(UBX_CFG_KEY_MSGOUT_RTCM_3X_TYPE1005_I2C, 1, cfg_valset_msg_size);
Copy link
Member

Choose a reason for hiding this comment

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

How much does this affect bandwidth?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Could you please test it? @bkueng (I won't have access to the F9P until September)

Copy link
Member

Choose a reason for hiding this comment

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

I might be able to test it.

cfgValsetPort(UBX_CFG_KEY_MSGOUT_RTCM_3X_TYPE1077_I2C, 1, cfg_valset_msg_size);
cfgValsetPort(UBX_CFG_KEY_MSGOUT_RTCM_3X_TYPE1087_I2C, 1, cfg_valset_msg_size);
cfgValsetPort(UBX_CFG_KEY_MSGOUT_RTCM_3X_TYPE1230_I2C, 1, cfg_valset_msg_size);
Expand Down
1 change: 1 addition & 0 deletions src/ubx.h
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,7 @@
#define UBX_CFG_KEY_NAVSPG_FIXMODE 0x20110011
#define UBX_CFG_KEY_NAVSPG_UTCSTANDARD 0x2011001c
#define UBX_CFG_KEY_NAVSPG_DYNMODEL 0x20110021
#define CFG_NAVSPG_CONSTR_DGNSSTO 0x201100c4

#define UBX_CFG_KEY_ODO_USE_ODO 0x10220001
#define UBX_CFG_KEY_ODO_USE_COG 0x10220002
Expand Down