As promised, we've now had a first attempt at the Zero Baseline experiment and are sharing the results. Here is part of the set-up, showing the PPS pulse from one of the GPS units:


Zero Baseline Testing, PPS signal

Zero Baseline Testing, PPS signal

And here is a block diagram of what we're actually doing with this experiment:

Zero Baseline

Zero Baseline

The aim of the exercise is to validate the precision of relative timing for a synchronised event between two independent receivers using two independent GPS systems.

Input: A common pulse to the trigger input of each Arduino DUE from our signal source (another Arduino DUE) at 1 Hz. This simulates events detected by the real trigger mechanism from cosmic rays. The timing properties of this signal are actually not important for this test, as we're checking the reception by both receivers is simultaneous. In the future we'll run this with a higher frequency (< 10 Hz) and random timing to check that we don't have any 'blind spots' in our trigger cycle.

Output: Each time the PPS (Pulse Per Second, a 100 ms pulse from the GPS) comes through the Arduino outputs the events detected in the last second, over USB to the Host PC. This is given in the form of the clock counter register value at 1 s, the counter register for the event counter at the point the event ocured, and a synthesised value giving the time to the last second (Via the GPS NMEA string), with the fractional part of the second (event counter/clock counter) after the decimal point.

Execution: It worked quite well. We've noticed a bug that means the trigger signal was missed by one of the two devices in 11% of cases. We're going to check the software and increase the length of the trigger to fix this problem, and when we've done it we'll re-run the tests for a longer period. Here data is presented for only 200 samples (i.e. 3 minutes). Once we've finished debugging, we'll run it for 24 hours.

Results: Analysing the log files by hand, events missed by one of the detectors were removed. The difference in timestamps were then analysed (i.e. modulus of Time Stamp Detector 1 - Time Stamp Detector 2). The summary results are:

Minimum: 35fs
Average: 21ns
Maximum: 64ns

Which indicates that the bounded accuracy of the system (i.e. the furthest distance in time two simultaneous signals can be timestamped at) is 64ns (or approx 20 meters at the speed of light). This is a reasonable result, we'll be seeing if we can improve it in the future. I haven't presented a histogram for the data as 200 samples is pretty small. When we have a 24 hour run, we will also look at what percentage of events are timed within certain values, to establish a 50%, 95% and 99% confidence interval for our timings.

The data, raw and processed is in the Excel spreadsheet below. Feel free to have a look for yourself and share any comments and questions you may have! The code we used on the Arduino's for reading the pulses is available on our github repo.

Cosmic Pi Zero Baseline Preliminary 280716