Building a full-frame digital camera from scratch

  Рет қаралды 14,401

Curious Scientist

Curious Scientist

Күн бұрын

Пікірлер: 58
@isidoromaich7226
@isidoromaich7226 2 жыл бұрын
Awesome project! It is brilliant your ingenuity to make the line capture device work as a camera, this project is unique, there are some scanner projects over there but I never seen a camera like this. This gave me vibes how were the things in the beginning of digital cameras
@CuriousScientist
@CuriousScientist 2 жыл бұрын
Thank you very much! Wait until I finish the whole project, it will be more professional. ;) I will try to perfect the firmware for the microcontroller so I can have all the functions I planned and mentioned in the video. Probably some mechanical improvement will come too.
@ca8064
@ca8064 Жыл бұрын
I was watching your linear ccd series, because I wanted to make a scanner camera from scratch. Only now realized that you have actually done that as well! Very cool results. I would love to see how a different sensor would perform, maybe the TCD2726DG is better suited for taking pictures, since it has rgb, square pixels and a faster line rate. For my last try at building a scanner camera, I just "reassembled" an Epson scanner, like you mentioned other people did. This gives good results fairly quickly, but the camera I made was still quite big, had no fast image preview and required a laptop to be connected. My idea for the next build was to rotate the sensor around its center instead of moving it along an axis, because that would allow for higher frequency image taking. The main problem I see is how to keep a good electrical connection between the rotating and the stationary assembly. Also, one would have to deal with vibrations/how to balance the rotating assembly. Using the mentioned sensor, one could theoretically capture okay resolution 30fps videos at the maximum line rate of 10.5khz. But I have absolutely no idea If this readout speed would even result in meaningful data. I would love to hear your opinion on this idea, since I struggle to assess the feasibility of this. This was a little silly, but I made a script to convert an image to look as if it was taken with a rotating linear image sensor, so I could better understand the impact this would have. Here a result of a simulated 30fps frame: imgur.com/a/N0ZFLsT
@CuriousScientist
@CuriousScientist Жыл бұрын
Hi! I looked at that sensor earlier, but I could not find any sellers selling it. But it has very nice parameters, it would worth playing around with it. Regarding the rotating CCD, it is actually a great idea. I have never though about this option, but it sounds good and I like that there is a smart image processing behind it. The cables should not be an issue, since you only need to rotate 180° (plus a little more maybe, just to make sure we covered a full circle). So a flexible ribbon cable should be able to do the job. 30 FPS is more than achievable with the TCD1304, I was able to read out at around 120 FPS when I was using the "typical clock values" from the datasheet. I think it would be relatively easy to create a rotating platform for the CCD. You can then also use a stepper motor to rotate the platform between two exposures. The platform could be a (metal or 3d printed) disc with teeth on its side (basically a gear), and you could match the teeth with a gear attached to the shaft of the stepper motor. If you use a helical gear pattern, then you can rotate the motor 90° so you can save some space. I definitely see some potential in this idea. Once I fully finish this project (adding a display, an SD card, some controls..etc.), then I might attempt to build your idea too. But it will take time.
@ca8064
@ca8064 Жыл бұрын
@@CuriousScientist Ups, I made a mistake. The TCD2564DG is actually the one I wanted to mention. This one is also available on AliExpress. What I meant with 30fps was literally 30 full pictures per second. So the rotating assembly would have to turn at 15 rpm. Toshiba says the sensor has 10.5KHz line readout speed (I just assumed this means 10500fps). The TCD1304 is rated at 0.2KHz.
@CuriousScientist
@CuriousScientist Жыл бұрын
Ah, if you want a full rotation, then I have no idea for the connections.
@zaprodk
@zaprodk 2 жыл бұрын
Make lens tube slightly too short and install shims on tube flange until focus is correct.
@CuriousScientist
@CuriousScientist 2 жыл бұрын
That's a great idea, thanks! I will probably do something very similar. I am actually redesigning the mechanism (new parts just arrived a few days ago), so I will also need to change other things to match the flange distance again.
@kierancarter3693
@kierancarter3693 6 ай бұрын
What if you could make a hybrid camera one that does film and then the scanner scans that film after it’s been exposed
@CuriousScientist
@CuriousScientist 6 ай бұрын
Your idea is not impossible, but it cannot be done in the way you suggest it. You cannot directly scan the film after it's been exposed. If you want to scan it, you need a light source. If you shine a light on an already exposed (but not yet developed) film, then you basically ruin it. If you want to do it inside the camera, you have to scan the film while it is exposed when you are taking a picture of the subject. It is technically challenging because you'd need to scan it within a short amount of time and you'd need to adjust the exposure value (integration time) of the CCD dynamically because as you scan from one side towards the other side while the film is being exposed, the brightness of the film will change.
@kierancarter3693
@kierancarter3693 5 ай бұрын
@@CuriousScientist thanks for your response what your say is great and you have a lot of knowledge
@CuriousScientist
@CuriousScientist 5 ай бұрын
Thanks! I try my best.
@kierancarter3693
@kierancarter3693 5 ай бұрын
@@CuriousScientist if only there was a way to quickly develop the film or another method to create a negative to be scanned
@CuriousScientist
@CuriousScientist 5 ай бұрын
Polaroid is somewhat in-between these two, but you won't get a digital copy.
@dian8063
@dian8063 8 ай бұрын
Could you write a list of all the things needed
@CuriousScientist
@CuriousScientist 8 ай бұрын
It is in the video. 😅
@JB-iz8bi
@JB-iz8bi 2 жыл бұрын
Awesome! I was also thinking of building something like this (for applications in Astronomy). Seems like a cool thing to make
@CuriousScientist
@CuriousScientist 2 жыл бұрын
Thanks! It is indeed a fun project, I can recommend replicating it!
@h-kesh5043
@h-kesh5043 11 ай бұрын
Really awesome project you have going here! Kudos on how well thought out the entire process was. I was particularly admiring the navigation through the complexities of flange distance, particularly when giving consideration to micro details such as the distance between the glass of the scanner and the sensor of the scanner itself. Say, I was also wondering whether you'd consider placing an array of mini scanners that need to move minimally across to complete taking one picture. While as I write this, it occurred to me that multiple scanners may not produce a single consolidated image and they may just take the proverbial "shots of segments", they may increase your "shutter speed" , helping in capturing moving objects. However, with the right image processing tool, you may be able to "stitch"/ consolidate them together at a later time. Worth considering - particularly if you are looking at making something like a medium format sensor size equivalent. Would love to hear your opinion. 😊😊
@CuriousScientist
@CuriousScientist 11 ай бұрын
Thank you! Probably, it would be possible to put let's say 6-8 similar CCDs on a rail, and then move a short segment and then stitch together all the segments into one picture. It does not even need a very sophisticated software. The problem is to sync all the sensors' driving and sampling together. Probably it would need a bit more complex driving circuit than a small $4 MCU that I use in this video. Regarding the medium format, I am pretty sure that I could find a 36 mm wide linear CCD and then apply it. I was actually looking at some medium format cameras, such as the Kiev-88, but right now I don't have $400 to burn. It would be fun to keep the whole camera but replace the rear panel with my DIY scanner.
@nikhilmenda2983
@nikhilmenda2983 4 ай бұрын
Hey, great video! Is it possible to get colour channels in the photograph instead of just black and white?
@CuriousScientist
@CuriousScientist 4 ай бұрын
Thanks! This is a monochrome CCD. It only detects intensity. So, the answer is no.
@nikhilmenda2983
@nikhilmenda2983 4 ай бұрын
@@CuriousScientist ah okay, thanks for your response!
@kierancarter3693
@kierancarter3693 5 ай бұрын
I know I’m annoying but, can you use a cmos sensor from a dslr instead, and then move it to four positions or have four cmos sensors in four positions then do image stitching in post processing
@CuriousScientist
@CuriousScientist 5 ай бұрын
Why would you remove a perfectly fine sensor from a camera to begin with? What's the point?
@kierancarter3693
@kierancarter3693 5 ай бұрын
@@CuriousScientist if it’s a broken camera I.e a parts camera you can use the sensor from the camera
@kierancarter3693
@kierancarter3693 5 ай бұрын
@@CuriousScientist what’s the point of doing the project you are doing? It’s the same reason of using a donar sensor
@CuriousScientist
@CuriousScientist 5 ай бұрын
@@kierancarter3693 I personally would not bother doing it. Reading out such a large sensor is not a hobby-level tinkering.
@CuriousScientist
@CuriousScientist 5 ай бұрын
Not really the same thing. You were talking about a camera sensor which is a 2d array. This is a 1d array (line). Furthermore, this is not a camera sensor. So, I repurposed this sensor for a different application and built everything up from scratch. Code, driving circuitry, everything.
@TheSterlingwright1
@TheSterlingwright1 2 жыл бұрын
great project..can you recommend a small 3-D printer for someone that is just starting out?
@CuriousScientist
@CuriousScientist 2 жыл бұрын
Thanks! An Ender 3 printer (there are several within this family) would be a great choice as a starter. I own an Ender 3 Max and I am absolutely satisfied with its capabilities. I printed all these parts shown in the video with the Ender 3 Max.
@negvorsa
@negvorsa 2 жыл бұрын
... if we remove the motor and all the moving parts, and fixing the focus distance, can a single frame decode a 1D bar code !?
@CuriousScientist
@CuriousScientist 2 жыл бұрын
Yes, it can. I have videos on showing just the CCD, check my channel. There's a dedicated playlist for the TCD1304 CCD.
@Dustmadeout
@Dustmadeout Жыл бұрын
Wow! Thanks!
@CuriousScientist
@CuriousScientist Жыл бұрын
You're welcome!
@Phoe
@Phoe 2 жыл бұрын
Very interesting project
@CuriousScientist
@CuriousScientist 2 жыл бұрын
Thank you!
@sankeerthtirumalasaipotelu7363
@sankeerthtirumalasaipotelu7363 Жыл бұрын
In serial plotter you are getting pixel value exactly in between two ICG pulses. But with the code you provided in driving the CCD video. I increased the buffer size to 7388. It sampling at a random instant of time, means it is not in between two ICG pulses. How can I get exact 3694 elements in between two ICG pulses. I'm assembling two successive values of CCDPixelBuffer into one Pixel value. So for 7388 values im supposed to get 3694 pixel values. How can I get that.
@CuriousScientist
@CuriousScientist Жыл бұрын
You have to sync ICG and SH. I carefully explained this in my article...
@WaffleStaffel
@WaffleStaffel 2 жыл бұрын
Wow, very interesting!
@CuriousScientist
@CuriousScientist 2 жыл бұрын
Thank you!
@yuxuanhuang3523
@yuxuanhuang3523 2 жыл бұрын
I was wondering how you got a Full Frame CMOS, then I thought oh scanner CCDs before you opened the box. So will the next project be to use a scanner for a large-format?
@CuriousScientist
@CuriousScientist 2 жыл бұрын
Hi and thanks! First I want to make everything work perfectly on this system and add the mentioned features. Probably I won't go for large format just now because I would need to buy a lens and a larger CCD for it and I could spend that money on other things for other upcoming projects.
@DanielReetz
@DanielReetz 2 жыл бұрын
@@CuriousScientist Great project. I've built a few scanner-based cameras. If you choose to pursue a larger format sensor I'd be interested in helping fund that work, and also helping out. I run a prototyping/optomechanics shop.
@CuriousScientist
@CuriousScientist 2 жыл бұрын
Thanks! As I mentioned above, first I want to make this project into a fully finished and perfected camera. Then I could move forward towards for example a larger sensor. And of course all support is welcome, this camera turned out to be pretty expensive. 😄
@jojojorisjhjosef
@jojojorisjhjosef 3 ай бұрын
If you replace the lens with a diffraction grating you'll have a spectrometer.
@CuriousScientist
@CuriousScientist 3 ай бұрын
Surprise-surprise, I already built one. 😄
@jojojorisjhjosef
@jojojorisjhjosef 3 ай бұрын
@@CuriousScientist amazing
@7alfatech860
@7alfatech860 2 жыл бұрын
Very cool indeed!!!lm
@CuriousScientist
@CuriousScientist 2 жыл бұрын
Thank you!
@withashutoshh
@withashutoshh 9 ай бұрын
Can I connect you via email?
@CuriousScientist
@CuriousScientist 9 ай бұрын
Sure, but keep in mind that I am not a free support service.
@SKRNSM-r7z
@SKRNSM-r7z Жыл бұрын
sir I'm able drive the CCD by following your video on TCD1304 Linear CCD - Driving the CCD, From the data sheet Pixel 1-32 and 3679-3694 and are dummy pixels. Im using USB to dump the CCDPixelBuffer with the following code whiche is in while(1) loop. HAL_ADC_Start_DMA(&hadc1, (uint32_t*) CCDPixelBuffer, CCDBuffer); // Convert CCDPixelBuffer to stringArray and transmit line by line for (int i = 0; i < CCDBuffer; i++) { snprintf(stringArray2[i], sizeof(stringArray2[i]), "%u ", CCDPixelBuffer[i]); CDC_Transmit_FS((uint8_t*)stringArray2[i], strlen(stringArray2[i])); } My CDC_Transmit_FS is in while loop. And when I try to dump the buffer in HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc) function I'm not getting nothing. I'm getting only dots(......). With CDC_Transmit_Fs line in while loop I'm getting CCDPixelBuffer values line by line coolTerm. My question is how can I edit my code so that I can get that exact one line reading of 3694 elements. As because even if I change the buffer size to 3694 I'm not getting the same reading even if the sensor is exposed to same object. I can see CCDPixelBuffer values in live expressions of stm32 cube IDE changing frequently. The data in between those two SH pulses, I want to read everytime and plot like you are doing in serial plotter. How can I capture the data you are capturing in a live stream so that I can work on each and every pixel of the vertical line of ccd sensor. Like How can I read one full column of 3694 pixel values.
@CuriousScientist
@CuriousScientist Жыл бұрын
Don't do anything with the data on the MCU. Process the bytes on the computer. It is easier and less messy. You can count the pixels (2 bytes per pixel), then just reconstruct the datastream.
@SKRNSM-r7z
@SKRNSM-r7z Жыл бұрын
@@CuriousScientist Sir I'm getting the stream like this b'\x01' b'\xad' b'\x01' b'\xa8' b'\x01' b'\xb1' b'\x01' b'\xaf' b'\x01' b'\xa7' b'\x01' So one pixel means I have to reassemble the successive bytes isn't it? For example in this 4 bytes which are successive b'\xaf' b'\x01' b'\xa7' b'\x01' b'\xaf' and b'x01' forms one pixel ( By converting that into decimal value ) b'\xa7' and b'\x01' forms another pixel value Please do correct me sir....
@CuriousScientist
@CuriousScientist Жыл бұрын
Sorry, but I have no idea. How should I see it from your datastream? Everything is described in my video and articles.
TCD1304-based spectrometer - Part 3
37:45
Curious Scientist
Рет қаралды 5 М.
A Cyberdeck With A Removable Keyboard
11:26
Ashtf
Рет қаралды 13 М.
БОЙКАЛАР| bayGUYS | 27 шығарылым
28:49
bayGUYS
Рет қаралды 1,1 МЛН
БАБУШКА ШАРИТ #shorts
0:16
Паша Осадчий
Рет қаралды 4,1 МЛН
Building a full-frame digital camera from scratch - Part 2
19:46
Curious Scientist
Рет қаралды 10 М.
Building an open-source full-frame CCD camera PART II
16:08
Wenting Channel
Рет қаралды 107 М.
I Fixed My Most Challenging Project! (Camera Lens from Scratch)
15:31
How To Make Everything
Рет қаралды 115 М.
Building your own camera - Stupid or Genius?
9:51
Linus Tech Tips
Рет қаралды 1,2 МЛН
I made a fake CRT TV with a LASER
16:05
bitluni
Рет қаралды 682 М.
CinePi - The Open Source Cinema Camera
15:38
Mental Outlaw
Рет қаралды 135 М.
CAMERA LENS Made from Sand and Rocks
22:30
How To Make Everything
Рет қаралды 903 М.
Building a Next-Level Camera
14:28
DIY Perks
Рет қаралды 3,2 МЛН
1960s Vintage 35mm Film Camera Restoration
21:41
Bee Betu
Рет қаралды 578 М.
TCD1304-based spectrometer - Part 1
38:56
Curious Scientist
Рет қаралды 12 М.
БОЙКАЛАР| bayGUYS | 27 шығарылым
28:49
bayGUYS
Рет қаралды 1,1 МЛН