Hello,
Our project requires us to use and collect data on the same three NEO-F9P receivers. I was wondering if any of you guys had any inputs on making the whole setup as portable as possible(less wires) and having a single synchronising point as we have to collect data from a car.
I don’t think there’s a method to explicitly synchronize them. They should all have pseudo-synchronization as measurements are slewed toward top-of-second. The times reported should allow you to align/re-align measurements in a common instant. I’d anticipate them measuring within a couple of milli-seconds.
You can synchronize the MCU board you’ve attached them too with the 1PPS signal which should be within about 30ns. You could also use EXTINT/TIMEMARK and have them generate a time-stamp from a common GPIO pulse you generate.
Are you using a single board to do the recording of data, or one per receiver? Perhaps describe to topology and application here a bit better. The NEO-F9P’s don’t support the “moving base” model, so less suitable for direction/attitude determination applications.
What data are you recording? What type of post processing are you planning with the collected data?
Thanks for the info on the synchronisation. We need observables like carrier phase from the receiver in order to determine the cycle slips. The reason to go for NEO-F9P is we need both L1 and L5 bands. There is a variant in Ublox’s ZED-F9P-15B which supports L1/L5 but don’t think it’s available at sparkfun with a development board build around it. I looked at F10N variant on sparkfun but it does’t output raw observables. Do you have any other suggestions for choosing the receiver ?
Ideally the plan is to use a single board to the data logging by utilizing the three UART interfaces on the IoT RedBoard - ESP32 but worried about the power draw since I have to use WiFi/BLE to debug. Worst case we’re still open to using one per receiver.
Another possibility would be to use SPI to communicate with the three NEO-F9Ps. SPI is ~10 times faster than UART or I2C. It would leave the ESP32 UARTs free for your serial console and debug messages. Each GNSS needs its own Chip Select pin, but the ESP32 has plenty of GPIO available.
Would you consider using (3) PostCards instead of (3) NEO-F9Ps ?
The PostCard has the benefit of it’s own ESP32, and they are cheaper due to the LG290P. Another difference is the LG290P is a L1/L2/L5 receiver.
The Timing Aspect:
This is obviously outside my wheelhouse, but my understanding is we don’t specifically get to decide when a RAW observable is “observed”. We can decide when we want a position calculated, but it’s still tied to the previous Epoch. I’m just brainstorming here, but you might get better data (to identify cycle slips) by letting the (3) receivers store RAW observables at 1-sec, 10, or 30-second intervals without attempting to sync them from an external source? GNSS receivers inherently synchronize their internal clocks with the atomic clocks on the satellites.
Note: If we were discussing RTK, then I’d say Yes to the external time sync - but maybe not in this context.
I might be way off-base, or this method might not align with your objectives… just thought I’d mention it