If you took the same picture 4 times, with a red, blue, and green filter on three of the shots, you could combine those and get a color picture. You could potentially put those on a motor inside the camera housing that would rotate the colors appropriately and have the ardunio combine them.
You could also have a motor that would rotate the camera by a slight amount like 3 times horizontally and 3 times vertically to get a 9x better resolution photo
I used this technique to scan some old film negatives using a scanner and my phone screen as the r/g/b light source and then combined the 3 scans in photoshop. Fun but time consuming :D
@Matheus Pedrosa de Souza Based on what? I bought a 1200p global shutter camera that fits in my palm for ~150€ What are you talking about? Yes, global shutter cameras require more "wiring" and more power, and thus can also heat up a lot more.. but very difficult? meh
@@SeanHodgins Can't wait to see what you do! This is an amazing idea :D I wonder how well it would work with manual SLR lenses and an adaptor ring? You could change out lenses on the fly, seeing as they rely on fixed focal plane distances :)
With a buffer if there was motion/accelerometer sensors along with a fast enough exposure would it be possible to emulate higher resolutions by moving the camera and stitching in post like a panorama?
I would suggest a different hardware setup, utilizing 'dual co-processors' for reliable fast data transfer. beagleboard.org/pru en.wikipedia.org/wiki/BeagleBoard#BeagleBone_Black Unfortunately Arduino won't compile code, you'll have to learn assembly (which you might anyways, if you want a stable reliable transfer - without interrupts from the bootloader, etc) To save on those costly light sensors, and make things more complex - it is possible to use LED's as light sensors: wiki.analog.com/university/courses/electronics/electronics-lab-led-sensor
@@SeanHodgins The ESP32 has 4 ADCs and up to 20 channels. Split your photo cells into groups and run them on different ADCs. It will be much cheaper too because the ESP32 costs a couple dollars and you can use a few cheap 8:1 or 16:1 MUX chips. The ESP32 can run up to 240Mhz and has 2 cores. Much faster than an Arduino.
I hope people appreciate how awesome this is and realize the amount of time it takes to create things like these!! I rarely find myself awe struck with diy videos as most lack the novelty factor. And its wholesome how humble you strike me to be as well. Keep up the good work.
i don't get, why to do this kind of useless project. If you doing this to understand some kind of scientific research - is ok. But doing this only to get views on a UA-cam, it's like BRUH. It's not about talking about bad or good things, but We ALREADY having a good amount of old tech, which works better than this diy Like, bro, people did much greater amount to produce their little stuff, to work ok and one man from youtube, be like "hey, i did a camera from 19 century on a kid's circuitry with 3d print" i don't get this point of using materials to get useless stuff, bro, u wasting a usable materials.
@@jerbear7952 because it means he gets views , likes, recognition , and gets to keep building things, hopefully. Why you're replying to me? Why can't you just fvck off and mind your own business? This is a 2 year old comment you duche
I definitely do. Have any recommendations? I don't normally do huge component heavy projects like this, and this one was done this way so I could literally say "I built a digital camera by hand!". But I have a friend with a pick and place if things get any bigger.
you could make this into a COLOR! camera by putting some color filters in front of it. so the process would be put a red color filter in front of it, take an image. swap to a green filter take another image. swap to a blue filter and take the final image. then take the images and combine them into one by making each its own color channel (red, green, blue). this process will only work well on stationary objects but its interesting none the less. also what the part number of the photocells you used? you don't seem to say anywhere.
Or he could just make a Bayer array with the camera he's already got, use colored sharpies to color over the photodetectors. It would lose a little sensitivity but theoretically retain the same spatial resolution and add color.
jkenny1 Good idea! Maybe tiny pieces of filters(if can be found) will work better than sharpies? Also I could already imagine the resolution suffering😄
Exactly what Benedikt says, maybe a single ESP32 plus actual multiplexers (that will react in a matter of nanoseconds rather than milliseconds like the ATmega chips would)
I mean it is really cool that you can build a camera from the ground up at home, but videos like this make me really appreciate and realise how amazing technology is these days. Just look at the tiny sensors in even budget phones. It's still the same process but much smaller and still much much better, that's so cool. What a time to be alive!
A DIY I used to dream about! Had no engineering or coding skills always wanted someone to post a DIY image sensor on YT, and here it is! You're the best Sean! You're the best!
Man... This is so damn sick! Can’t imagine how hard was working on this project. It’s also to see how you improved in camera and video work. It’s amazing to have you back! :)
i don't know why people still need a flying car in 2020, we already have helicopter, elon musk says flying car would be horrific, it's not environmental friendly
WOW, this is super amazing, seriously! Next I want to know how an individual photocell is made and etched into silicon wafers at the nano scale and what makes a photocell actually photosensitive. Like your reflow oven, I use the same style of toaster as well and they work awesome!
You could double the resolution by moving sensor array in x and then y and back x dirrection by half of pixel sensor space. You would get 4 images interlanced image.
You’re a tech wizard, don’t stop doing stuff like this I like it a lot. I work with small circuits and Linux everyday , this project made my biggest project look like a useless rock lol. I respect the time and effort you put into this, always good to know there are intelligent intellectuals. You could easily be a very successful Engineer for almost any tech company. Cheers mate!
well done smartass, it’s clear that he’s accidentally used LCD in place of the word “screen” or the like. Just because it’s literal form doesn’t make sense doesn’t mean it isn’t obvious what he’s trying to say.
Seems like an innocent mistake.. considering this guy is likely an expert in pixel technology I'm 100 percent sure he knows better than any of us here the difference between OLED and LCD... And that's saying a lot considering I used to be a sales rep for LG Display. I could never imagine building my own.m working digital camera sensor.
@@trotskiftw just because something seems obvious, doesn't mean, it's right or it shouldn't be corrected. Some don't know that it's wrong or get confused by the fault, so it's legitimate to correct someone's mistake.
I got an idea for recording high res images with low res sensors... Consider you want to take an image from that face model thing you had. We want to capture an image in like 320*320 res. It's 100 times the resolution of the current sensor. If you can somehow limit the view angle of the sensor to 10th of the current view (for both x and y-axis) and capture each of these 100 virtual cells one at the time, you'll end up with 100 32*32 pixel images which hold 100th of the whole image. Put them together in order like a puzzle and you have a 320*320 image.
Or just do what Sony does with IBIS, but shifting the sensor slightly in x, y directions they take multiple shots offset and combine them to give you a super resolution one.
I've been working in digital imaging since the mid-90s, and now lead an engineering group at a very well known camera company. I have to congratulate you on a very cool project! Nicely done! I could see lots of ways of improving the performance of this camera, but what's the point? The objective isn't to build something that compares with the state-of-the-art in cameras, so embarking down the road of making enhancements (apart from maybe a color filter wheel!) seems like a waste of time (and there lies madness). What would be really cool would be to turn this in to an educational kit (probably with the soldering already done). A ScratchX version would be amazing. At work we have a bring your kids to work day, where we try to give employees' kids a flavor of what designing and building cameras is like. Putting together a kit version of this project would be a great activity for the teens. One that would teach them the fundamentals of camera hardware.
rkan2 No external ADCs needed on modern CMOS sensors. They are on-chip. In any case, there would be no fun (and lower educational value) using off the shelf image sensors. I worked for ON Semi (well, Aptina which was then bought by ON Semi) for 6 years, and since then have been working with Sony sensors on a daily basis.
Interesting project, the image quality may be awful but the fact that you did it and the stuff you learned while making it would undoubtedly have made it worth it. It's just awesome that it actually works really.
I can not believe you had some form of success attempting to do something of this magnitude, not even the best, niether the most dedicated amount us will not continue trying to make something like this. You are absolutly amazing.
Very cool! For a lens I'd recommend a projection lens from an old still image projector. Cheaper and better but probably doesn't matter at this resolution.
I worked at a company that made such sensor arrays with radiation-sensitive photodiodes. Each channel had an integrating op-amp, because we had to measure currents down in the pico-amps range. The arrays were used to test linear-accelerator (and cobalt-60) beams from radiotherapy machines. We did a similar thing using arrays of ionization chambers instead of diodes. Those were much more sparse and had high-voltage bias currents in the ~600V range. In machines had more detectors than integrators, we used analog MUXes to switch channels. In every case, a background measurement is made with the beam off, which subsequently gets subtracted from live measurements, and of course calibration is needed. I have my name on a patent regarding a calibration method for detector arrays.
As a professional photographer who has a degree in electrical engineering and a ton of parts in a bin next to the reflow oven sitting around, this video is the hyper-niche inspo I needed to start a new personal project. Thank you!
You should try using an old medium format lens for the next version. It has a bigger sensor coverage so you dont really have to disassemble it and just make a mount on the camera according to the lens mount
You can capture RGB images with this project. All you need to do, add 3 color filters (Red, Green, Blue) and do the same process 3 times. At the end you will get 3 images , 1 for Red color in the image, 1 for Green and 1 for Blue. Add this pictures to together to form 1 Colored image )
If you ad an LED, make sure it is that same frequency. Also, for showing the images larger online, since you have photoshop, go to image and resize image , on the option that says AUTOMATIC, change it to NEAREST NEIGHBOR. Its a pixel art trick, its not perfect, like if you zoom in, some enlarged pixels will have an extra row of that color and the one its touching is missing a row BUT it will not blur your original photo out like the other bilinear options, it keeps all pixel neighbors the same and you still get those clean hard edges from your sensor, except it's being translated to us as a viewer better and bigger!
How absolutely, totally cool!! Here’s an idea for extra-credit hacking: Some high-digital cameras from Olympus, Panasonic, Pentax and Sony have so-called “pixel shift” high resolution modes. They use the image stabilization system to move the sensor in sub-pixel increments between exposures, and then combine a number of shots (varying numbers, but 8 shots comes to mind as typical) into a single, higher-resolution image. I don’t know what the resolution of the Shapeoko is, or you could keep the camera absolutely parallel (zero pitch or yaw relative to the lens axis), but maybe you could manage the same trick with your camera. AH! *much* easier, though, would be to move the camera distances close to its field of view, take multiple shots with overlap between images and then stitch the individual shots together into single larger one. I don’t know how well it would work with so few pixels, but Photoshop’s “align layers” function does this. You’d need to do it with a subject relatively close to the camera (as opposed to an outdoor landscape, for instance), because pure x-y movement would move the area being imaged by exactly the amount of the camera movement. But doing this, you could potentially (albeit with loads of patience) make 1 megapixel images with your 1 kilopixel camera. That might be a bit extreme, you’d probably need 2000 sub-images to do that, to have enough overlap. But I bet you could make a VGA (640x480) or QVGA (320x160) image relatively easily :-)
Thats a lot of food for thought! Originally I was entertaining the idea of moving a single pixel along an XY plane to make an "infinite" pixel grid, but decided against it. Love the idea of moving the whole sensor just a small amount. I bet that would be way easier too, and possible to use the current hardware. I think I would need some help in the software side of things, but it would be really cool. I'm definitely going to look into that.
@@SeanHodgins - I bet there's a clever way to do it in Photoshop with masks, although it might be a major PITA to make the mask that'd select the right pixels to merge. (I'm thinking rez-up each individual image to the final size using nearest-neighbor resampling, then have a mask that'd select one pixel out of each 2x2, 3x3, 4x4 or whatever grid depending on how many samples you were dealing with, shift that mask to the appropriate position for each sub-image and successively merge the images through the mask to assemble the final image.) It'd be easy to write a program to merge files for someone who knew Python (for example) and what image file formats look like. Maybe another viewer here will see this and jump in to help? Pixel-shift high res can be tricky to do in digital cameras if you're aiming for more actual pixels in the final image. Sometimes they do it just to overcome the detail loss associated with demosaicing the RGB color filter array, stacking red green and blue raw pixels up on top of each other, and that's relatively straightforward. It gets more difficult when you're trying to extract what amounts to sub-pixel information. The gaps between photodiodes in your camera are actually an advantage, because you won't have actual image data overlapping if you just shift so as to sample in between the diode positions of the first shot. I'd imagine you could do a 2x2 sample with no overlap at all. (You can sample with overlap, but beyond a point you won't get any more resolution without some image processing. But 2x2 should be easy.) (Yeesh, blah, blah, blah, hope this was at least a little bit helpful :-0)
Hmmm i think manual photoshoping each one is little bit too hard, why not use matrix instead?,like move alot then broke 32x32 matrix into spaced higher matrix like 640x320, But i think thats need an sbc to handle so much data. Hehe just little thought from third country student
5:45 The *digiOBSCURA* probably is a double easter-egg name. There is a Camera Obscura on a terror game called Fatal Frame. The "O" of Obscura is the "Aperture Science" logo (from game Portal).
This is beyond fantástic for one man in his room!!! You should print the first image made by the camera, it will give you in the future a nice history for you!!!
@@SeanHodgins there are existing algorithms for this. even our eyes do this to increase resolution, by vibrating like crazy all the time. if you place the sensor on a tilting mechanism you can get much higher resolution by sampling once, tilting the image a _tiny_ (really tiny, must be half the angle each pixel represents) angle on one axis and measure the _difference_ between successive pixels. my description is silly, but i'm sure you get the idea.
They don't have to be filters i think. Maybe you could make the addon light but with RGB and use just pure red, green and blue light to take the pictures?
5:47 just for educational purpose: OLED sreens are not LCD. LCD stands for "liquid crystal display" and an OLED consists of self emitting organic LEDs (hence: OLED). The term LCD display does also not exist, if anybody stumbled across that, as the word "display" is included in the acronym. Or in other words: there is no liquid crystal display display. At least it would mean something different. Like a display which only displays liquid crystal displays.
In 2016 i made a very similar but much more sensitive array out of SiPM detectors. They are basically an array of avalanche photodiodes designed to make an analog output similar to a photomultiplier tube. This was coupled to an array of CsI:Tl crystals that were in series optically with the array. It made a imaging radiation detector. Wasn't too practical but it could see a 137Cs check disk from several feet away, but more importantly it gave direction sensing information to help locate nuclear material with very weak fields.
@@mostlymessingabout Overpriced, yes, but still nothing to scoff at. You get what you pay for and they're extremely good cameras ... just that the quality difference between a $200 and a $2000 camera isn't really worth it if you're just a random hobbyist. Think of it as a Leica M. Great camera, but not worth it if you're not a professional photographer or swimming in money.
Next step is to put a tilt/shift lens on front, capture several images with small translations of the lens moved automatically by a servo, and then combine all the images using a state-of-the-art super-resolution algorithm. This increasing image resolution with the same sensor, at the expense of capture time.
This is also a great testbed for other compressed sensing techniques, like coded-aperture or plenoptic imaging. Any technique used for single-pixel cameras could be applied to this setup to increase the spatial resolution as long as multiple exposures can be taken. For example, instead of a lens, there could be a translucent LCD flashing a unique coded aperture for each exposure.
@@SeanHodgins There are lots of old view camera parts out there, and with the big sensor area, they'd be great for this system. A 4x5 body won't be super expensive, and there are lots of view camera lenses floating around on the used market. One issue for them is the shutters - I don't know if anyone is making shutters any more. They are "clockwork" mechanisms, so they tend to break/fail and are hard to maintain, so working/repaired ones aren't exactly cheap as chips. But if you are dealing with multi-second exposure times, you can go original old school, and simply take the lens cap off, wait, then put it back on. The whole view camera body/lens system would allow for focusing and great image quality optically.
A photo of a clock with a thick seconds arm would be nice, exactly because of the slow reading time. This is like a slow motion model that can serve as a demonstration for effects that happen on real image sensors when filming fast-spinning objects (rolling shutter)
@@chaos.corner but taking signal/voltage can be continuous. But there is peoblem with inertia of photoresisor. I have one, where changing resistance from daily light to black box took 20-30sec. So it can be fun only with fast sensor... OR with moving not one pixel sensor, but old phone camera sensor. 😋🤩 Thank for new video sean with this idea. 😁🤗
Great project! Loved how "basic" it is, yet results were great! Have you thought of stacking? Just keep exposing the same image multiple times and then use photoshop (or in camera?) to stack them to see if you can get a higher res'ed image.
The folder that you had shown has multiple pictures, I don't know if all of them were took at the same time, bit a thing you could do is make the sensor track the object in multiple parts and then stich all pieces together to make a bigger resolution
Not an electronic expert here, but maybe you should connect every pixel to tiny capacitor and gather data from them after shutter close. Also would be cool to see some mechanics to move matrix and scan different areas of the image... Or color filter carousel to make rgb pics. Any way cool device for making file pictograms, 32x32 already)
You can take 4 different shots each with different illuminations, white light, red light, blue light and green light. Use them all as r-g-b and b&w channels to make a color picture! Awesome.
@@orafaball2162 no its a oled screen, not LCD. LCD stands for Liquid Crystal Display SeanHodgins: real time preview on the oled was not an option or not enough time?
We need version 2, in version 2 you have 4 chips instead of 2, and a microscopic surface mount capacitor behind each solar cell. The first pair of chips reads the voltage and the second set discharges the capacitor. You would have incredible dynamic range, and a SNR about 1000x higher. You also could collaborate with another channel to build AI that superresolutions your output, as there is likely to be subpixel information you could obtain. Lastly, if you had a servo that moved the sensor 1/2 a pixel up / right, in a cycle of 4, you could greatly increase the resolution for static shots.
Honestly I love this. Very educational. I'm making connections to what I already knew about how cameras and image sensors worked to how lens apature focus. Thank you.
You could drastically increase resolution still using DIY sensor by projecting part of image to whole sensor and then moving which part to project using mirrors and servo. Of course this requires speeding up capture, there is two approaches to do that: - If bottleneck is switching pixels, use native AVR C functions instead of Arduino's slow ones. I hope it will be enough, but if not you can use higher frequency microcontroller - If bottleneck is collecting enough light on sensor, attach capacitor to each pixel and make mechanism that discharges all capacitors at once and mechanism that disconnects capacitors from charging (optional, if reading it not instant, may be implemented as shutter)
There was this dude who made a camera from a scanner and it made like 100 megapixel or something huge photos. So here's the idea - in a bigger enclosure put a smaller sensor that moves in rows and stitches the photos and it's much slower, but you get a bigger picture in the end! :)
This is incredible. I appreciate the amount of time and work you put into this project! I just learned how CMOS image sensors work, thought about what it would take to design my own camera, and of course someone had already done it. Thanks for sharing the experience, would be awesome to see another video giving mode detail of the design process and issues you ran into while debugging the code.
I can't wait for someone to come up with a DIY machine that automatically solders phototransistors, so you don't have to do it by hand, to create large format camera sensors...
@@Ferferite nice, only this make a sense for bigger resolution. Maybe they will make a video of process and we will see speed of completing 1-8 pieces in 1 sec. See him solder 966 pieces was painfull for me in this century. 😃
Most Arduinos have more than one analog input. You could read 2, 4 or even 8 pixels at once. That would make your mux circuit a little more complex, but would multiply the scan rate accordingly.
you mentioned when you reduce its size, the image comes back, thats an optical effect which one (e.g. a biological entity per se). Like priming with vowels removed in a sentence which it is still read, but distortion through our biological processing is micro projecting. (we know the image is pixable only in squares) have a great week ^^
Very cool build! To make it work with low light, I´d use photodiodes, give them a forward bias to avoid clipping in dark areas, and use a transimpedance amplifier (easy to do with an op-amp) to convert the low current into some reasonable voltage for the ADC. Should work with analog multiplexers, too, so only one bias circuit and one amp necessary. Simple upgrade.
I realize it’s four years later. I wonder if you could increase the resolution by developing an algorithm to interpolate the delta between each sensor and its surrounding sensor to create a virtual sensor.
This is really cool to see, especially after Sony’s recent announcement of a global image sensor that actually takes a reading from every single pixel simultaneously. Rather than scanning like an old CRT. Or every other digital image sensor.
I used to build my own pinhole film cameras. I had lots of different designs and projects. This is inspiring... too bad I know nothing about electronics.
I might try and do a MEGAPixel next! What do you think?
you need to add color to it. its easy to do, very easy tbh, i wrote a comment about it. i would love to see it ♥️
I think that it will be another level of hard work.
would be great!
SeanHodgins how about a thermal version? What’s the smallest PIR (or similar) component you can buy?
@@benarthur3517 I believe with old digital cameras you just have to take a filter off of the sensor, there's videos on YT. But yeah that'd be dope
If you took the same picture 4 times, with a red, blue, and green filter on three of the shots, you could combine those and get a color picture. You could potentially put those on a motor inside the camera housing that would rotate the colors appropriately and have the ardunio combine them.
That's how remote monochrome astrophotography setups work
You could also have a motor that would rotate the camera by a slight amount like 3 times horizontally and 3 times vertically to get a 9x better resolution photo
That's how JWST and most telescopes work
I used this technique to scan some old film negatives using a scanner and my phone screen as the r/g/b light source and then combined the 3 scans in photoshop. Fun but time consuming :D
You call them remote but my laptop and me are right next to it in the field :p
@@ravbin86
Camera reviewers: "Seems to have some rolling shutter issues..."
Just make it a global shutter sensor ;) Such cameras aren't even that expensive when you consider industrial cameras.
@rkan2 , Thomas thinks he is a comedian.
*" but maybe that's just me "
" for me it's a must to have at least 3 SD card slots and 7 axis 4D image stabilization" .
@Matheus Pedrosa de Souza Based on what? I bought a 1200p global shutter camera that fits in my palm for ~150€ What are you talking about? Yes, global shutter cameras require more "wiring" and more power, and thus can also heat up a lot more.. but very difficult? meh
This is cool!! You designed a camera to create 32x32 application icons directly out of real life photos!
iphone users:
oh, my iphone 2g got 20 more pixels!
@@nikostalk5730its so much better than androids... 8k resolution... 1020 pixels total is so good! Cutting edge tech by tim apple!
@@nikostalk5730..just what is thst supposed to mean or make fun of
1:49 "Isn't it amazing how the details come back?"
Ah yes, I can see everything so clear
haha
It's for person with clear eyes sight like me, not for you.
Or someone with big screen
Me looking at the white dot in the middle : ah yes
@@albertllubitmusicr/iamverycool
Anyone who took a pic of Bigfoot or an UFO had this Camera on hand...
cuz regular camera is microchipped by CIA, and a pic of Bigfoot or an UFO just disappeared while processed !!!
@@RobotN001 bro most camera companies aren't even American, ain't no foreign company letting the CIA get involved in their products
Dont forget bank CCTV footage
Will 93 that’s just what they want you to think
😂😂😂
Use a dedicated fast ADC and buffer RAM chip to grab a picture quickly, then send that to the Arduino :)
Version 2! Must see! :D
I think that would be needed for sure!
@@SeanHodgins Can't wait to see what you do!
This is an amazing idea :D I wonder how well it would work with manual SLR lenses and an adaptor ring? You could change out lenses on the fly, seeing as they rely on fixed focal plane distances :)
With a buffer if there was motion/accelerometer sensors along with a fast enough exposure would it be possible to emulate higher resolutions by moving the camera and stitching in post like a panorama?
I would suggest a different hardware setup, utilizing 'dual co-processors' for reliable fast data transfer.
beagleboard.org/pru
en.wikipedia.org/wiki/BeagleBoard#BeagleBone_Black
Unfortunately Arduino won't compile code, you'll have to learn assembly (which you might anyways, if you want a stable reliable transfer - without interrupts from the bootloader, etc)
To save on those costly light sensors, and make things more complex - it is possible to use LED's as light sensors: wiki.analog.com/university/courses/electronics/electronics-lab-led-sensor
@@SeanHodgins The ESP32 has 4 ADCs and up to 20 channels. Split your photo cells into groups and run them on different ADCs. It will be much cheaper too because the ESP32 costs a couple dollars and you can use a few cheap 8:1 or 16:1 MUX chips. The ESP32 can run up to 240Mhz and has 2 cores. Much faster than an Arduino.
Still better image quality than security cameras.
and the ones people use to take pix of UFOs
You right
Security cameras working 24/7 they don't need high resolution. Do you realize, how much memory it is need to store high quality video?
Also there is a cameras that work in high quality, but with moving sensor's, or light sensors, etc.
@@holycogs2706 its a joke
I hope people appreciate how awesome this is and realize the amount of time it takes to create things like these!! I rarely find myself awe struck with diy videos as most lack the novelty factor. And its wholesome how humble you strike me to be as well. Keep up the good work.
i don't get, why to do this kind of useless project.
If you doing this to understand some kind of scientific research - is ok.
But doing this only to get views on a UA-cam, it's like BRUH.
It's not about talking about bad or good things, but
We ALREADY having a good amount of old tech, which works better than this diy
Like, bro, people did much greater amount to produce their little stuff, to work ok
and one man from youtube, be like "hey, i did a camera from 19 century on a kid's circuitry with 3d print"
i don't get this point of using materials to get useless stuff, bro, u wasting a usable materials.
@@nikostalk5730You don't get hobbies
Why do you care how others perceive it? Why not just say you appreciate it?
@@jerbear7952 because it means he gets views , likes, recognition , and gets to keep building things, hopefully. Why you're replying to me? Why can't you just fvck off and mind your own business? This is a 2 year old comment you duche
Get rid of stupid music
Finally, sensor that can create decent texture packs for Minecraft.
Nice XD XD
Dude - you need a foot-operated vacuum pickup pen - way faster, especally for polarised parts, as you can set the tape to the right orientation.
I definitely do. Have any recommendations? I don't normally do huge component heavy projects like this, and this one was done this way so I could literally say "I built a digital camera by hand!". But I have a friend with a pick and place if things get any bigger.
you could make this into a COLOR! camera by putting some color filters in front of it.
so the process would be put a red color filter in front of it, take an image.
swap to a green filter take another image.
swap to a blue filter and take the final image.
then take the images and combine them into one by making each its own color channel (red, green, blue).
this process will only work well on stationary objects but its interesting none the less.
also what the part number of the photocells you used? you don't seem to say anywhere.
Or he could just make a Bayer array with the camera he's already got, use colored sharpies to color over the photodetectors. It would lose a little sensitivity but theoretically retain the same spatial resolution and add color.
That’s how 8-bit guy did it with a b&w webcam
@@stabilini Exactly, this would just be a lower resolution version of what he did.
jkenny1 Good idea! Maybe tiny pieces of filters(if can be found) will work better than sharpies?
Also I could already imagine the resolution suffering😄
@@jkenny1He'd lose a 3rd of the resolution once he demosaics though.
Would be cool to see this backed with an FPGA to attempt higher read rates.
You could probobly do it pretty easily with binary counters and ram chips
Or just use a better microcontroller... and a better screen ;-)
Exactly what Benedikt says, maybe a single ESP32 plus actual multiplexers (that will react in a matter of nanoseconds rather than milliseconds like the ATmega chips would)
Parallel capture of the 32 cells in a column/row and then change to next would do wonders already, could almost/possibly even do motion
@@0xbenedikt WAIT Benedict I know you dont I ;)
I mean it is really cool that you can build a camera from the ground up at home, but videos like this make me really appreciate and realise how amazing technology is these days. Just look at the tiny sensors in even budget phones. It's still the same process but much smaller and still much much better, that's so cool. What a time to be alive!
A DIY I used to dream about! Had no engineering or coding skills always wanted someone to post a DIY image sensor on YT, and here it is! You're the best Sean! You're the best!
Man... This is so damn sick!
Can’t imagine how hard was working on this project.
It’s also to see how you improved in camera and video work.
It’s amazing to have you back! :)
yss.. i m thinking the same...
A man in the early 1920s,
''In 2020 we will have flying cars''
Sean in 2020,
''Here is a 1000 pixel camera''
Baby steps!
1000 pixels made at home for fun, flying cars are coming soon as well...
even funnier, the experimental televisions of the 1920s were roughly this same resolution
i don't know why people still need a flying car in 2020, we already have helicopter, elon musk says flying car would be horrific, it's not environmental friendly
I'd rather have universal low cost mass transit than a flying car
This guy is now making cameras for CCTV companies, banks, robbery hotspots etc.
My heart rate is increasing everytime he touches the sensor with his nail
WOW, this is super amazing, seriously! Next I want to know how an individual photocell is made and etched into silicon wafers at the nano scale and what makes a photocell actually photosensitive. Like your reflow oven, I use the same style of toaster as well and they work awesome!
You can get a colored image by taking three images under different color filters and combining it in post.
do you know how to do it? I have a project about it. please contact me. tubbiya@hotmail.com
@@DesignScripter
This video should get it across
ua-cam.com/video/a-ny3geJ-nk/v-deo.html
So a fifteen second shutter instead of five with clicks every five seconds when a servo switches filters. I LOVE IT. Do it.
You could double the resolution by moving sensor array in x and then y and back x dirrection by half of pixel sensor space. You would get 4 images interlanced image.
"Superresolution"
+the colorwheel idea and then stitch multiple images together to get a "high-res" shot.
That's freakin' cool. Cameras have always been magic to me, so its cool to learn how they actually work.
Dude this has been on my "I wonder if that would work..." List for like a decade. I'm glad to see that it would, in fact, work
You’re a tech wizard, don’t stop doing stuff like this I like it a lot. I work with small circuits and Linux everyday , this project made my biggest project look like a useless rock lol. I respect the time and effort you put into this, always good to know there are intelligent intellectuals. You could easily be a very successful Engineer for almost any tech company. Cheers mate!
5:51 "OLED LCD" doesn't make any sense, these are two completely different technologies.
Oops.
well done smartass, it’s clear that he’s accidentally used LCD in place of the word “screen” or the like. Just because it’s literal form doesn’t make sense doesn’t mean it isn’t obvious what he’s trying to say.
Seems like an innocent mistake.. considering this guy is likely an expert in pixel technology I'm 100 percent sure he knows better than any of us here the difference between OLED and LCD... And that's saying a lot considering I used to be a sales rep for LG Display. I could never imagine building my own.m working digital camera sensor.
@@trotskiftw just because something seems obvious, doesn't mean, it's right or it shouldn't be corrected. Some don't know that it's wrong or get confused by the fault, so it's legitimate to correct someone's mistake.
@@scenicdepictionsofchicagolife you're really good.
I got an idea for recording high res images with low res sensors... Consider you want to take an image from that face model thing you had. We want to capture an image in like 320*320 res. It's 100 times the resolution of the current sensor. If you can somehow limit the view angle of the sensor to 10th of the current view (for both x and y-axis) and capture each of these 100 virtual cells one at the time, you'll end up with 100 32*32 pixel images which hold 100th of the whole image. Put them together in order like a puzzle and you have a 320*320 image.
This is basically how panoramas are stitched
Or just do what Sony does with IBIS, but shifting the sensor slightly in x, y directions they take multiple shots offset and combine them to give you a super resolution one.
@@FennecbuttYou could achieve similar results with a complex optical assembly that basically redirects the light onto your sensor.
I've been working in digital imaging since the mid-90s, and now lead an engineering group at a very well known camera company. I have to congratulate you on a very cool project! Nicely done!
I could see lots of ways of improving the performance of this camera, but what's the point? The objective isn't to build something that compares with the state-of-the-art in cameras, so embarking down the road of making enhancements (apart from maybe a color filter wheel!) seems like a waste of time (and there lies madness).
What would be really cool would be to turn this in to an educational kit (probably with the soldering already done). A ScratchX version would be amazing.
At work we have a bring your kids to work day, where we try to give employees' kids a flavor of what designing and building cameras is like. Putting together a kit version of this project would be a great activity for the teens. One that would teach them the fundamentals of camera hardware.
I say buy some ON Semi / Sony sensors and slap some ADCs on it and make an industrial camera of sorts :P
rkan2 No external ADCs needed on modern CMOS sensors. They are on-chip.
In any case, there would be no fun (and lower educational value) using off the shelf image sensors. I worked for ON Semi (well, Aptina which was then bought by ON Semi) for 6 years, and since then have been working with Sony sensors on a daily basis.
It puzzles me that someone like you finds the time to watch UA-cam
reaper. I barely do. Especially with two young kids!
@@pandasinspace3560 It doesn't take a lot of googling...
A DIY pick and place machine would make a great addition to your shop. I have one and boy does that save me a lot of time!
Interesting project, the image quality may be awful but the fact that you did it and the stuff you learned while making it would undoubtedly have made it worth it. It's just awesome that it actually works really.
I can not believe you had some form of success attempting to do something of this magnitude, not even the best, niether the most dedicated amount us will not continue trying to make something like this. You are absolutly amazing.
Very cool!
For a lens I'd recommend a projection lens from an old still image projector. Cheaper and better but probably doesn't matter at this resolution.
Thats a great idea! I see those in flea markets all the time. Also a regular old digital projector would probably work great too.
Now add it to a 2D cnc, make a picture, move it and make another. Repeat until you can stitch a big image together.
I worked at a company that made such sensor arrays with radiation-sensitive photodiodes. Each channel had an integrating op-amp, because we had to measure currents down in the pico-amps range. The arrays were used to test linear-accelerator (and cobalt-60) beams from radiotherapy machines.
We did a similar thing using arrays of ionization chambers instead of diodes. Those were much more sparse and had high-voltage bias currents in the ~600V range.
In machines had more detectors than integrators, we used analog MUXes to switch channels. In every case, a background measurement is made with the beam off, which subsequently gets subtracted from live measurements, and of course calibration is needed. I have my name on a patent regarding a calibration method for detector arrays.
As a professional photographer who has a degree in electrical engineering and a ton of parts in a bin next to the reflow oven sitting around, this video is the hyper-niche inspo I needed to start a new personal project. Thank you!
You should try using an old medium format lens for the next version. It has a bigger sensor coverage so you dont really have to disassemble it and just make a mount on the camera according to the lens mount
Dude, you're an absolute legend. This is beyond cool!
I'm just happy it worked!
If the mux was for this project...i wonder what *this* is really for...
:D I like your way of thinking... hahaha
This was the best way possible to simply and quickly grasp the concept of the digital photography electronic workings. Thank you! Just perfect!
I HAVE BEEN INTO THIS STUFF FOR SO LONG THANK YOU!
The algorithm has blessed me...
Get back in it!
This is the camera them UFO spotters are using
Now shipping with the 'auto shake' image destabilizer for the historically-accurate, authentic feel.
You can capture RGB images with this project. All you need to do, add 3 color filters (Red, Green, Blue) and do the same process 3 times. At the end you will get 3 images , 1 for Red color in the image, 1 for Green and 1 for Blue. Add this pictures to together to form 1 Colored image )
Instead of photo cells (expensive), do you think reverse biased LEDs would work?
Not sure but definite worth a try!
youe it would work, but with very low sensivity ... use better phototransistors , your noiseratio will be much more better.
If you ad an LED, make sure it is that same frequency. Also, for showing the images larger online, since you have photoshop, go to image and resize image , on the option that says AUTOMATIC, change it to NEAREST NEIGHBOR. Its a pixel art trick, its not perfect, like if you zoom in, some enlarged pixels will have an extra row of that color and the one its touching is missing a row BUT it will not blur your original photo out like the other bilinear options, it keeps all pixel neighbors the same and you still get those clean hard edges from your sensor, except it's being translated to us as a viewer better and bigger!
Man, you are amazing! I really hope more people would pick up such hobbies: society would be a thousands years ahead
How absolutely, totally cool!! Here’s an idea for extra-credit hacking: Some high-digital cameras from Olympus, Panasonic, Pentax and Sony have so-called “pixel shift” high resolution modes. They use the image stabilization system to move the sensor in sub-pixel increments between exposures, and then combine a number of shots (varying numbers, but 8 shots comes to mind as typical) into a single, higher-resolution image. I don’t know what the resolution of the Shapeoko is, or you could keep the camera absolutely parallel (zero pitch or yaw relative to the lens axis), but maybe you could manage the same trick with your camera.
AH! *much* easier, though, would be to move the camera distances close to its field of view, take multiple shots with overlap between images and then stitch the individual shots together into single larger one. I don’t know how well it would work with so few pixels, but Photoshop’s “align layers” function does this. You’d need to do it with a subject relatively close to the camera (as opposed to an outdoor landscape, for instance), because pure x-y movement would move the area being imaged by exactly the amount of the camera movement. But doing this, you could potentially (albeit with loads of patience) make 1 megapixel images with your 1 kilopixel camera. That might be a bit extreme, you’d probably need 2000 sub-images to do that, to have enough overlap. But I bet you could make a VGA (640x480) or QVGA (320x160) image relatively easily :-)
Thats a lot of food for thought! Originally I was entertaining the idea of moving a single pixel along an XY plane to make an "infinite" pixel grid, but decided against it. Love the idea of moving the whole sensor just a small amount. I bet that would be way easier too, and possible to use the current hardware. I think I would need some help in the software side of things, but it would be really cool. I'm definitely going to look into that.
Dave Etchells thanks! for the information and the term "pixel shift high resolution" exactly what I was wondering if possible
@@SeanHodgins - I bet there's a clever way to do it in Photoshop with masks, although it might be a major PITA to make the mask that'd select the right pixels to merge. (I'm thinking rez-up each individual image to the final size using nearest-neighbor resampling, then have a mask that'd select one pixel out of each 2x2, 3x3, 4x4 or whatever grid depending on how many samples you were dealing with, shift that mask to the appropriate position for each sub-image and successively merge the images through the mask to assemble the final image.)
It'd be easy to write a program to merge files for someone who knew Python (for example) and what image file formats look like. Maybe another viewer here will see this and jump in to help?
Pixel-shift high res can be tricky to do in digital cameras if you're aiming for more actual pixels in the final image. Sometimes they do it just to overcome the detail loss associated with demosaicing the RGB color filter array, stacking red green and blue raw pixels up on top of each other, and that's relatively straightforward. It gets more difficult when you're trying to extract what amounts to sub-pixel information.
The gaps between photodiodes in your camera are actually an advantage, because you won't have actual image data overlapping if you just shift so as to sample in between the diode positions of the first shot. I'd imagine you could do a 2x2 sample with no overlap at all. (You can sample with overlap, but beyond a point you won't get any more resolution without some image processing. But 2x2 should be easy.)
(Yeesh, blah, blah, blah, hope this was at least a little bit helpful :-0)
Hmmm i think manual photoshoping each one is little bit too hard, why not use matrix instead?,like move alot then broke 32x32 matrix into spaced higher matrix like 640x320, But i think thats need an sbc to handle so much data. Hehe just little thought from third country student
Maybe just attach the image sensor to some servo and throw it around the camera body?
Awesome video! Would have been cool to see three colour-filtered shots combined in Photoshop to make a colour image.
5:45 The *digiOBSCURA* probably is a double easter-egg name.
There is a Camera Obscura on a terror game called Fatal Frame.
The "O" of Obscura is the "Aperture Science" logo (from game Portal).
Enjoy it! you are 1 in millions, that makes his own technology! Congratulations, and keep doing so!
This is beyond fantástic for one man in his room!!! You should print the first image made by the camera, it will give you in the future a nice history for you!!!
I wonder what kind of upscaling you would get by merging multiple exposures with a bit of sensor-shifting.
Worth a try!
@@SeanHodgins there are existing algorithms for this. even our eyes do this to increase resolution, by vibrating like crazy all the time.
if you place the sensor on a tilting mechanism you can get much higher resolution by sampling once, tilting the image a _tiny_ (really tiny, must be half the angle each pixel represents) angle on one axis and measure the _difference_ between successive pixels.
my description is silly, but i'm sure you get the idea.
You should try a colour image with 3 coloured filters
Red green and blue
Stack them in photoshop
They don't have to be filters i think. Maybe you could make the addon light but with RGB and use just pure red, green and blue light to take the pictures?
@@50t5 But then you would have to take the photo in a really dark room
@@0xbenedikt true, that's the negative side of that.
THIS and take some outdoor pictures with those
Reminds me of a Robot eye I saw in a book from the 80s. I think yours is higher resolution.
5:47 just for educational purpose: OLED sreens are not LCD. LCD stands for "liquid crystal display" and an OLED consists of self emitting organic LEDs (hence: OLED). The term LCD display does also not exist, if anybody stumbled across that, as the word "display" is included in the acronym. Or in other words: there is no liquid crystal display display. At least it would mean something different. Like a display which only displays liquid crystal displays.
In 2016 i made a very similar but much more sensitive array out of SiPM detectors. They are basically an array of avalanche photodiodes designed to make an analog output similar to a photomultiplier tube. This was coupled to an array of CsI:Tl crystals that were in series optically with the array. It made a imaging radiation detector. Wasn't too practical but it could see a 137Cs check disk from several feet away, but more importantly it gave direction sensing information to help locate nuclear material with very weak fields.
So basically you've made the world's lowest resolution Hasselblad.
Hassleblad is just an overpriced medium format camera... nothing special
@@mostlymessingabout Overpriced, yes, but still nothing to scoff at. You get what you pay for and they're extremely good cameras ... just that the quality difference between a $200 and a $2000 camera isn't really worth it if you're just a random hobbyist. Think of it as a Leica M. Great camera, but not worth it if you're not a professional photographer or swimming in money.
Awesome project! Love such projects which try to reinvent stuff!
Next step is to put a tilt/shift lens on front, capture several images with small translations of the lens moved automatically by a servo, and then combine all the images using a state-of-the-art super-resolution algorithm. This increasing image resolution with the same sensor, at the expense of capture time.
This is also a great testbed for other compressed sensing techniques, like coded-aperture or plenoptic imaging. Any technique used for single-pixel cameras could be applied to this setup to increase the spatial resolution as long as multiple exposures can be taken. For example, instead of a lens, there could be a translucent LCD flashing a unique coded aperture for each exposure.
These are some crazy ideas. Would love to test them out!
@@SeanHodgins There are lots of old view camera parts out there, and with the big sensor area, they'd be great for this system. A 4x5 body won't be super expensive, and there are lots of view camera lenses floating around on the used market. One issue for them is the shutters - I don't know if anyone is making shutters any more. They are "clockwork" mechanisms, so they tend to break/fail and are hard to maintain, so working/repaired ones aren't exactly cheap as chips. But if you are dealing with multi-second exposure times, you can go original old school, and simply take the lens cap off, wait, then put it back on. The whole view camera body/lens system would allow for focusing and great image quality optically.
Totally impressive. Quality content, you deserve some attention on UA-cam.
A photo of a clock with a thick seconds arm would be nice, exactly because of the slow reading time. This is like a slow motion model that can serve as a demonstration for effects that happen on real image sensors when filming fast-spinning objects (rolling shutter)
AWESOME! Maybe a good time to mod the 3d printer into a pick and place machine
If I do a megapixel, pick n place will be 100% necessary.
@@SeanHodgins Maybe do a single sensor with stepper placement. That would be pretty slow for sure though.
@@chaos.corner but taking signal/voltage can be continuous. But there is peoblem with inertia of photoresisor. I have one, where changing resistance from daily light to black box took 20-30sec. So it can be fun only with fast sensor... OR with moving not one pixel sensor, but old phone camera sensor. 😋🤩 Thank for new video sean with this idea. 😁🤗
8:04 so that’s how they pictured mars face
No this is how they blurred the mars face.
Great project! Loved how "basic" it is, yet results were great! Have you thought of stacking? Just keep exposing the same image multiple times and then use photoshop (or in camera?) to stack them to see if you can get a higher res'ed image.
Such information for diy projects was rare to find until now.
The folder that you had shown has multiple pictures, I don't know if all of them were took at the same time, bit a thing you could do is make the sensor track the object in multiple parts and then stich all pieces together to make a bigger resolution
That would be cool!
You should build a machine that can build an image sensor much smaller...
Looks like a Mamiya medium format camera.
2050: we are going to make gopro sized dslr using arduino
Not an electronic expert here, but maybe you should connect every pixel to tiny capacitor and gather data from them after shutter close.
Also would be cool to see some mechanics to move matrix and scan different areas of the image... Or color filter carousel to make rgb pics.
Any way cool device for making file pictograms, 32x32 already)
You can take 4 different shots each with different illuminations, white light, red light, blue light and green light.
Use them all as r-g-b and b&w channels to make a color picture!
Awesome.
5:48 "OLED LCD" 🤔🤔🤔
Yes... its a oled lcd
@@orafaball2162 no its a oled screen, not LCD. LCD stands for Liquid Crystal Display
SeanHodgins: real time preview on the oled was not an option or not enough time?
Maybe hu meant oled display ?!
@D2RG6 Totally pointless...
He used the word 'LCD' to mean display.
You can actually use AI topaz gigapixel and upscale the image with AI algorithms would be nice to see that
We need version 2, in version 2 you have 4 chips instead of 2, and a microscopic surface mount capacitor behind each solar cell. The first pair of chips reads the voltage and the second set discharges the capacitor. You would have incredible dynamic range, and a SNR about 1000x higher. You also could collaborate with another channel to build AI that superresolutions your output, as there is likely to be subpixel information you could obtain. Lastly, if you had a servo that moved the sensor 1/2 a pixel up / right, in a cycle of 4, you could greatly increase the resolution for static shots.
Honestly I love this. Very educational. I'm making connections to what I already knew about how cameras and image sensors worked to how lens apature focus. Thank you.
Hand-placing that many parts would have driven me insane. You're far more patient than I am.
Take 3 photos with 3 colour filters then merge them you then have a colour camera
I wanna make this camera for my Minecraft resourcepack, i have a potato instead of a pc, so max resolution is 32x32 xD
me: **comes to comments expecting "why isn't the screen used as a viewfinder"**
the comments: "'oled lcd'"
You could drastically increase resolution still using DIY sensor by projecting part of image to whole sensor and then moving which part to project using mirrors and servo.
Of course this requires speeding up capture, there is two approaches to do that:
- If bottleneck is switching pixels, use native AVR C functions instead of Arduino's slow ones. I hope it will be enough, but if not you can use higher frequency microcontroller
- If bottleneck is collecting enough light on sensor, attach capacitor to each pixel and make mechanism that discharges all capacitors at once and mechanism that disconnects capacitors from charging (optional, if reading it not instant, may be implemented as shutter)
You had the patience of a saint to solder those components yourself. I would PIP that thing for sure.
I've got one now! I just cant do the PNP manually anymore, hurts my neck a lot.
"Can't believe the details there!" Personally I prefer a little more pixels
This makes me appreciate my phone's 40mp camera lol.
Holy shit, how did you make an 40mp camera?!?
Sh0bez huawei p30 pro
@@matthew3p Yup!
108mp from samsung be like " I'm you but better"
@@Retronyx but is it? This Samsung vs Sony we're taking about lol. Sony has more experience with camera sensors.
Photoshop: its an icon!
Wait you name...
科技戰艦 看多了嗎😂
Joshua Chan 🤣,但我這回復是一年前的。
@@kjyhh 笑死😂
There was this dude who made a camera from a scanner and it made like 100 megapixel or something huge photos. So here's the idea - in a bigger enclosure put a smaller sensor that moves in rows and stitches the photos and it's much slower, but you get a bigger picture in the end! :)
This is incredible. I appreciate the amount of time and work you put into this project! I just learned how CMOS image sensors work, thought about what it would take to design my own camera, and of course someone had already done it. Thanks for sharing the experience, would be awesome to see another video giving mode detail of the design process and issues you ran into while debugging the code.
Still going to make one? You should!
looks about the same quality as most security cameras
Something everyone wants to make but nobody has the patience
Actually. I have literally no desire to make something like this but it is still cool to see someone do stuff like this.
I'm still curious; how's the bokeh?
😂
Loll
Can u help me with a sub
It always feels like like an accomplishment after finding a great channel like this
Im glad theres people like this guy that knows how to make this stuff for me.
I can't wait for someone to come up with a DIY machine that automatically solders phototransistors, so you don't have to do it by hand, to create large format camera sensors...
If you buy a smd board from jlcpcb.com/ they can assamble it for you!
@@Ferferite nice, only this make a sense for bigger resolution. Maybe they will make a video of process and we will see speed of completing 1-8 pieces in 1 sec. See him solder 966 pieces was painfull for me in this century. 😃
@@romanhanajik3185 yes
Huge props to you man. I’ve been looking for someone who’s done this for a long time. Earned a sub for sure.
Most Arduinos have more than one analog input. You could read 2, 4 or even 8 pixels at once. That would make your mux circuit a little more complex, but would multiply the scan rate accordingly.
you mentioned when you reduce its size, the image comes back, thats an optical effect which one (e.g. a biological entity per se). Like priming with vowels removed in a sentence which it is still read, but distortion through our biological processing is micro projecting. (we know the image is pixable only in squares) have a great week ^^
Very cool build! To make it work with low light, I´d use photodiodes, give them a forward bias to avoid clipping in dark areas, and use a transimpedance amplifier (easy to do with an op-amp) to convert the low current into some reasonable voltage for the ADC.
Should work with analog multiplexers, too, so only one bias circuit and one amp necessary. Simple upgrade.
I realize it’s four years later. I wonder if you could increase the resolution by developing an algorithm to interpolate the delta between each sensor and its surrounding sensor to create a virtual sensor.
This video is 4 years old...? Where does the time go?
This is really cool to see, especially after Sony’s recent announcement of a global image sensor that actually takes a reading from every single pixel simultaneously. Rather than scanning like an old CRT. Or every other digital image sensor.
I love the sock hanging on top of the door.
You’ve blown my mind about how absolutely hi tech my dslr is now.
I used to build my own pinhole film cameras. I had lots of different designs and projects. This is inspiring... too bad I know nothing about electronics.