

Flicker
Lighting flicker meter
- Size
- 24.8 × 73 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 4
- Nets
- 45
- Pads
- 99
- Tracks, vias
- 27, 0
- Routed
- Yes
- KiCad
- KiCad 6 (file 20211014)
- Created
- 19 Sep 2021
- Updated
- 4 Jul 2026
Overview
Flicker is an open-source printed circuit board by timdeegan, from the timdeegan/flicker repository on GitHub. It is a 2-layer board of 24.8 × 73 mm with 4 parts on 45 nets, routed with 27 tracks and 0 vias.
It is built around the AD522-00E and SFH 300. Its parts include 2 ICs, 1 resistor and 1 transistor. It belongs with the lEDs and displays boards and the RP2040 boards of this library.
Main components
2README
README.mdLighting flicker meter
This device measures the amount and speed of flicker in light sources and screens, using a phototransistor to measure the light and a Raspberry Pi Pico for signal processing. It was designed to be cheap (less than £10 for parts in bulk, probably more like £30 to build just one) while still accurate enough to evaluate screens and lighting for those who are sensitive to flickering light. (For information about the effects of flickering light, see e.g. Lehman and Wilkins, 2014.)
Circuit board
The PCB is a simple 2-layer layout, easily within the cheapest tier of JLCPCB or other manufacturers. The KiCAD files are in the pcb directory, along with all the output files needed to order your own PCBs.
There are only four things to solder on:
- Raspberry Pi Pico. This is surface-mounted on the PCB but the connections are big enough that it's quite doable by hand. I found it helped to use some 0.1" header pins to hold one side in the right place while soldering the other side.
- 680Ω through-hole resistor.
- AD5220BNZ10 digital potentiometer. This costs more than the Raspberry Pi, but is rated for the current and is a through-hole part for easy soldering. The marking on the PCB shows which way round to mount it.
- SFH300 phototransistor. This must also be soldered the right way round (the flat side should match the marking on the PCB) and at the right height so it's just above the PCB when the leads are bent over.

Case
The 3D model for the case is in case/case.3mf. I printed mine in PETG at 0.15mm "quality" on a Prusa i3 MK3S printer.

Firmware
The firmware that runs on the Pico is in firmware/flicker-v1.0.uf2.
Installing the firmware
First connect the board by USB while holding the BOOTSEL button, which makes it appear as a USB-attached drive. Then copy the .uf2 file to that drive.
Building your own firmware
The firmware source is in the firmware directory. If you want to build it yourself, you will need the Raspberry Pi Pico SDK. Once you have the SDK installed, you should be able to build the firmware using the Visual Studio Code extension as documented in the SDK.
How to use
The flicker meter appears as a USB serial device.
- On Windows you can use PuTTY. Set the connection type to "Serial", the serial line to "COM3" (or check in Device Manager to see what COM number appears when you plug in the meter) and the speed to 115200.
- On Android you can use a serial terminal app such as Serial USB Terminal.
Point the sensor at the light you want to measure. It's usualy best to get quite close to the light it you can, unless you see a warning about it being too bright. The measurements appear on the serial output, along with graphs of the frequency and waveform. The graphs work best with a monospaced font and a window at least 80 characters wide.
E.g. measuring a CFL lightbulb:
AGC: 66/127
--------------------------------------------------------------------------------
*
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* * *
******** * * ***
* * * * * *
* **** * * * *
* ** * *** *
* ** ************************************************
--------------------------------------------------------------------------------
FFT: peak at 100.105042HzThe important numbers there are 10% flicker (the amount by which the brightness varies over one cycle of the flickering) and 100Hz (how fast it is flickering, in this case twice the 50Hz mains electricity frequency).
By contrast, a mobile phone screen using PWM for brightness control shows a faster but much deeper flicker:
AGC: 127/127 (TOO DARK)
--------------------------------------------------------------------------------
*
*
*
** *
** *
** *
** * *
* * ** *
* * ** *
* * ** **
* * ** ** *
* * ** ** **
* * ** ** **
* * ** ** **
* * ** ** ****
* * ** ** ****
* * ** ** ****
* * * * ** *****
************ * * * * * *** * **** *
********* **** **** ***** ***************************************
--------------------------------------------------------------------------------
FFT: peak at 239.751190HzLimitations
It doesn't handle very bright or very dark sources, though it will warn about them being too bright or dark. It tends to report flicker of >60KHz when in total darkness, which I assume is noise from the Pi Pico.
The phototransistor circuit is rather simple, based on my limited knowledge at the time, and the brightness compensation is a bit clunky. I would like to redesign it at some point with a proper variable-gain amplifier and an antialiasing filter.
I haven't tried calibrating this meter or comparing it to a properly calibrated one. Calibrated meters are rather expensive, which is why I built this in the first place. If you have access to proper calibration equpment and would like to test one of these meters, get in touch!
Parts
4Questions
How big is the Flicker PCB?
It measures 24.8 × 73 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Flicker use?
4 parts, built around the AD522-00E and SFH 300. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Flicker KiCad files?
From the timdeegan/flicker repository on GitHub, at the commit this page was made from: the board is pcb/flicker.kicad_pcb and its schematic pcb/flicker.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Flicker design in my own project?
Its repository states no licence, so its author keeps all rights: ask timdeegan before reusing the design.
Similar boards
- 2 layers

- 2 layers23 × 10.4 mm

- 2 layers49 × 34 mm

Edno
AgustinPrietoValdez/competition-robots
Custom competition robots — maze/micromouse (MISA), sumo (TATAMI 1) & mini-sumo (RUCHO). KiCad PCBs, STM32/Arduino firmware, Fusion 360. National champion & international prizes — by EDNAROBOTICS.
40 partsMIT - 2 layers18.5 × 26 mm

24g2usb rp2350zero
joypad-ai/joypad-os
Universal controller firmware for building adapters, dongles, and custom controllers.
4 parts1.7kApache-2.0 - 2 layers116 × 33 mm

- 2 layers19 × 18 mm

Daughter board
hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!
4 parts915 - 2 layers24.8 × 24.8 mm

Nrf24 breakout
tardate/LittleArduinoProjects
a collection of "Little Electronic & Arduino Projects", most involving electronics or an Arduino in one way or another!
4 parts803MIT - 2 layers26 × 20 mm

Cap chain
drandyhaas/KiCadRoutingTools
A set of Python/Rust tools to aid routing in KiCad
4 parts744MIT