LC29H and GPS L5 health

Hi all,

I recently purchased an LC29H (DA) and LC29H (BS) board for RTK from Waveshare. The units have not yet arrived, but I had some questions while they’re in transit.

According to the specs, these are dual-band L1+L5 receivers, which is excellent.

However, according to GPS.gov, the CNAV message being sent on L5 has its health bit set to “unhealthy”. They describe it as, “Pre-operational signal with message set “unhealthy” until sufficient monitoring capability established”.

Question 1 How does the LC29H receiver process GPS L5 data if the data is marked as unhealthy?

Does it:

  1. Completely disregard the health status for the L5 signal transmitted by any given satellite and use it anyway? (Which risks invalid solutions if the satellite is marked as unhealthy for some particular reason, such as being respositioned.)
  2. Respect the health status bit and not use the L5 signals at all in its calculations if they’re marked as unhealthy?
  3. Take a similar approach to u-blox where the receiver ignores the L5 health status bit and overrides it with the L1 status bit for the same satellite?
  4. Something else? If so, what?

Question 2 Regardless of the above, is there some way of changing the behavior regarding the L5 health signal? For example, if the default is to do #3, is there a way to change the setting to #2 once the GPS L5 signal is made fully operational and the health status correctly indicates the health of the satellite?

Question 3 How does the LC29H receiver handle health status bits for other GNSS services? For example, does it respect the health bits in the signals sent by Galileo E5a and BeiDou B2a or does it treat the health bits from their respective signals the same as it does GPS L5? (In short, this is a repeat of Question 1, but for non-GPS constellations.)

Question 4 The same as Question 2, but for non-GPS constellations.

Thank you very much in advance.
-Pete

Hi heypete
If a satellite is marked as unhealthy, LC29H will receive the satellite data, but the algorithm will filter out the unhealthy satellite and not use the data information of the abnormal satellite.
All satellites are processed in the same way. The software algorithm will filter the data of all satellites to ensure that the satellite information is correct.

Hi George,

Thanks for the response.

However, I’m having trouble reconciling that statement and images people have posted in other threads showing the LC29H working properly with GLS L5 satellites with the following statement on GPS.gov: “ The pre-operational CNAV message for L2C has its health bit set to “healthy,” while the pre-operational CNAV message for L5 has its health bit set to “unhealthy.””

My understanding is that if the LC29H was honoring the GPS L5 CNAV health bit, it should mark all GPS L5 satellites as unhealthy and ignore them. But it apparently does not ignore them and instead uses them in its calculations.

AR3335 chip inside LC29H series has automotive functional safety certification ISO 26262 and AEC-Q100 Reliability Qualification Standard …For L5 considerations ( as reported by oem’s lab) :
GPS L5C is broadcast by only 17 satellites. These signals are a bit like “Schrodinger’s cat.” Because these signals are for aviation (and aviation is all about redundancy), it was decided that aviation receivers would not use L5C signals until there are 24 GPS satellites broadcasting L5C (circa 2027). Since the number of L5C signals is insufficient and you cannot rely solely on GPS L5C, other systems are needed. Aviation standards do not yet recognise Galileo or Beidou. As a result, L5C signals are considered “unhealthy” and should not be used. On the other hand, GPS L1 C/A signals are considered healthy.Therefore simultaneous reception of L5 signals along with L1 neutralizes the attributed “unhealthy” parameter.

Thanks for the information. Can you provide a link or other reference to that information from the “oem’s lab”?

If I understand what you’re saying, it sounds like the OEM is using the #3 (u-Blox-type approach). Is that correct?

reworded…Therefore simultaneous reception of L5 signals along with L1 neutralizes the attributed “unhealthy” parameter thanks to the support of the galileo E5a and beidu B2a signals,meaning L5 as the full set of 1176,45 MHz L5/E5a/B2a…

Thank you. While those sources are indeed interesting, I don’t see how they relate to my questions. If I misunderstood something in my reading of them, please correct me!

Your first link discusses in general the fact that L5 signals are marked “unhealthy” and suggests the “u-Blox-style” (Option #3 of Question 1 above) approach of using the L1 health status to override the health status on the L5 signal from the same satellite. It does not mention the LC29H receiver, nor it’s chipset, nor what approach the LC29H uses to process L5 while those signals are marked unhealthy.

The second link discusses an analysis of the performance of GPS L5 signals and those of other systems. That’s very cool and I thank you for providing it, but again it has nothing to do with the LC29H receiver and how it uses L5 while those signals are marked unhealthy.

To be clear, I’m curious about the specific behavior of the LC29H receiver when processing GPS L5 signals, if that behavior can be changed by the user (like how u-Blox receivers can be set to use the L5 health bit, or use the L1 health bit instead of the L5 bit), and whether or not the LC29H uses the same approach to other GNSS services.

Thank you!

Hi heypete
The software algorithm of LC29H will process the “unhealthy” satellite information received, but the specific processing methods and strategies will not be disclosed to the public.
The specific behavior of the LC29H receiver when processing GPS L5 signals is handled by the software algorithm inside the module. The specific processing method and strategy will not be disclosed to the outside. This behavior cannot be changed by the user. The LC29H will use the same method to handle other GNSS services.

“Per tagliare la testa al toro” (how to fix things once and for all) [I hope], or “Couper la tête du serpent” I suggest not to confuse L5 GPS with E5a of Galileo and B2a of Beidu…
To stay on the LC29H module It is able to process the following RTCM Messages
RTCM v3.2 MSM7:
1097 GALILEO MSM7 containing data E1 and E5a, E5b and E5(a+b)
1127 Beidou MSM7 containing data B1 and B2
1077 GPS MSM7 containing data L1 C/A, L2 C and L1/L2 P(Y)
1087 GLONASS MSM7 containing G1 and G2 C/A data

for RTCM v3.2 MSM4:
1074 GPS MSM4 containing data L1 C/A, L2 C and L1/L2 P(Y)
1084 GLONASS MSM4 containing G1 and G2 C/A data
1094 GALILEO MSM4 containing E1 and E5a, E5b and E5 data (a+b)
1124 Beidou MSM4 containing B1 and B2 data

As you can see the module can receive L1C/A and L5C i.e L5 Q but only processes L1C/A for ambiguity determination, while processing E5a and B2 messages for Calculation to determine ambiguity.
In practice it does not use L5 GPS signals as it does not receive the equivalent rtcm messages…

Hi George,

Thanks!

It’s unfortunate that the methods and strategies will not be publicly disclosed and cannot be changed by the user, since that limits the confidence one might have in the unit. For example, one might wish to enable the use of L5 signals marked unhealthy for testing, but might not wish to use them in “real world” applications, and the user not knowing or being able to change its processing settings is concerning.

It’s also important to know how the receiver handles other satellites, either those in GPS or other GNSS services, marked as “unhealthy” (such as when a satellite is being repositioned, or has some fault that renders it unusable or inaccurate), since incorrect navigation solutions could be computed.

The LC29H will use the same method to handle other GNSS services.

Could you please elaborate on this statement? Because if I understand you correctly, the receiver uses “unhealthy” GPS L5 signals when calculating a solution (and your message does not clarify if the receiver is using the GPS L1 health bit to override the GPS L5 health bit, or if it completely ignores the GPS L5 health bit) and that whatever approach is used for GPS is also used for other GNSS services.

Does this mean that the receiver completely ignores the health status for the BeiDou B2a signal and the Galileo E5a signal, or does it use the B1 and E1, respectively, health status?

In your first response you stated,

If a satellite is marked as unhealthy, LC29H will receive the satellite data, but the algorithm will filter out the unhealthy satellite and not use the data information of the abnormal satellite.

How does this reconcile with your later statement that “The software algorithm of LC29H will process the “unhealthy” satellite information received, but the specific processing methods and strategies will not be disclosed to the public.”

If I understand your statements correctly, the first statement says that the LC29H will receive the satellite data, respect the health status bit, and ignore any satellites marked as unhealthy. However, this is clearly not the case, as other users have posted images of L5 signals being correctly received and processed even though the system is marked “unhealthy”, so something else must be going on internally in the receiver to use L5 data. Your second statement says that the LC29H will “process” any unhealthy satellite information received in some undisclosed way.

These two statements seem to be mutually exclusive, and I’m trying to understand what’s going on.

Please forgive me if I keep pushing to get a definitive answer on this. I don’t intend to be annoying (and I apologize if I am being annoying), I just want to make sure I understand what’s going on since generating inaccurate position calculations by using unhealthy satellites can have very serious consequences and I want to make sure I’m getting results I can rely on.

Thank you.

Thanks for the information. I also read in the “LC29H (BA,CA,DA) DR & RTK Application Note” that the LC29H (BA) and (DA) modules can handle several RTCM messages, including 1074 (GPS MSM4) and 1077 (GPS MSM7), so it seems we’re both in agreement on that.

However, I don’t reach the same conclusion that a receiver that can receive 1074 and 1077 messages is unable to get corrections for L5 signals.

It appears that you got your information from here, which has the description for message 1077 as “GPS MSM7 containing L1 C/A, L2 C and L1/L2 P(Y) data”.

However, that doesn’t exclude L5 corrections using MSM messages.

As an example, this site states (in the context of RTCM 3.2 adding MSM messages),

The standardized GPS and GLONASS RTCM-3 messages, which cannot be effectively extended to other GNSS systems and other signals, are limited to L1 and L2 frequency bands and to only one signal per band. MSM (Multiple Signal Messages) added in RTCM-3.2 realizes the maximum compatibility with RINEX-3 and is used to replace legacy RTCM-3 messages (such as MT1001-1004, MT1009-1012).

MSM transmits essential information in a more general form, making encoding and decoding more convenient and flexible, and providing better scalability.

Taking GPS (RTCM 1004, GPS L1 and L2 code, phase and ambiguity, and carrier-to-noise ratio) as an example, only one of L1C/A, L1C, and L2C can be broadcast, while MSM can contain all frequency band signals.

(Emphasis mine.)

Additionally, this page states:

RTCM is the GNSS signal correction format of the messages that are streamed to your GNSS/GPS receiver in real-time over the internet to improve the accuracy and residuals of your location solution. The significance of RTCM version 3.2 or greater is that they’re required for compatibility with the Bad Elf Flex Mini , as only these versions contain multi-signal messages (MSM) that correct L5 frequencies in addition to L1.

(Again, emphasis mine.)

In short: MSM4 and MSM7 messages can contain L5 correction data, and there’s no reason to expect a receiver capable of processing those messages being unable to process correction data for L5 signals.

Regardless, the ability (or inability) of the receiver to process RTK correction data for GPS L5 signals is completely separate from a receiver’s ability to process GPS L5 data in an autonomous (meaning standalone, non-RTK) operation mode.

Clearly the LC29H can receive and process L5 data, as there’s screenshots on this forum from other users of that receiver showing that it does. The LC29H product page makes repeated mention of its dual-band L1+L5 capability, and explicitly states that it offers “Concurrent reception of L1 and L5 GNSS band signals”. I have no reason to believe that the receiver is unable to receive and process GPS L5 signals.

My primary question is “how does the LC29H handle the GPS L5 signal being marked as “unhealthy” for all satellites transmitting that signal?”

George’s first response suggests that the receiver excludes “unhealthy” satellites, but this isn’t consistent with the fact that it does receive and apparently includes GPS L5 signals in its calculations.

His second response states that the LC29H will “process” “unhealthy” satellites using some private, undisclosed methods.

That alone is concerning enough, as the secrecy means there’s no assurance that the receiver will correctly handle genuinely “unhealthy” satellites (like those being repositioned or which suffer a fault). If the receiver was simply using the GPS L1 health status to override the GPS L5 health status (and not simply ignoring the L5 health status entirely) and Quectel could unambiguously state that fact, that’d be perfectly satisfactory.

However, his second message also raises a concern about other GNSS signals like BeiDou B2a and Galileo E5a signals. George stated that the same, undisclosed, method is applied to all GNSS systems the receiver can process. Does that mean that the LC29H ignores the health status on B2a and E5a entirely? Does it use the B1 and E1 health status bits for those services to override the B2a and E5a health status?

How a receiver handles unhealthy satellites is crucial to being able to calculate safe, reliable positioning solutions. Not knowing how the LC29H does this is very concerning to me.

Hi heypete
The fundamental reason you ask this question is that you are worried that the positioning accuracy does not meet your needs, right?
I have consulted internal software colleagues many times, and they have given feedback: LC29H’s software algorithm will process abnormal satellite signals, and customers do not need to pay attention to this issue, but only to the accuracy. If there is a problem with the accuracy, the customer can provide the log and we can optimize the accuracy.

Hi George,

Accuracy is important, of course, but confidence in the reliability, trustworthiness, and validity of the calculated solution is crucial. I’d argue that those things are more important than absolute accuracy.

For example, I can have reasonable confidence that a solution calculated using the GPS L1 C/A, Galileo E1, and BeiDou B1 bands will be correct and valid (if we exclude extenuating circumstances like spoofing or jamming, of course) since the receiver only uses signals from satellites marked “healthy” by their respective control segments. “Unhealthy” signals are not used by the receiver, and the user can verify this by observing the output of the receiver. The control segments for those services monitor the health of the satellites and update their health status as needed.

Similarly, GPS L2 (but not L5), Galileo E5a, and Beidou B2a all have their health status updated as needed by their control segments, and the health status for each satellite is used in the receiver when calculating a solution just like with the L1, E1, and B1 signals. Unhealthy satellites transmitting those signals are not used.

However, all of GPS L5 is marked unhealthy by the control segment, so a receiver that follows the standard and expected receiver behavior should not use those signals as they are being transmitted today. So long as GPS L5 signals are marked unhealthy there is no way for a receiver to know if the L5 signal from any particular GPS satellite is correct and will produce a trustworthy solution (it could be correct, but it could also be invalid due to the satellite being repositioned, having a fault, etc.), so no receiver should use GPS L5 at all so long as the signals are marked unhealthy.

Of course, people – including myself – may want to use GPS L5 for various reasons such as testing even though the signals are marked as unhealthy. For that reason, some vendors such as, for example, u-blox have their receivers default to honoring the health status (that is, not using L5 since the signals are unhealthy) but give users the option to use L5 signals at their own risk by sending a documented command to enable them by applying the L1 C/A signal’s health status to the L5 signal.

They also provide a command to disable that behavior and return to the default behavior if that is desired (e.g. when being used in “real world” situations where reliable, valid solutions are important for safety or other reasons and “use at your own risk” is not appropriate). The default behavior and the behavior when the exception to enable L5 is used are both well-defined, well-documented, and user-configurable.

On the other hand, the behavior of the LC29H relating to its use of GPS L5 signals is not well-defined, well-documented, or user-configurable. The user of an LC29H has no way of knowing if solutions calculated by the receiver when using GPS L5 signals are valid or correct in any way since the signals are marked unhealthy but the receiver still uses them. The documentation (and responses in this thread) do not provide any clear explanation as to how it determines if an “unhealthy” L5 signal is usable or not.

LC29H’s software algorithm will process abnormal satellite signals

How does it know they are abnormal or invalid, since all L5 signals are marked as unhealthy? That is the key question I’m asking.

Does the LC29H use the GPS L1 C/A health status to override the L5 health status so it can use L5 signals? Does it simply ignore the health status entirely, and so might be using actually-unhealthy satellites? The user has no way of knowing, and so cannot have confidence that the solution being calculated in trustworthy or valid.

You say that the same method, which is not documented, is used for other GNSS services. Does this mean the LC29H correctly uses the Galileo E5a and BeiDou B2a health status for those services as it should be doing, or does it use the E1 and B1 health status to override the E5a and B2a health status? Again, this is not clearly defined and the user cannot have confidence that the solution using GPS L5, Galileo E5a, or BeiDou B2a is valid.

If the behavior was clearly documented, that would increase confidence in the trustworthiness and validity of the solutions the LC29H produces using those signals.

For example, a statement like “The LC29H receiver uses the broadcast GPS L1 C/A health status to override the broadcast health status of the GPS L5 signal so L5 signals can be used. The receiver uses the broadcast health status for all other GNSS services and signals and does not override them with the status from other signals: for example, the receiver uses the B2a broadcast health status when processing B2a signals and does not override the B2a health status with the B1 health status. In the future when the GPS L5 signal starts transmitting its actual health status, Quectel will provide a firmware update to use the GPS L5 broadcast health status instead of overriding them with the GPS L1 C/A status.” would clearly define the behavior of the receiver and allow the user to have confidence in its solutions.

Of course Quectel would need to update it to explain the actual behavior and whether or not Quectel would provide such an update in the future.

customers do not need to pay attention to this issue, but only to the accuracy

This is not reassuring. If the user does not know how the receiver is using satellites marked as “unhealthy”, especially when it’s clearly using GPS L5 satellites (all of which are marked “unhealthy”), the user cannot have confidence that the solution or its accuracy are correct. A clear explanation of how the receiver handles this situation is needed for the user to have confidence in the solutions.

I hope I’m clear. If some aspect of my message or my reasoning is unclear, please let me know and I’ll do my best to clarify it.

Thank you!

A couple of comments from the peanut gallery here:

If you want to use the LC29H modules but don’t want the algorithms to use GPS L5; ask if it is possible to disable GPS L5.

If you want full transparency from Quectel and input on how they handle the GPS L5 issue; commit to an order large enough for them to justify doing it exactly the way you’re asking. Expect them to have an NDA for you to sign before you get to see how the sausage is made.

Buying a single module and then making demands on a public forum won’t get you very far, no matter how many times you reword your thesis.

1 Like

Hi Luke,

I really appreciate the feedback!

If you want to use the LC29H modules but don’t want the algorithms to use GPS L5; ask if it is possible to disable GPS L5.

That is, of course, an option, or I could have purchased L1-only or L1+L2 receivers. But I bought the LC29H’s specifically because they were L1+L5 and I’d like to do testing with that specific configuration.

If you want full transparency from Quectel and input on how they handle the GPS L5 issue; commit to an order large enough for them to justify doing it exactly the way you’re asking. Expect them to have an NDA for you to sign before you get to see how the sausage is made.

That’s fair. Point taken.

Perhaps I’m naive, but I don’t see how clarifying how a receiver handles GPS L5 health status would reveal any “secret ingredients” in the sausage-making. But if it somehow would reveal sensitive or proprietary information, I’d understand.

Buying a single module and then making demands on a public forum won’t get you very far, no matter how many times you reword your thesis.

I totally understand that as an individual, small-quantity purchaser I don’t really have any leverage or any expectation of having my whims catered to.

Still, this is a forum for questions – including technical questions – about Quectel products. I searched for other posts and answers that might have discussed the topic and didn’t find any, so I thought that asking the questions in the public forum might be useful for others who might have similar questions.

I didn’t intend to “reword my thesis”, as you say, to be belligerent or demanding. That was not my intent, and I apologize if I came across that way. I was attempting to clarify my questions because the answers from Quectel had confused me and seemed to be contradictory.

In looking over my earlier comments I can see some parts where I could have worded things a bit better to come across as less demanding. Sorry about that. Mea culpa.

1 Like

Hi heypete

  1. I did ask my software colleagues to confirm the information you asked about. This is the core content of the algorithm. How to implement these operations or how to filter satellite signals will not be open to customers. Sorry.
  2. You keep saying that my replies are contradictory. It may be that the content translated by my English translation software is ambiguous and caused you to misunderstand. I declare again: When the L5 frequency band of a satellite is unhealthy, the module will search for the satellite normally, but the algorithm will judge whether to use this satellite by itself. Whether the specific algorithm uses the L1 signal to correct the L5 signal or judges whether to use the satellite based on L1, this algorithm colleague will not tell me, and I cannot give you a clear answer. In addition, the LC29H has more than 100 satellite search channels. The LC29H can search for enough satellites for positioning, and there will definitely be a processing strategy for abnormal satellites. For the client, we hope that you will pay more attention to the accuracy of the module rather than the internal algorithm. Because if the module accuracy does not meet your needs, we can optimize it. However, the software processing strategy is the core of the algorithm. I am afraid that you can only directly contact the local sales or FAE to consult a higher-level leader for this problem.

Hi George,

Thank you for your response.

I did ask my software colleagues to confirm the information you asked about. This is the core content of the algorithm. How to implement these operations or how to filter satellite signals will not be open to customers. Sorry.

Understood, thank you.

You keep saying that my replies are contradictory. It may be that the content translated by my English translation software is ambiguous and caused you to misunderstand.

No problem. I apologize for my lack of understanding and interpreting your messages as contradictory.

Whether the specific algorithm uses the L1 signal to correct the L5 signal or judges whether to use the satellite based on L1, this algorithm colleague will not tell me, and I cannot give you a clear answer.

Thank you. While that’s not the answer I was hoping to hear, I understand that the details will not be made public and I won’t keep pressing for the answer.

Thanks again for your assistance and for putting up with my persistent questions.

Hi heypete
I’m sorry that I can’t answer your question.
If you have any questions about using the module, please continue to communicate.