-
Notifications
You must be signed in to change notification settings - Fork 7
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
Tips to improve stability #3
Comments
I am also randomly experiencing parse issues so for without any explanation. Seems like the parser in some instances does not "recover" from a failed parse ?? i.e. it will fail systematically on 60+ NMEA sentences. I can power down the system and bring it back up and then it will work. Thanks for your tips |
Hello @dotMorten,
I agree with you.
I have a wind sensor which has a bit of a funky boot sequence.
It has a boot loader which sends some output at 19200 and then switches to the configured baud rate of 38400 and starts sending an MWV sentence, which is a short sentance.
I listen to the serial port until the first CR/LF sequence, which indicates the baud rate change and start of nmea sentences, and discard that data before I start feeding the nmea parser using similar code to what you mention.
Generally this works fine but randomly it will fail to parse a single sentence for over 30 samples (i.e. about 30 seconds since data flow is 1Hz). It could be the sensor but I have doubts since
a. Its a commercial sensor already in use
b. I have two of these sensors and both exhibit the same issues
Debugging is a little tricky due to the random nature of the problem.The host + sensor are powered up every 9min for 1 minute, 60 samples, and then powered down. So both the host and sensor forgo a full power cycle each time.
Parse error handler is called every time, I am still adding some debug to figure out if its always the same error code but I am assuming it is. If the sensor was sending no data the handler would not be called.
I am going to keep digging.
Thanks,
Serge
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Found two issues and wanted to share the findings:
in
setup()
set timeout pretty low:In the loop reach in chunks:
With these two changes, all my parser errors went away.
You might want to update the doc to suggest the read approach. Might only be an issue on slow arduino's?
The text was updated successfully, but these errors were encountered: