I'm completely new to the world of mini-computers/micro controllers so any direction is appreciated.
I work for a small company that sells high accuracy GNSS/GPS receivers. We are currently using a reliable, but clunky data logger that uses a Compact Flash card for logging binary GPS data.
I would like to see if we can come up with something more high tech with a removable media. Maybe SD or removable USB data storage. We need to log at least 100Hz data with a potential for 200Hz for the higher accuracy INS equipment.
I'm not sure where to start as the Arduino has so many options. I'm hoping someone can steer me towards a more limited parts that would be in line with the project.
The data logging would be coming in through a serial 9-pin RS-232 port up to 200Hz. We would also need a separate connection (serial or USB) for configuration of the receiver prior to enable logging data.
WiFi connection would be needed as well for a app that could be used to view current status of receiver position and satellite information. That would be later after initial data logging and configuration systems are figured out.
Our current data logger is powered by a 12V lithium polymer battery inside a custom backpack, so we might need something that can handle 12V. I'm not looking for someone to do all of the work for me, I would appreciate some recommendations on hardware and any recommended tutorials.
What is the baud rate of the serial data transmission from the GPS receiver? Is it true RS232 (+/- 12V) or TTL serial? How many bytes in each sample set? How much data needs to be stored between downloads? Nowadays, when I see WiFi, I think of the ESP8266 WiFi module. It can be a stand alone module programmed with the Arduino IDE. The ESP modules have up to 4 Mbytes of flash that can be set up as a file system. You can set an ESP up as a server to display your data and have the ability to download stored (in file system) data from a browser.
At these rates, you will need to choose your GPS serial port wisely. Here are some tips. HardwareSerial strongly recommended to get highest bauds for 200Hz reports.
You will also need an efficient GPS parser. My NeoGPS library is smaller, faster, more reliable and more accurate than all other libraries.
I'm not sure the threads from dev apply in my particular application. The initial requirement is just to log the binary data to SD card or removable USB thumb drive. The receiver is a high accuracy GPS/GNSS+IMU. It is a tightly coupled unit by an OEM GNSS manufacturer (NovAtel Inc). They output their own proprietary logs that will be post-processed using another software package.
The baud rate we are currently working reliably with is 230400bps. The CF data logger hardware we're using is a Acumen SDR2-CF. It is a 9-pin RS232 connection. I'm not sure power is on the port. It is using pins 2,3,5. Tx,Rx,Gnd. I did connect a meter on an older generation receiver (pin 5 and 2) and it showed negative 5.5 volts. I'm not sure if that is normal? You asked about bytes in sample set - it depends on several factors (satellites in view, tracking, etc). The last test data we did was 4.2Mb for about 9 minutes of data collection.
By the way, I have been experimenting with a Raspberry Pi 3 Model B without much success. After wiring that up, the LED indicator on the receiver com port lights up (not normal when connecting to other devices). Like I said, I am new to this..
We are currently using 32GB compact flash cards in the SDR2-CF. It uses a buffer that gets flushed when the record button is pushed to eliminate junk data being recorded. Like I said, it is a reliable unit, but antiquated by today's standards. The CF cards can be tricky getting in and out inside the backpack as well. That's the reason, I'm looking to better alternatives.
Is there a particular Arduino that would work best in this scenario?