KPBio
January 29, 2025, 7:49pm
1
Using the OLA datalogger (FW v2.7) to store serial data 250 times a second at 115.2k. Need to do this for 12 hours but after 3-4 hours, some data get dropped from the files.
Is there a specification on the delay between sending consecutive serial data and a wait for the data to be stored on the SD card? I have tried adding some pause between consecutive data streaming, but can’t seem to find any actual specs on this. SD card is SanDisk 16MB class 10.
Thanks.
Not particularly, but there are a few factors that could cause data drops:
Buffer overflow: The OLA’s internal buffer may overflow if the SD card write operations take longer than expected
SD card performance: Over time, SD card performance can degrade, especially with frequent small writes
Power issues: Ensure stable power supply throughout the 12-hour logging period
Here’s a thread with a lot of good info OpenLog Artemis Serial Logging Issues
To mitigate:
Try using a freshly faster-class new & formatted SD card using the official SD Association Formatter, the SanDisk Extreme have worked well for me
If possible, reduce the logging frequency or baud rate slightly to give more headroom for SD card writes
If these steps don’t resolve the issue, you might need to explore custom firmware solutions optimized for high-speed serial logging. Unfortunately, there isn’t a specific specification for the delay between consecutive serial data transmissions
PaulZC
January 30, 2025, 7:25am
3
Hi @KPBio ,
A similar issue and possible solutions are discussed in the link below.
I hope this helps,
Paul
opened 11:27PM - 25 Oct 24 UTC
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.
![diffmerge_post](https://github.com/user-attachments/assets/fb86b5ce-f380-4957-aaac-d5ce166b825a)
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!