Hi,
I’m using an Openlog to capture the output from a U-Blox GPS module, which is in the form of NMEA text. It works easily and well if I take the default output from the GPS. Both modules connected to a common 3.3v and ground rail, Tx from GPS connected to Rx on Openlog. All good.
However, I would like to reduce the volume and frequency of messages, with the intention of extending battery life. By default the GPS module produces 8 different messages per second. I can suppress unwanted messages, and also reduce the message frequency, by sending configuration messages to the GPS module. Unfortunately the specific GPS module I am using doesn’t have the ability to save configuration, so I need to send these config messages every time at startup.
My idea was to modify the Openlog-minimal sketch so that it writes the relevant config messages on the Tx pin, as part of the setup() routine. Then by connecting Openlog Tx to GPS Rx, the GPS should receive and process these, and reduce its message output.
No such luck. If I do the above, the data recorded by the Openlog appears to be corrupted. I see fragments of the expected GPS output, mixed up with binary data. It seems as perhaps the devices are not syncing on a common baud rate.
Am I doing something (duplex comms) that is fundamentally flawed or outside the design of the Openlog, or is there something in the way I have implemented this which would explain the failure?