Making OpenSource USB C 3.0 Industrial HQ camera with Lattice FPGA, Cypress FX3 C Mount IMX477

  Рет қаралды 35,567

CircuitValley

CircuitValley

Күн бұрын

Пікірлер: 89
@Vintage_USA_Tech
@Vintage_USA_Tech Жыл бұрын
This is a stunning body of work you have produced here, with minds like yours I think that the opensource community could easily compete with the corporate overlords we need to find away to keep you financed and out of their hands and set you free to design until your harts content. Thank you for shearing this with us.
@BuzZ.
@BuzZ. 2 жыл бұрын
The only real tech KZbinr on the platform. I don't care about the new iphone, FPGA, MIPI, PCIe is where the real tech is
@AvatarSD
@AvatarSD Ай бұрын
but you actually need new FPGA with PCIe 5.0 along with microwave design knowladge to make new and better device😅 so iphone is definetly one of the most intresting device regard of engineering time amound and it have builtin jtag debugger via type-c!📳 Unfortuanley, we don`t have 48-hours long hardware design review..😢
@adityapalsingh7701
@adityapalsingh7701 Жыл бұрын
its crazy how, detailed and high level content is available on youtube now a days, thank you for adding another branch to my knowledge
@circuitvalley
@circuitvalley Жыл бұрын
Glad you enjoy it!
@thedavymac
@thedavymac 8 ай бұрын
Wow. This is an underrated channel. Such high quality content. Very well done!
@Aviduduskar
@Aviduduskar 2 ай бұрын
How has this channel not gone viral and blown up?
@ashfaquekhan7282
@ashfaquekhan7282 5 ай бұрын
can you make a small playlist/video , on how to select Camera sensors, and make a module out of them , specially using M-Cortex MCU and FPGA , I know FPGA will work better , but I think making a custom camera module using commonly available MCU like RP2040/ARMCortex-M7 / Xtens LX7 Dualcore/ etc; as this kind of content is not present, atleast as a playlist on yt, you will get a good reach, and students like me will learn a lot. Great Content Sir 💯
@Snakebloke
@Snakebloke 2 ай бұрын
Absolutely INCREDIBLE video. Thank you SO much for such a clear explanation. Much respect to you, young man!
@LOGICOMA
@LOGICOMA 9 ай бұрын
I love this so much! You do such a good job explaining such a crazy complex board! Can't wait to see more!
@scottwilliams895
@scottwilliams895 Жыл бұрын
This project truly is incredible! Brilliant work
@fakebaka
@fakebaka Жыл бұрын
Maybe we can crowd-fund manufacturing a little series of this magnificent device? How does this organizes this days?
@progamermat
@progamermat Жыл бұрын
Really appreciate your effort and your willingness to make the hardwork opensource.....hatsoff mate
@wolpumba4099
@wolpumba4099 Жыл бұрын
*Summary* *General Overview* - *0:02**:* Introduction to the USB 3.0 USBC camera project with CCS mount lens. - *0:16**:* Camera body and lens mount are 3D printed from PLA. - *0:43**:* Camera is made of three PCBs. *Hardware Design and Components* - *1:06**:* Describes the layout of the boards: USB port on top, FPGA in middle, and sensor at front. - *1:13**:* Sensor supports up to four lanes of MIPI interface, tested up to 900 Mbps per lane. - *1:26**:* Boards are interchangeable. - *1:53**:* Mentions different types of sensors (IMX 290, IMX 477) being used. - *2:21**:* FPGA board details, includes a Lattice Crosslink NX, configuration memory, and voltage regulators. *Interfaces and Connectivity* - *3:06**:* Connector details and interface specifications (32-bit 100MHz bus, GPIF). - *3:31**:* Additional control lines described (I2C, reset, camera sync signals). - *3:47**:* USB PCB contains Cypress FX3 USB 3.0 controller. *PCB Details* - *4:04**:* Max IC allows for USB-C connector reversibility. - *4:49**:* Six-layer PCB discussed. - *5:17**:* Second attempt at making the camera, mentions previous version and its limitations. *Open Source and Mechanical Construction* - *6:03**:* Open-sourced designs available on website. - *7:16**:* Mechanical construction, 3D-printed lens mount with metal thread. *Software and Future Plans* - *12:04**:* Software compatibility, supports UVC protocol, customizable frame rates. - *13:11**:* Future plans to discuss schematics, FPGA implementation, and limitations. *Technical Deep Dive into PCB* - *15:00**:* Discusses impedance and length matching for MIPI lines. - *15:19**:* Details the layers of the PCB, mentions that data and clock lines are routed only on the top and bottom layers. - *15:46**:* States that signal layers have a ground reference plane adjacent to them. *Power and Voltage Details* - *16:17**:* Notes that the bottom side of the board has a few decoupling capacitors. - *16:47**:* Explains the use of linear regulators for analog power and a switching regulator for digital power in the second camera sensor. *Camera Sensor and FPGA Configuration* - *17:12**:* Specifies a 1.8 volt oscillator for the camera with a reference clock. - *17:24**:* Mentions I2C lines are also 1.8 volt and must be compatible with the camera's voltage. *Image Processing and Configuration* - *33:15**:* Describes how pixel data is packed in different raw formats, with Raw 12 as an example. - *34:37**:* Debayer filter converts raw pixels to RGB, which then gets converted to YUV color space. *Limitations and Future Plans for Image Processing* - *38:13**:* Lattice engineering sample chips have limitations in port assignment; workaround discussed. - *38:58**:* Current design lacks modules for color correction or other image manipulation. *Software and User Interface* - *41:24**:* PC-side software discussed, including exposure and gain controls. - *45:05**:* 35 FPS full frame performance noted. *Additional Notes and Caveats* - *46:48**:* Mentions the need to dismantle the camera to change sensors. - *48:59**:* Discusses absence of sensor detection in the firmware and the need for identification methods. Disclaimer: This summary was created using the GPT-4 model and serves as a condensed version of the original transcript. The transcript was initially divided into six segments and then summarized using bullet points, each with a starting timestamp. I used this prompt: "Summarize as a bullet list. Keep starting timestamp for each bullet point:". The bullet points were subsequently organized into sections with appropriate titles with this prompt: "Split the following bullet list into sections. Create section titles. Keep timestamps.". The text was manually formatted for KZbin comment markup.
@Mabh838
@Mabh838 Жыл бұрын
Very impressive -- all steps are clearly explained
@Ajdhwhsjxkkabxhcksjdbdj
@Ajdhwhsjxkkabxhcksjdbdj 28 күн бұрын
I am very glad about KZbin that it is suggesting some good things to me
@yephick
@yephick 5 ай бұрын
Really curious to see how you do the AWB and AE (working on our own camera design, not dissimilar to what you are doing, and I'm finding making a robust AWB to be a very interesting challenge)
@timeltdme4355
@timeltdme4355 4 күн бұрын
subscribed in 1m28s, cool stuff!
@amoghjain
@amoghjain 9 ай бұрын
Woww!! Great work!! Thank you for sharing the work and knowledge!
@the_runofff
@the_runofff 10 ай бұрын
i wish i could buy this. one of the most incredible videos i've seen
@lilmatt1914
@lilmatt1914 Жыл бұрын
amazing work, thank you for this contribution
@xmicron9475
@xmicron9475 2 жыл бұрын
Great analysis! (as always!) Great stuff...Thanks !! (ps. poor 360p video quality please upgrade to 1080hd!)
@circuitvalley
@circuitvalley 2 жыл бұрын
I have uploaded a 4K video, Video Just Got uploaded few minutes ago. KZbin it still Processing HD video. Check back in few minutes and you will have HD version
@THELITTLERIVERNERD
@THELITTLERIVERNERD Жыл бұрын
This is wildly impressive!
@shaische
@shaische 5 ай бұрын
This is awesome! any chance for a simpler design being offered that just plugs directly via USB and acts like a webcam? Kinda like those cheap ELP brand CMOS cameras you see on aliexpress that have a plastic lens c-mount on the pcb. I'm looking to build my own to fit my assembly and can't really use any off the shelf solution.
@SinanAkkoyun
@SinanAkkoyun Жыл бұрын
Unbelievably awesome project, mindblowing that you even release such immense genius work! I wanted to build your board with the IMX477 at 100FPS. Do you perhaps know a rough latency from photon to received over USB in milliseconds? Again, I can not put into words how impressed and thankful I am for your work.
@circuitvalley
@circuitvalley Жыл бұрын
There are few components you have take a look for total latency. 1. Camera sensor. 2. FPGA 3. USB controller Camera sensor due to its architecture should have less than one line latency. FPGA ISP Pipeline only has delay / latency of 4 line , if you are talking about 4K 60 FPS then each line is about 7.71us then 4 line would be around 30 us . So after 30 us of frame start my ISP will start producing valid data on output. USB controller and number of byte latency it should receive frame end or a fix number of byte before it send data to PC so for a 4K it should have max 4 Line worth of time in latency. so for 4k 60 FPS total max latency can be 67.71us.
@HaydenHatTrick
@HaydenHatTrick 8 ай бұрын
Very elegant build
@mca312
@mca312 Жыл бұрын
This is amazing! Where did you get the footprints for the IMX sensor? I want to try this with an IMX252 or IMX273. Although first I'll design for FPC cable instead of USB. Thank you
@klab3929
@klab3929 11 ай бұрын
Where did you source the technical documents for the image sensors and source the image sensors themselves?
@explodingonc2782
@explodingonc2782 Жыл бұрын
Is it better to use a matte black PCB for the sensor board? Guess reducing stray reflections should be helpful for the image quality.
@a.a.patrick
@a.a.patrick 7 ай бұрын
I want to appreciate you for the effort in the Camera and FPGA interfacing. The work gives me hope that I can handle similar work. Please advise me on how to go about this task; I wish to have a camera with FPGA and DDR3 RAM, the interface should have an Input and Output trigger (End of Frame) signal. I don't mind USB 2.0 or USB 3.0. I want it to work such that an external signal from another board will be used to trigger the sensor to start a frame grabbing. The sensor should be the type with adjustable integration (exposure time).After a complete frame is captured, the output trigger should send a signal to the external circuit. and then the frame data can be read. I don't need high repetitive speed, rather a very high frame grabber speed in the range of 1us or less.
@raptorraptor597
@raptorraptor597 7 ай бұрын
Can you make a video on Multi camera (3 or 4) through mini coaxial sync connected to Jetson or other MPU boards ? The problem with MIPI CSI 1/2 is length of cable and USB is BW limited and power hungry. Coaxial or GigaE are possible solutions which am considering for my project but the cost of Serializer and DeSerializer is beyond budget. Hence can you suggest OR make a video on solution with Multi Cam Sensor connected to small Application cores - or all camera Sensors connected to same App processor ? Thanks and great channel
@qzorn4440
@qzorn4440 Жыл бұрын
wow very nice. I wonder how this camera would work with machine vision? 😎 Thank you.
@AramSoghoyan-w5d
@AramSoghoyan-w5d Жыл бұрын
nice video, where you did order/manufacture this nice PCBs?
@karthikbalu5824
@karthikbalu5824 4 ай бұрын
WOW! DIDNT EXPECT SUCH A AWESOME VIDEO
@circuitvalley
@circuitvalley 4 ай бұрын
Glad you liked it!!
@karthikbalu5824
@karthikbalu5824 4 ай бұрын
@@circuitvalleypls let me know where to buy this camera sensors?
@circuitvalley
@circuitvalley 4 ай бұрын
@@karthikbalu5824 There are Many Suppliers for these camera sensors, You can look on internet. Ask Sony. They will tell you exactly who is selling in your area.
@karthikbalu5824
@karthikbalu5824 3 ай бұрын
@@circuitvalley Do you offer any practical paid course, that would really help as there many details such as how to create these layers and several other decisions u made in terms of selecting correct FPGA, sensor package etc? Thanks a lot for your extraordinary work !!!
@emredemir549
@emredemir549 2 ай бұрын
Great work. Just wondering how did you manage to solder image sensor which (I think) is extremely sensitive device?
@circuitvalley
@circuitvalley 2 ай бұрын
Soldering sensor is not very far from soldering BGA, you can look into any sensor's datasheet or Technical reference manual. Solder process is quite straight forward.
@emredemir549
@emredemir549 2 ай бұрын
@@circuitvalley Thanks for the answer. I have another question related to this one. When I think about soldering the image sensor, I come to a conclusion that every pin should have the same amount of the solder paste. Every pin should be soldered in the same time interval and temperature. Otherwise the image sensor's normal vector won't align with center of the lens causing distorted image. I think there should be some way to avoid it but I could not find for the industiral cameras. There are some alignment machines for CCMs(Compact Camera Module) but they are not applicable to industrial cameras.
@circuitvalley
@circuitvalley 2 ай бұрын
@@emredemir549 If you use solder paste will result pretty much same amount paste on every pad. and soldering using oven will result all pins soldering at same time.
@RichardKCollins
@RichardKCollins Жыл бұрын
Nice work. I am looking for a low cost camera module that can provide pre-bayer data. Without requiring huge investment of processor boards. Many USB3 to MIPI use cheap encoding. I would be happy with 1 frame per second at 320x240 if it were data just after the ADC before ANY adjustments or corrections. Machine vision is useless with cameras that throw away the raw sensor data by bad methods.
@realedna
@realedna Жыл бұрын
You probably want to use a monochrome sensor then or do you need color for your CV application? The question is, if this could support monochrome or raw RGB in the future to better support CV tasks. What a pity, that UVC doesn't support RGB or RAW modes. It seems poor for anything but a webcam. So there should be an option to support a better (more modern) protocol, maybe for a custom API. What about Linux-support (V4L2 or even libcamera)?
@iamthebiker
@iamthebiker Жыл бұрын
Impressive! Great Job!
@Gerald-iz7mv
@Gerald-iz7mv Жыл бұрын
hi nice project. whats an application which benefits from this fgpa camera board - is the use for it to do image processing on a fpga? can you connect it to a raspberry pi? is there a way to make work for a thermal camera too?
@circuitvalley
@circuitvalley Жыл бұрын
Application mostly for Industrial application, Automated tests. You can connect camera to Raspberry PI over USB
@Gerald-iz7mv
@Gerald-iz7mv Жыл бұрын
@@circuitvalley whats the benefit using it in industrial applications or automated tests? energy efficiency, fps, weight or something else?
@realedna
@realedna Жыл бұрын
@@Gerald-iz7mv He told in the video, that the goal is to have a modular design, which could be enhanced with custom or different available boards for various sensors. Also it should allow you to make use of all available camera features to e.g. get higher FPS with reduced resolutions or to implement a custom white balance, exposure control etc.
@RixtronixLAB
@RixtronixLAB 2 ай бұрын
Nice video, keep it up, thank you :)
@dummypg6129
@dummypg6129 Жыл бұрын
you can probably sideload test pattern directly from your fpga not from your sensor.
@bambamfpv1102
@bambamfpv1102 7 ай бұрын
This is really impressive did you draw from another open source project.
@circuitvalley
@circuitvalley 7 ай бұрын
I have made multiple attempts to reach this project, First I tried to make UVC stack on PIC32, and then small VGA camera on on PIC32, Then I used lattice macxo3 with IMX219, This was basically 4th attempt and recursive change.
@shyne2643
@shyne2643 Ай бұрын
what pcb manufacturer do you use ? the boards look very clean
@circuitvalley
@circuitvalley Ай бұрын
PCBs are made by JLC
@mason6662006
@mason6662006 11 ай бұрын
Fantastic!!
@vigneshsuvarna9452
@vigneshsuvarna9452 Жыл бұрын
good work
@ianbroyles
@ianbroyles 2 жыл бұрын
Great work!
@jaredes5666
@jaredes5666 2 ай бұрын
could this be done with other sensors like the IMX290 or IMX533?
@circuitvalley
@circuitvalley 2 ай бұрын
Yes It can be done with any sensors, If you watch video carefully, I already have IMX290 Camera module shown in the video. You can look at IMX290 camera module on the blog post.
@timecomments
@timecomments Күн бұрын
Thank you share. Please Turkish subtitle.
@vladimirlevchenko1470
@vladimirlevchenko1470 3 ай бұрын
This is a very difficult job. You are an expert. I sent you a personal email
@agpan7854
@agpan7854 Жыл бұрын
Where did you get the camera sensors.. i searched everywhere I cannot get IMX533 mono sensor
@MartinKL
@MartinKL Жыл бұрын
Nice job
@ridebmxmhell
@ridebmxmhell Жыл бұрын
did the fpga,sensor heating up?i didnt see any heatsink in your design here,when running in 4k sensor heats up and need to be heatsink or not?
@ryuofthenorth
@ryuofthenorth Жыл бұрын
ippressive dude wow.
@andreyl2705
@andreyl2705 Жыл бұрын
awesome)
@yongchaoheng7187
@yongchaoheng7187 Жыл бұрын
Has anyone successfully reproduced this project? I've been struggling with this project for a long time without success. The FPGA is programmed, and the fx3 runs successfully (the PC can recognize the usb device), but the image cannot be obtained using webcamod8.8. I guess there are two reasons: 1. There is a problem with the driver configuration of fx3 and imx219 or imx477. 2. There is a problem with the fpga configuration code. Hope that someone who has successfully copied can provide suggestions or comments, thank you!!!
@samrossiter2108
@samrossiter2108 Жыл бұрын
How much did the fabrication cost?
@itsnotthat_
@itsnotthat_ 3 ай бұрын
did you ever figure it out?
@dfgaJK
@dfgaJK Жыл бұрын
Why can't the fpga directly handle the usb communication through a level shifter? Is there enough io from the fpga to connect to other interfaces like pcie instead?
@circuitvalley
@circuitvalley Жыл бұрын
First USB is complicated it would need pretty large FPGA for no gain. Second USB 3.0 will need special high speed transreceiver. It would be pretty counter productive, may save some space but will definitely not save money
@justinhealey-htcohio3798
@justinhealey-htcohio3798 Жыл бұрын
Hello, this is technically way above my hobbyist amateur head however, you do a great job trying to help me understand extremely complex topics! ** I previously watched some videos related to distributed aperture camera arrays using multiple MIPI CSI Sensors. Is this something you've considered looking into? It would be interesting if multiple Low Res & wide dynamic range (WDR) sensors could be aggregated into a single large sensor with a massive super telephoto (First Surface reflector) telescope lens for long range high-resolution mini CubeSat applications or more of a wide-angle range for persistent stare drone or satellite Surveillance? Is this something you've looked into or considered building? Thanks!
@circuitvalley
@circuitvalley Жыл бұрын
I do have a Multi Camera project in mind. it would take some time you can check back in few months.
@victoryhelmi2552
@victoryhelmi2552 Жыл бұрын
Can it tobe set with global shuter method. (Wich the sensor blink all at once not scanning to produce an image or videos)
@circuitvalley
@circuitvalley Жыл бұрын
Global Shutter is feature of Camera sensor, If you use a Camera sensor that has global shutter then you can use global shutter.
@victoryhelmi2552
@victoryhelmi2552 Жыл бұрын
What kind of video format output? Is it RAW?
@circuitvalley
@circuitvalley Жыл бұрын
It can output RAW or YUV
@nullp0inter
@nullp0inter Жыл бұрын
u the mvp
@HomoSapiensMember
@HomoSapiensMember Жыл бұрын
what's it for though?
@lamngoc9896
@lamngoc9896 Жыл бұрын
diy bluetooth speaker
@JesTheii
@JesTheii Жыл бұрын
200 fps good lord
@cookiedonut97
@cookiedonut97 Ай бұрын
Idk how to make IMX 383 work😂
@circuitvalley
@circuitvalley Ай бұрын
Yes IMX383 Will also work
@Ajdhwhsjxkkabxhcksjdbdj
@Ajdhwhsjxkkabxhcksjdbdj 28 күн бұрын
Very interesting topic sir can you please share your LinkedIn ID Or please can you create a discord or telegram community channel
Trick-or-Treating in a Rush. Part 2
00:37
Daniel LaBelle
Рет қаралды 47 МЛН
When Cucumbers Meet PVC Pipe The Results Are Wild! 🤭
00:44
Crafty Buddy
Рет қаралды 55 МЛН
This Game Is Wild...
00:19
MrBeast
Рет қаралды 130 МЛН
Players vs Pitch 🤯
00:26
LE FOOT EN VIDÉO
Рет қаралды 131 МЛН
I tried to make a camera sensor
30:00
Breaking Taps
Рет қаралды 988 М.
Can a single 1.2 GHz core process 10 Gb/s? Yes, it can!
20:54
Tomaž Zaman
Рет қаралды 20 М.
My Kickstarter failed, so I open sourced it
12:20
StuckAtPrototype
Рет қаралды 658 М.
I Built A Real Life Transformer
13:25
Michael Rechtin
Рет қаралды 135 М.
Flawless PCB design: RF rules of thumb - Part 1
15:45
Hans Rosenberg
Рет қаралды 90 М.
Harder Drive: Hard drives we didn't want or need
36:47
suckerpinch
Рет қаралды 1,7 МЛН
Trick-or-Treating in a Rush. Part 2
00:37
Daniel LaBelle
Рет қаралды 47 МЛН