I threw together a quick prototype using a NodeMCU, small oled display and a gps unit. Then spent some time working with the software.
I had seen a number random crashes and found that this was due to power demands from the GPS module so I added a large-ish capacitor nearby.
Since the ESP8266 only has one USART I’m using a software serial implementation. I've still seen some crashes and decoding the stack trace they are happening on the interrupt service routine for this module. A quick look at the modules code shows a WAIT macro that may not be safe in an interrupt service routine,
I'm also using a nice, small NMEA parsing library to parse the GPS messages.
Its responding to ntp requests and syncing with the PPS signal from the GPS unit. I am seeing a few times where the NMEA message from the GPS is parsed after the next second pulse from the GPS. Because I'm validating validating that the time I have is correct with each message I see it time warp back one second then timeworn forward one second a few times a day. I think that the ESP wifi housekeeping functions may sometimes delay the serial parsing. Or that rendering the display could be taking too long to render each second.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.