-
Notifications
You must be signed in to change notification settings - Fork 49
Description
Hello,
I am struggling with serial logging the UART-output of my NEO-M8P GNSS module to micro SD. I want to log some ubx messages at 5Hz. I set the baudrate to 115200 to transmit some ubx packages at 5Hz (e.g. RAWX, SFRBX, PVT). After converting to RINEX in RTKLIB I noticed a lot of missing observations, sometimes more than half of the samples could not be converted. First, I thought it was an issue with the traffic on the UART. So I played around with the sample rate to 1Hz, kicked out some of the messages, incremented baudrate to 230400 and 460800, still the issue persisted. To fix it, I connected the Tx of my M8P to an oscilloscope and it looked good. In the next step I connected the UART to a terminal on my computer via an NS-RS232 to log it there and simultaneously used my OLA to log. Of the log on my computer, all samples could be converted to RINEX, of the log with the OLA only half of the samples. The file size for about 30 minutes of log was 19.807kB with the computer and 19.533kB with the OLA. Because the computer could log all the packets correctly at 115200baud, I assume this is an issue of the OLA. So for further troubleshooting I left the M8P aside and focused exclusively on the OLA:
Tools I used:
- NS-RS232 logic converter between UART (3.3V) and RS232, then to my computer. I checked it for different baudrates with terminal echo and transmitted a file between 2 of these, it worked fine. Also the logging of the M8P worked good. So I assume this is not the cause of the error
- Tera Term 5
- DiffMerge to compare files
I generated a binary hex file with numbered lines and random content to transfer via UART from my computer to the OLA to see what exactly is being logged there. On the left is the original file, on the right as logged by the OLA. This was at 115200 baud.
What really surprised me was after line 0007a130 where it logged the same sequence twice. This happens at multiple instances in the file.
At a baudrate of 9600 it was logged correctly but the OLA is supposed to work fine until much higher.
Your workbench
-
Are you using a microSD card? If so, what size? How is it formatted (FAT, FAT32, or exFat)?
Micro Sd-card of different sizes (16GB, 32GB, 64GB, formatted in FAT32 and exFAT) all showed that behaviour. -
At what frequency are you logging? For example, 10Hz, 1Hz, once every 5 seconds, etc.
Serial logging at baudrates of 115200, 230400 all have data loss. GNSS rate at 5Hz -
What version of firmware are you using? This is shown at boot, for example: "Artemis OpenLog v1.10"
Artemis OpenLog V10-v28 -
How is OpenLog Artemis wired to your sensor(s)?
From Tx of the computer to Rx on the OpenLog Artemis -
How is everything being powered?
The whole setup is powered via the VIN port of the OLA with 3x AA battery cell. Same behaviour when powered via USB-C of the OLA
Edit:
Today I tried it again with different baudrates, the problem persisted. Also, I disabled everything else apart from serial logging and it didn't solve the issue.
What can be the cause for this issue?
Thanks a lot!