Build an Arduino light painter! #Arduino


Andrew Mulholland tweeted at us about his awesome light painting project! Check out more info on the build here.

Light painting involves taking photographs at a long exposure in a dark area. Usually a DSLR is required for long exposure photography, but some modern point-and-shoot cameras also may have this feature.

If you can set your shutter speed on your camera to a minimum of 10 seconds and can attach it to a tripod, you should be able to try light painting.


The aim of this project was to create a simple, easy to build and cheap (under £50) light painter using an Arduino and its onboard flash memory instead of external storage (like a micro-sd card). Although I have been light painting for years, I was inspired to try this project after reading Adafruits guide on it and not having an SD card shield. I wanted to try and see if it was doable using the standard internal flash memory on an Arduino (which it turned out to be so).

For a technical explination of some of the decisions in this project, check the technical information page.

What do you need?

  • Camera – Must support a shutter speed of at least 10 seconds, up to 30 seconds is preferable.
  • Tripod – A tripod of some way to keep the camera from moving is extremely important
  • Wood – ~£1 – A long and thin piece of wood works great. Mine was an offcut and measures 1.2m. I wouldn’t recommend any less than 1.1m so you have space for your electronics.
  • Rubber bands – A collection of small rubber bands to hold everything together.


  • Arduno – ~£20 – An Arduino Uno will work, although is limited by built in memory. An Arduino Uno can hold 9120 pixels (27360 array items).
    An Arduino Mega (2560) on the other hand can store roughly 72,000 pixels (218,880 array items) so is more suitable for this project.
  • Neopixel strip – ~20 – A Neopixel strip or other WS2812B based strip. I used a 60 pixel 1 meter strip but you could also use much higher density strips like this 144 pixel per meter strip!
  • Battery – ~£7 – In my case, to keep it nice and simple, I used a USB battery pack.
  • Jumper cables – A handful of jumper cables is useful, at least male to male.


  • Small breadboard – Used for the button.
  • Breadboard button – Used with the breadboard to run the program. These are not needed as a jumper can just be used to make it look like a button on all the time.
  • 10k resistor – Used with the button.

Read more.



Featured Adafruit Product!


Adafruit NeoPixel Digital RGB LED Strip – Black 60 LED – 1m – BLACK: You thought it couldn’t get better than our world-famous 32-LED-per-meter Digital LED strip but we will prove you wrong! You wanted twice the LEDs? We got it (well, it’s 1.875 times as many but that’s within a margin of error). You wanted thinner strips? Now only 12.5 mm wide, 10 mm if you remove the strip from the casing. You wanted less noticeable strip color – this strip has black-colored flex PCB, which will be less visible against black-painted walls. This is the strip with black flex PCB, it’s identical to the white 60 LED/meter except it has a different color mask on the flex strip. Read more.

Adafruit publishes a wide range of writing and video content, including interviews and reporting on the maker market and the wider technology world. Our standards page is intended as a guide to best practices that Adafruit uses, as well as an outline of the ethical standards Adafruit aspires to. While Adafruit is not an independent journalistic institution, Adafruit strives to be a fair, informative, and positive voice within the community – check it out here:

Join Adafruit on Mastodon

Adafruit is on Mastodon, join in!

Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.

Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7pm ET! To join, head over to YouTube and check out the show’s live chat – we’ll post the link there.

Join us every Wednesday night at 8pm ET for Ask an Engineer!

Join over 36,000+ makers on Adafruit’s Discord channels and be part of the community!

CircuitPython – The easiest way to program microcontrollers –

Maker Business — “Packaging” chips in the US

Wearables — Enclosures help fight body humidity in costumes

Electronics — Transformers: More than meets the eye!

Python for Microcontrollers — Python on Microcontrollers Newsletter: Silicon Labs introduces CircuitPython support, and more! #CircuitPython #Python #micropython @ThePSF @Raspberry_Pi

Adafruit IoT Monthly — Guardian Robot, Weather-wise Umbrella Stand, and more!

Microsoft MakeCode — MakeCode Thank You!

EYE on NPI — Maxim’s Himalaya uSLIC Step-Down Power Module #EyeOnNPI @maximintegrated @digikey

New Products – Adafruit Industries – Makers, hackers, artists, designers and engineers! — #NewProds 7/19/23 Feat. Adafruit Matrix Portal S3 CircuitPython Powered Internet Display!

Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at !

No Comments

No comments yet.

Sorry, the comment form is closed at this time.