images brought to light through time

Similar projects worth following
An LED strip on a linear axis that displays images that can be captured with a 15 second long camera exposure.

Real time video of the "woman yelling at cat" image:

Pictures of the internal assembly:


The Just:In.Time Arduino script that reads the pixel information that was generated by the Python script and commands the linear axis and LED strip.

ino - 287.41 kB - 02/22/2020 at 20:57


Python script to extract pixel information and format it as an array that the Arduino script will read.

py - 1.83 kB - 02/22/2020 at 20:57



3D model of Just:In.Time assembly

step - 5.40 MB - 02/22/2020 at 17:54



12x24in, laser cut template sheet 2

AutoCAD DXF - 97.67 kB - 02/22/2020 at 17:51



12x24in, laser cut template sheet 1

AutoCAD DXF - 109.42 kB - 02/22/2020 at 17:51


  • 1 × Arduino Nano
  • 1 × TMC2208 Stepper Motor Driver With Stealth Chop
  • 1 × DC to DC converter, 12 VDC to 5 VDC 3A 15W
  • 1 × Metal Momentary Push Button Switch, 12 mm Dia Panel Mount
  • 1 × SK6812 RGBW LED strip, 144 LED/m, 1m, White PCB

View all 17 components

  • Lessons Learned

    John Opsahl03/01/2020 at 17:02 0 comments

    The stealth chop stepper motor driver and addressable RGB LEDs were technologies of this project that I had never worked with before. I was really impressed by how silent the stepper motor ran using the stealth chop driver. In fact, the only noise during operation is the rubbing between the linear axis cable rail and and the enclosure wall; something that can be avoided by making the enclosure a little wider. The addressable LEDs were just ridiculously fun to control with an Arduino. I also enjoyed learning about LED gamma correction that is used to achieve better human perceptible color contrast.

    The only things I would change if I was going to build this again are the 12V power supply AC wire routing and the mechanical connection between the LED strip cart and linear axis. At the moment the AC wires are routed directly over the Arduino Nano micro controller and stepper motor driver. I am a little surprised that this hasn't caused any signal noise issues. My best guess is that the AC currents are low enough to not be an issue. Also, with the current design it is not possible to move the LED strip across the full length of the linear axis in less than 15 seconds without significant oscillation of the LED strip. Stiffening the mechanical connection between the LED strip cart and the linear axis will reduce oscillations at higher speeds. Ideally, the LED strip would move across in less than 10 seconds to be more in line with the camera exposure capabilities of most smart phones.

View project log

Enjoy this project?



joshua.vader wrote 02/23/2020 at 04:58 point

Have you heard about the CHDK project? Perhaps your Powershot is supported:

  Are you sure? yes | no

joshua.vader wrote 02/23/2020 at 01:47 point

How fast can you get each scan line?

  Are you sure? yes | no

joshua.vader wrote 02/23/2020 at 01:55 point

ohhh ... so you are moving the entire vertical string of 144 LED's along the horizontal axis?  I was thinking that the strip was inside and used mirrors on the stepper drive or something to direct the light

  Are you sure? yes | no

John Opsahl wrote 02/23/2020 at 02:30 point

Yup, 72 LEDs actually. The image is 72x72. It takes a little over 15 seconds to flash the entire image. Any faster and the LED strip starts to oscillate too much. Longest shutter speed on most smart phones is 10 seconds so you get about 75% of the image. The shutter speed on my cannon powershot camera goes up to 15 seconds so it is what I have been using to capture the images.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates