Approximating flicker visibility

Just wanted to share a little thing I and mostly parametrek have been doing to assess the visibility of flickering/pwm on lights. The basic idea came from derlichtpeter.de whose CFD index tries to convey in a single value how visible flickering is.

We just call it the snob index, but the technique is similar. This is still very much work in progress and uses a modified curve from the CFD. It takes into account the modulation/flicker frequency and its other fft harmonics, percent modulation and duty cycle. A snob index of greater than 20% is usually objectionable and clearly visible. At over 50% it is outright annoying. We are still working on the thresholds. I’m waiting for an arbitrary signal generator to try different factors and their visibility.

The workings of the process are simple. I take a measurement with a scope using a Thorlabs DET36A photodetector, transfer the scope memory via lan to the computer where parametrek’s script parses, performs an fft and other calculations to spit out a bunch of metrics. Then another script draws a graph which represents the output of the light source relative to time. This graph also has the metrics calculated previously.

The metrics are:
Frequency - the rate of flicker in hertz
Modulation - also known as percent flicker which is calculated by (max level - min level) / (max level + min level). 100% modulation means that the light is turning completely off during the cycles
Duty cycle: the relative time the light spends above the mid level during one cycle. 50% means that the light is above mid (“on”) 50% and below mid (“off”) 50% of the time.
Index: flicker index is calculated using the area under the curve. This integral is separated into area above and below the average output. The index is the area above that average divided by the total area. A pwm light with a duty cycle of 50% will have a flicker index of 0.5, but it is more useful with more complicated periodic waveforms, especially those whose modulation is less than 100%.

Snob index: a rating, which tries to convey a single number of flicker visibility
1-5% - Probably not visible to the naked eye (high frequency PWM, >10kHz or low modulation at lower frequencies)
5-10% – Might be visible to the most sensitive people who know what to look for and try hard enough (incandescent)
10-20% – Sensitive people will see it at least on bright reflections, probably not a dealbreaker yet in general use
20-50% – YMMV area. If you can usually spot mid frequency PWM, you’ll easily see the flicker
>50% – Visible to most people at least on some occasions (low frequency PWM, <200 Hz)

Here’s an example with two PWM lights that have very different visibility of flicker and an incandescent 60W bulb in a 50Hz AC grid.

For us that doesn’t have the pocket full of gold to buy fancy equipment can download the Flicker tester app if you have a iPhone to do a simple Flicker test on your flashlight.

Check this thread.

Link: http://budgetlightforum.com/comment/1211768

Btw maukka can you test the app to see how accurate it is?

I tested the Viso flicker app after watching David Sunshine’s UT02 review some time ago:

Nice index! Good name! I just received a Sofirn SF10 cheapo AA-light that has a snob index probably close to 100 :expressionless:

Here’s another example of how the snob index is quite high with lights that have extremely short pulses (low duty%) but the frequency in the thousands.

Is that the old or new driver for the pineapple?

If I understand the flicker tester app right the flicker index is the value I should be looking at (lower the better)

For your test it’s the snob index we should look at? (Lower the better?)

That’s the first driver version.

The snob index the easiest way to determine whether the flickering is visible. The lower the better. Values under 10% are great. For example most people don’t notice incandescent flickering which gets 5%. But as I said, there’s still lots more testing to do to fine tune it.

For photography and video, always aim for flat output or as small modulation as possible. High speed electronic rolling shutter will reveal most anomalies very easily and that’s exactly why the Visio app works.

There’s also this paper on detecting stroboscopic effects, but its detection probability and acceptability formulas are only intended for 50% duty cycle square wave light sources. Not just PWM, since the wave’s minimum can be greater than zero. It’s a good read anyway.

http://www.lrc.rpi.edu/programs/solidstate/assist/pdf/AR-Flicker.pdf

For a 3rd option you can use your multimeter if it has a frequency measuring option. All you need is a small solar panel and a 1K ohm resistor. The panel from an old calculator or garden light works great. The resistor doesn’t have to be 1K, anything from 500 ohm to 10K should work fine. Smaller resistor will be less sensitive but improves response time.

Put the panel, resistor and meter all in parallel. The meter’s frequency and duty cycle measurements should be good enough for most lights.

Yep, the solar cell + dmm works well for detecting the frequency, but that’s all it does (unless it has a duty cycle measurement as well). With a good benchtop dmm you only need an LED for a sensor.

Forgot to say, even without a frequency measurement you can still approximately calculate flicker modulation. Measure the AC and DC voltage across the cell. Flat (0%) will have no AC and only DC. A full on/off strobe will have an AC component larger than the DC component. I can’t be any more specific than that because how a square wave is measured by your meter depends on whether or not it uses True RMS. There are equations for converting meter readings for square waves, one of them should apply to whatever meter you use.

I see zebralight behind dmm…can you please test it?

for some Zebra info, click on the link maukka gave in post #3

Even with a paper diffuser over my camera, I cannot get consistent results from that app.

here is a scan of my PT16, a light with NoPWM

if you look closely at the max and min values you will see a difference of 12, but the app posts a 6 flicker rate. This makes no sense to me.

Here’s SC600w Mk3 HI on the higher L, M and H modes.

Interestingly the ZL does this at the very beginning of turning it on on the highest mode. Lasts only a second.

If a BLF Q8 at 15.6 kHz has a higher snob index than a D80 at 183 Hz, something is wrong with the index formula.

Perhaps it needs an additional factor related to the frequency? Something like cuberoot(1000) * N / cuberoot(Hz) ?

Edit: I was looking at the “index” number, not the “snob” number. :stuck_out_tongue_winking_eye:
(the “snob” numbers look about right; ignore me)

What do you compare? 50% pwm with 13% pwm?

Even non-PWM flashlights can flicker.

The flashlight push out to much light? I don’t know.

What happens if you put one more paper as diffuser? Or as many papers you can put on before it says “not enough light”?
Hold the camera really steady so it don’t move around, or better if you can just lay it down there so it’s still.

Can’t really think of anything else at this moment except rebooting the phone and try again.

Jeff51 posted a neat guide to using a solar cell and a soundcard with free software to visualize PWM frequencies here: Measure PWM Frequency Using Audio Software

maukka,
I just put up a post about using a 192KHz sound card and O-Scope software to look at PWM.

The software I used is available here:

There is a stand alone version so it can be used without installing it.
It has various filters and counters as options.
Could you take a look at it and see if something could be pulled out of it to relate to your SNOB index?
Love the name BTY.

It would be really cool if basically free hardware and software could be use to evaluate a lights PWM SNOB index.
I’m amazed at the number of lights out there that are basically awful as far as PWM on their lower settings.
All the Best,
Jeff

I've mentioned this before, an LC filter can smooth out PWM. Since space inside a flashlight is limited and current to the led emitter is big, I wonder how fast the PWM frequency should be for this to be feasible.

:-)