Rolleiflex 2.8F Light Meter Upgrade [Part #4]

After part #3 of the series on my Rolleiflex light meter upgrade, I will explain the source code I've written to drive the Arduino microcontroller and bring the Rolleiflex light meter to life.

Earlier Articles

Arduino Source Code

The sketch for the Arduino microcontroller is available on Github:

Reading Light Levels

The Arduino measures the light level from the output of the LDR voltage divider circuit. However, this output may fluctuate significantly (e.g. in fluorescent light conditions). Also, the Arduino's A/D circuit only has 10 bits of resolution (resulting in 1024 possible input values).

To address these issues, the microcontroller averages multiple samples for each individual measurement. Since signal theory postulates that the resolution can be increased to "N" bits by obtaining 2^N samples instead of only one, this multi-sampling also allows us to increase measurement resolution to 15 bits (from 10 bits) in software.

Converting Light Levels to EV

Next, the measured LDR light level is converted to a normalized EV (Exposure Value) via an internal mapping table. I have generated this table by comparing the LDR output of my circuit with readings from several standard light meters and cameras under a wide range of lighting conditions.

Mapping EV to Galvanometer Output

In the final processing step, the calculated EV is again converted to an output voltage for the original Rolleiflex galvanometer via a second mapping table. This table was compiled by comparing the needle swing produced by a range of reference voltages to the position of the shutter/aperture needle in the Rolleiflex meter.


Going through two mapping tables for each measurement might seem like a big overhead, but it works well in practice and offers the advantage in that it is possible to calibrate the LDR and the light meter individually.

Power Check

Finally, I've introduced a small "power check" feature to make sure that the system is working correctly when powered on. The microcontroller drives the galvanometer needle to a half-swing position for one second after starting up. The initial swing and position of the needle provides a visual confirmation to the user that the microcontroller works and that battery power is sufficient.

Final Remarks

This concludes the write-up of my DIY Rolleiflex light meter replacement. If you have any comments or questions, I'd love to hear them. Feel free to comment in the section below!