Digital camera sensors have come a very long way in the last few decades. Even just in the last 20 years, we’ve gone from the likes of the 4.1-Megapixel Nikon D2h to 100-megapixel monsters from Fuji, Hasselblad and Phase One. Hell, even smartphone camera sensors now boast 200-megapixel resolutions with a lot of neat digital wizardry. But as complex as processors have become, they’re very simple at their core.
This one, proudly proclaimed by its creator to be “the worst digital camera of all time ever”, shows that basic principle off extremely well. It was created by Peter Sanchez at Electromechanical Productions. It features an 8×6 grid of light-dependent resistors (LDRs) for a grand total of 48 pixels of resolution.
It’s a fascinating proof-of-concept experiment. Based on an Arduino Nano, it reads the light values on each of the 48 LDRs in order to try to build up an image. A very blocky, small and rudimentary image, but an image nonetheless. The Arduino on its own doesn’t have the capability to read all of these sensors. So, they’re fed through an array of integrated circuits (ICs) known as multiplexers.
These multiplexing chips allow the Arduino to check each pixel individually to record what value the sensor sees. The Arduino reads each row of six light sensors in sequence very rapidly in order to build up the raw pixel data. This means that it’s not only a very basic sensor but it’s a very basic rolling shutter sensor.
The data that is received from each sensor is then fed out via a USB cable to a PC running some custom software written in Python to be processed. You can download the code from GitHub to check it out for yourself. This script reads the data coming from each sensor and draws out the final result as a PNG file. It’s essentially like shooting a camera without a lens on it, exposing the sensor directly to the light. But with a sensor this low resolution, focusing an image onto it wouldn’t help much. Which is probably why Peter’s calling it “the worst digital camera of all time ever”
This isn’t the first DIY camera sensor we’ve seen here at DIYP. Sean Hodgins designed the Open Source digiObscura in 2019 that contained 1024 pixels in a 32×32 grid of tiny surface mount phototransistors. Sean’s was also based on an Arduino and used multiplexing to access the entire array.
[via Amateur Photographer]