Combining RS232/GPS NMEA Data streams

Hello All :slight_smile:

First time poster to the forum and absolute novice with Arduino so please be kind :slight_smile:

I am involved in a experiment where we have a requirement to collect sensor data from a magnetometer and combine the readings with positional data from an RTK GPS receiver.

I have seen devices like the Sparkfun OpenLog which would seemingly be able to take the RS232 data stream from the device and log it directly to an SD card which is great. However what I'm trying to determine is if Arduino is the right tool to somehow combine the GPS data with the magnetometer sensor data so that when it reaches the OpenLog (or other suitable device) the CSV files have on each line (for example)

Reading 1 - Reading 2 - GPS Time - GPS Position etc etc

The sensors will be set to 10hz initially however will hopefully be up to 500hz-1khz in the future.

Of course i'm not asking for anyone to write the code etc. I'm purely investigating to see if Arduino is the right answer for this type of problem.

The sensors output their data on power up, as does the GPS unit which will ideally be the HERE+ RTK unit.

Any help and advice much appreciated :slight_smile:

Yes, that is easy to do. You would read the sensors separately, then combine all the information in a series of Serial.print() statements. Any Arduino would work, but a Mega with more than one serial port would make your life easier.

The OpenLog would be perfect for this application, as it can store gigabytes of data.

dani_r:
The sensors will be set to 10hz initially however will hopefully be up to 500hz-1khz in the future.

I doubt you will be able to collect and send the data to a serial port at that rate. If each line is 30 characters then, at 1 KHz you would need about 30000 characters per second which would require a baud rate of at least 300,000 baud .

Also, I have been using cheap GPS for a couple of years and I have seen nothing that would allow them to work much faster than about 30 Hz. You might be able to take a GPS reading once a second and then interpolate but I would suspect that this would defeat the accuracy requirement object of sampling at 1000Hz .