-
Notifications
You must be signed in to change notification settings - Fork 10
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
GPS Data Intermittently Corrupted #68
Comments
Confirmed this is a firmware bug since restarting Proxy and Telemetry applications without restarting the Faraday radio SN 7 with GPS still resulted in:
Next up is restarting Faraday: Yup once GPS lock was achieve this is the first telemetry packet received from Faraday after a reboot: "6531" "6531" "KB1LQC" "2" "KB1LQC" "1" "9" "0" "0" "26" "0" "2" "57607" "3359.7626" "N" "11826.8578" "W" "183.9" "M" "0.23" "1" "8.39" "192" "0" "1693" "1550" "1721" "1555" "1514" "1527" "1141" "20" "2849" "0" "0" "7200" "0" "1488133298.287" The HDOP value was "8.39" which is a valid float. This is most definitely a firmware bug @kb1lqd ! |
I have seen other issues with values other than GPS HDOP. The longitude below for example. Or altitude: |
@jbemenheiser sounds like classic buffer overflow to me |
@jbemenheiser just noticed that you had several items blown out there: '11822.7\x90\x9c\x99', '\xab', '\xb28.52000', That's looks like a continuous portion of memory just got overwritten. Spanning several telemetry items. Can you confirm that this is persistent as in the values do not change until reboot? |
This is not a persistent error. Using @kb1lqc 's conn.rollback() code above, good packets get logged after the exception is thrown for bad packets. All of the following 'bad' packets were logged in one telemetry session over the course of two hours without a power cycle. (I removed the error messages after the first one)
|
Your radio wasn't in a kiln was it?---- On Sun, 26 Feb 2017 13:22:11 -0800 jbemenheiser<[email protected]> wrote ----Looking at the data that was logged to the database during the session I mentioned above, I also found some values that were obviously corrupt, by did not cause exceptions. Board temp of 32795 at EPOCH 1488143280.656 —You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or mute the thread.
|
Only for a second... I did notice that in this line (third from the bottom in the session above) it is the destination callsign that is corrupt. |
Oh weird... now that is not indicative of the RF unit being corrupt but of the local unit. Which makes sense, they are running the same firmware and it's more likely to corrupt a GPS position since there's simply more bytes in memory available to corrupt in those packets. Good catch @jbemenheiser! |
Sweet, ok so two things:
Judging that you are seeing board temps and other corruptions this indicates a wider fault than just GPS. I'm thinking either general corruption or a packet parsing offset error... I will look into this. |
Jake has seen corruption in callsign too so maybe caused elsewhere? Possibly that so much data is gps it's just more likely.---- On Thu, 02 Mar 2017 07:55:04 -0800 Brenton Salmi<[email protected]> wrote ----Sweet, ok so two things: I don't check the NMEA checksum/CRC/whatever bytes at the end of the string to verify good NMEA receptions Unlikely but possible for telemetry packet itself to be corrupt I check checksum on each packet into Proxy in the UART protocol stack Judging that you are seeing board temps and other corruptions this indicates a wider fault than just GPS. I'm thinking either general corruption or a packet parsing offset error... I will look into this. —You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or mute the thread.
|
H1. Summary
@jbemenheiser and I have now both independently observed this error where Telemetry stops saving data to the database. Using https://github.com/kb1lqc/Faraday-Software/tree/issue113 branch of the software which provides better telemetry parsing and APRS operation I was able to get much better diagnostic information and reliable APRS operation overnight.
When an error occurs in Telemetry.py in the function sqlInsert() the following exception is caught:
This allows us to obtain the following error diagnostic information:
Clearly the GPS HDOP value of
'1.43\xac'
is causing our problem.The timeline is sporadic. @jbemenheiser was able to see this error regularly while it took my test 9 hours, 40 minutes and 26 seconds to manifest! (Epoch 1488095638.345 to 1488098960.392)
The text was updated successfully, but these errors were encountered: