Flicker fusion threshold circuit with Arduino

The flicker fusion threshold is the frequency at which a blinking light appears to be stable. It changes with luminance, color and psychological state (fatigue).

You can’t study flicker fusion on a conventional monitor, because it’s impossible to accurately display the temporal frequencies required (~40-50Hz). I’m learning Arduino and wanted to cut my teeth on a simple circuit, so I built a flicker fusion threshold circuit that blinks an LED at arbitrary frequency.  The circuit diagram and Arduino code are in this Instructable.

You don’t need any special hardware to build this circuit; the parts in a standard starter kit should do the trick. You will need to replace the LED with an LED driver, however, to make the whole thing research grade.

The tricky part of the circuit is to build a blinking LED that can also be dimmed. Dimming is usually achieved by changing the duty cycle of a square wave, a process called PWM (pulse width modulation). Fixed PWM is usually at a fixed, high frequency (around 500 Hz).

A natural way to get blinking is to use a square wave at a custom low frequency. This can be achieved on the Uno using the TimerOne library. But how do you get both dimming and blinking? Easy: you multiply the low frequency and high frequency modulated signals. I’m multiplying the signals with an analog circuit that uses a PNP transistor. The output pin (collector) is only on when both inputs (base and emitter) are themselves on. Mind, there’s a leak current in there, so it’s not perfect multiplication, but it’s good enough.

Flicker fusion in the periphery

One observation that’s very easy to make with this circuit is that the flicker fusion threshold is higher in the periphery (around 50 Hz) than in the fovea (around 40Hz). Functionally, this makes sense: the job of the visual periphery is to convey information about salient things that might be worth saccading to. It makes sense that it’s therefore more sensitive to motion and flicker.

Anatomically, however, it’s less clear what’s going on. I’ve seen some references (i.e. Wikipedia) claim that this is because of the ratio of rods and cones in the fovea and periphery. The effect, however, is in the opposite direction; rods have more sluggish responses and are more numerous in the periphery.

No, the most likely culprit is M and P cells. Magno cells are sensitive to motion and flicker, and they’re more numerous in the visual periphery. What I don’t understand is why the critical fusion frequency should decrease with fatigue. If it’s a low-level phenomenon at the level of retinal ganglion cells, why would it be influenced by high-level vigilance?

The retina receives essentially no feedback signals from the brain, so how would information about fatigue make its way back to the retina, anyway? I’d love to hear your take on this.

3 responses to “Flicker fusion threshold circuit with Arduino”

  1. Assuming flicker fusion “happens” in the periphery, one could imagine neuromodulators playing a role. Acetylcholine perhaps? I rather think it’s more likely that neurons further along the visual system are involved, though. Aren’t some psychedelic drugs known to induce stroboscopic effects? If they affect flicker fusion, then the likely players could in principle be tracked down.

Leave a Reply to What’s the maximal frame rate humans can perceive? – xcorr: comp neuro Cancel reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s