In this instructable we demonstrate the Persistence-of-Vision (POV) effect by exploiting a design characteristic of the BBC Micro:bit’s 5×5 LED array.

The Micro:bit sports a very nice 5×5 LED array that can be used in a variety of projects to provide visual feedback such as text, smileys or other codes, as cryptic or artistic as one’s imagination can get using a 5×5 array. (The LED array can also double as a light sensor, but this feature is not used in this instructable). What is not directly apparent, however, is that these LEDs are not always on: The controller chip on the micro:bit board flashes them at a high speed, so that

  • the power requirements are met (all LEDs being on all the time would draw more current than the board’s specs allow)
  • dimming is possible: We can control either global or individual LED brightness in code, by setting a value from 0-9.

By employing PWM (Pulse Width Modulation), the board controls each individual LED so that it appears to be continuously on and at the desired level of brightness . This is in essence, also a Persistence-of-Vision effect: We don’t see a blinking light, but a continuously lit one. The frequency at which the LEDs are blinking is somewhere around 55.8Hz, which is above the eyes’ (and brain’s) capacity to make out discrete flashes.

If you want to gain a more in-depth view of what goes on with the micro:bit’s LED array, you can also read Matt Oppenheim’s great write-up, in which he describes the results of his reverse-engineering:

We use this «feature» of the micro:bit’s LED array to create another POV effect, this time based on a stroboscope: By rotating a micro:bit with a LED line continuously lit, we manage to make the flashing of the LEDs visible and, while we’re at it, we create a nice (and noisy) daisy image :-). To sound even nerdier, what we accomplish in this instructable is mapping the temporal dimension (the LEDs’ PWM flashing) to a spatial one (the daisy stroboscopic image).

Leave a Reply