Sampling / time resolution (“sample time”) and timing behaviour of the CosmicWatch muon detector.
Here’s what I found on the sampling / time resolution (“sample time”) and timing behaviour of the CosmicWatch muon detector:
Key timing / sampling facts
- The SiPM output pulse is very fast: it has a rise time of a few nanoseconds and decays over a few hundred nanoseconds. (ar5iv)
- Because that pulse is too short for the Arduino to sample reliably, the output is passed through a peak-detector circuit which stretches / holds the pulse to a width of ~100 µs. (Hackaday)
- The Arduino’s ADC reads the peak detector output at discrete intervals. The sampling (i.e. successive ADC measurements) occurs roughly every 5.8 µs. (SETI)
- Because of that discrete sampling, the uncertainty in the timestamp of the trigger (i.e. when the muon-induced pulse actually occurred) is on the order of ±4 µs. (SETI)
- In addition to that, when data are sent to the computer via serial (USB), there’s an extra timing uncertainty (latency) of a few milliseconds from the serial interface. (Scribd)
Summary & caveats
So, in practical terms:
- The “stretched” pulse is ~100 µs in duration, which gives the Arduino enough time to sample it.
- The time resolution (precision) of the recorded event time is limited by the 5.8 µs sampling interval, giving ~4 µs trigger uncertainty.
- There is additional jitter / latency introduced when transferring the data to the PC.