Building a photon counter for double slit experiment

Thanks for the idea, I will keep working on it and will update you guys about the progress.

Please accept this in good humour, it's just that we've seen this before so many times...

The 10 top clues that suggest that a poster will be hard to help:
... omitted for brevity
8 - wants to make a normally expensive thing "for cheap"

So your pulses are:

  1. As frequent as 0.5 Mhz (maybe faster)
  2. Approx 10 ns wide.
  3. have a maximum value of "not there" of about 0.5V
  4. Have a minimum value of ?? maybe 1 volt ??

I think you need to:

  1. Design an analog front end to "trigger" on the pulses and generate a digital signal. Not trivial but doable.
  2. Have some filtering so no pulses are filtered out but some of the ambient "noise" is rejected.
  3. The above circuit will have to be in a metal box likely with a BNC input connector.
  4. Counting them with a Arduino will require using one of the counters and counting the overflow events. Its not clear what output is needed and at what frequency. Most frequency counters are "gated" meaning they measure pulses over a predetermined period.

Perhaps something like a TLV3501A. The issue will be to keep the signal clean.

What is the output of your detector? i.e. BNC etc

Have you go access to a frequency counter?
Most of them have a Counter function that can count pulses for as long as you like, and not over a selected time period to give frequency.

Tom... :smiley: :+1: :coffee: :australia:

I'm wondering how the data will be recorded and what is the significance of the number of photons at any given time.


Using it as a detector in a double slit experiment, to detect the resulting pattern as you scan across the output screen.

The observer effect is a quandary with this experiment.

Tom... :smiley: :+1: :coffee: :australia:

An ESP32 has a PCNT module, Pulse Counter, that can detect pulses with a width of 12.5ns.

Have you go access to a frequency counter?

Yeah this is one of the alternatives we're looking into. Do you have any frequency counters in mind that will measure 10ns pulse with a maximum frequency of 1MHz

So yeah the maximum frequency of the pulses would be 1Mhz (might not even reach that). The pulses are 10ns wide. When the pulse is detected the voltage will spike to 2V and when nothing is detected it will be 0V.

I think I could think of the output as directly being a digital signal and it has been working. I think the main problem is the pulse width because if i try to generate a 10ns pulse at 100kHz it only detects one pulse per second. The width of the pulse is so small that it misses all of the pulses.

And yeah the output is a BNC

If a non Arduino solution is acceptable then some thing like this would do: HP5385A.

However I would verify the specifications of whatever model you choose. I found the spec sheet for a different one in the same series, it specified the min pulse was 100p sec and frequency ~ 150Mhz.

i suspect any pulse can be detected, but not if the reprate is too high.

What about something like this: Example.pdf (769.8 KB)?

If you wanted to stay "Arduino ish" you could use a board with the SAMD21 32 bit processor. Its clock is 48Mhz and it has configurable timers that can be configure as a 32 bit counter. The program simply needs to count the overflow events and when display is required combine the overflow + current counter reading for the number of counts.

Perhaps this board from Seeed.

Of course, a comparator based front end will still be required. Perhaps the comparators on the SAMD21 can be used, I've not needed them so I can't attest to their capabilities.

The SAMD21 works with the Arduino IDE so except for a more complex setup, the SAMD21 acts like an Arduino on steroids.



Instead of using an arduino, I tried the DDS Signal Generator/Counter as an alternative. If anyone is interested in doing a project similar to this, DO NOT USE an arduino instead USE a signal counter. For a 10ns pulse and a 10MHz frequency it has a percentage error of just 0.00072%