Is this photodiode good for a flash meter?

Hi,

I'm planning on building an Arduino flash meter for my photography hobby. Typical flash sensors are quite expensive with prices going into the hundreds of $$ so hence my idea of building one myself.

I read somewhere (can't remember where) that this photodiode would be suitable as it is fast and works in visible light. I know almost nothing about photodiodes or how to read their spec sheets so I would appreciate if someone could verify if the diode is suitable or if there is a better choice.

Here is the spec sheet for the photodiode.

At the lowest setting of a camera's speedlight, the flash duration can be up to 1/23,000 second. At the highest setting on the other hand the approx visible light would be 2500-3000 lumens so the photodiode would need to be able to catch that light both from a speed and intensity perspective. (Source)

I also have a second ask:

I'm also planning on adding to the flash meter a light meter that would allow the Arduino to measure the color temperature of the light. Again, I would appreciate some guidance as to a good choice for this type of light sensor.

Thanks,
Roland

With a rise time of 3 us, that is a very slow photodiode. As the datasheet suggests, it is for measuring ambient light.

If you know "almost nothing" about photodiodes, your first task is to correct that deficiency. This is not at all a simple project and will require advanced design skills in analog electronics (which helps explain the high price of commercial instruments).

One place to start is here: http://edge.rit.edu/edge/P09051/public/photodiodeamplifers.pdf

In order to measure the light output of a flash with duration 1/23000 second, you should be sampling at about 10 times faster, or about 1/250000 second -- not something the Uno is designed to do. The analog circuitry should be about 10 times faster than that, for a rise time of 400 nanoseconds or so.

Thanks jremington.

roli001:
I'm planning on building an Arduino flash meter for my photography hobby. Typical flash sensors are quite expensive with prices going into the hundreds of $$ so hence my idea of building one myself.

There are different ways of measuring flash...
Diagram:
flash_diag.png
The cheap and easy way is to 'capture' the peak of the flash pulse, the green dotted line in the diagram.
The output of a photodiode is amplified and, via a diode, charges up a capacitor. The voltage on the capacitor is a measure of the brightness of the flash. The BPW21R is probably ok for this.
Since the voltage is 'sampled and held' on the capacitor, it gives you plenty of time to do an AtoD conversion. (really old meters just had an analog voltmeter with a calibrated dial and a RESET button which just discharged the capacitor)

The more accurate and expensive method is to measure the light level over the whole exposure period (between the blue lines) and add up the total illumination. To do this you would need a lot faster photodiode and the ability to measure the voltage level real quick - say once every microsecond. (I think the Arduino ADC takes about 100uS ?)

In either case, once you have built something that basically 'works', you have to do a lot of testing to calibrate the values you get from a flash and turn them into something useful.

...Arduino to measure the color temperature of the light

You could have a play with one of these: TCS34725

Yours,
TonyWilk

flash_diag.png

The cheap and easy way is to 'capture' the peak of the flash pulse, the green dotted line in the diagram.

That is a good suggestion, but many modern flash units cut off the flash sharply after the proper total exposure has been achieved.

So to estimate the total amount of light by that method you need to measure both the peak and the flash duration, which is less accurate than rapidly sampling the entire pulse.

If you want to do this, the limitations of the Arduino hardware kick in.

  1. the ADC: there exist 1 Msps ADCs that communicate over SPI. A flash lasting 1/23000 seconds would last about 43 samples. That's a reasonable number. But a 12-bit ADC will produce about 2 MB/s (16 Mbps) of data! That's faster than the Arduino's SPI bus can do, and in no time the memory is full. They're not even that expensive, Digikey lists them at just over USD 3 a piece for single units.
  2. even if you go down to 500 ksps, the bus could manage the speed, but a couple hundred samples in and memory is full. No chance for real-time processing of that data, to discard samples. The flash would last about 22 samples. Still OK for reasonably accurate measurement.

You could mitigate the memory problem if you can send a signal to start measuring when the flash starts, that will help a lot. Then just record say 300 samples, and do your analyses on this.

So for processor maybe a Teensy or ESP32 can do the required SPI bus speed, and can record longer time. The latter will be useful for deducting background brightness, which may be significant.

Besides, you'd need to select a photodiode or other sensor that can actually follow the brightness of the flash at this rate, meaning rise times in the order of tens, no more than hundreds of nanoseconds.

jremington:
... many modern flash units cut off the flash sharply after the proper total exposure has been achieved.

Ah, I see - should've guessed with those "Speedlights" the OP linked to having such a range of outputs.

Suppose the response is a lot more rectangular rather than the old "cap decaying into a Xenon tube" ?

Yours,
TonyWilk

Thanks All for the input.

For those interested, I managed to find the site where the BPW21 is mentioned in reference to a flash meter.

The circuit shown is a reasonably well designed amplifier for the photodiode, and the article illustrates the considerations of the design process. It is not a lux meter, though.