9 ms·
Open source USB C camera with C mount lens, MIPI Sensor, Lattice FPGA, USB 3.0
- wrycoder 4y agoThis is really nice, and the documentation and testing results are extensive. https://github.com/circuitvalley/USB_C_Industrial_Camera_FPGA_USB3 https://github.com/circuitvalley/USB_C_Industrial_Camera_FPG...
- Eduard 4y agoUm, but I could find only a single actual photo and zero videos made with this camera. So in my definition, that's sparse testing results.
- wrycoder 4y agoI think it's early days yet. A work in process, and maybe not the last iteration.
- circuitvalley 4y agoI am developer behind this camera. Its a second revision of hardware and also second revision or firmware. I have been doing MIPI CSI FPGA stuff from quite sometime. Current state of firmware is stable. Where work need to be done isimage quality in terms of color correction , Whitebalance, noise reduction other similar things.
- 8jy89hui 4y agoHe includes ~5 minutes of the cameras working at various resolutions and frame rates in the project video. See: https://youtu.be/dwXs9RB6uD0?t=2621 https://youtu.be/dwXs9RB6uD0?t=2621
- deleted 4y ago[deleted]
- imiric 4y agoThis looks wonderful! I wish it could be mass produced, with some minor polish. I would throw money at it instantly. If the author is reading this, have you considered crowd sourcing it? It's great that everything is open source, but putting one together is above my skill level. I'm desperately looking for a hackable webcam that isn't a huge privacy risk. Adding network connectivity to this project probably wouldn't be a large endeavour.
- Xeoncross 4y agoActually, is there any open webcam for home use that doesn't seen all the recordings to some 3rd party? I'm interested too.
- wiml 4y agoSome of the random-commercial-thing-from-China home security cams have open-source replacement firmwares.
- teraflop 4y agoThere are plenty of cheap-ish commodity cameras that use ONVIF to stream video over a LAN. That by itself doesn't guarantee that they aren't also exfiltrating the data somewhere, but you can put them on a firewalled VLAN.
- m463 4y agoyou can make a webcam from a raspberry pi (a case is harder) or you can plug in one or more usb webcams, some of which have good cases.
- AceJohnny2 4y agoAt a guess, this would likely cost in the high-hundreds to thousands of dollars if "mass" produced. "mass" production is really expensive, as you have to add design-for-manufacturability and design-for-testing, and account for yield loss and customer support (how happy would you be if your expensive camera appeared DOA?). At that price-point, are there other devices on the market that already fulfill the need? > Adding network connectivity to this project probably wouldn't be a large endeavour lol
- artificialLimbs 4y agoFantasic work. Thank you.
- circuitvalley 4y agoI am the Developer behind this camera. Happy to answer any questions you have regard this project.
- icelancer 4y agoHow can we get USB-C (or USB3) connectivity with 720p@240fps? The IMX477 theoretically can do this but due to 2 lane limitation on the Jetson and the RPi this is infeasible (plus write speeds saturate bandwidth, but you can dump frames to DDR RAM first). Have had a ton of problems trying to figure this out.
- circuitvalley 4y ago720p@240FPS would be little hard because of limitations on the USB controller side. because of 100Mhz and 32bit limit you have possibility of only 400Mbytepersecnd and with few % overhead you have may be get around 200 FPS of color UYV image. if you are ok without colors then you can get to 400FPS @ 720p
- DoingIsLearning 4y ago> 720p@240FPS would be little hard because of limitations on the USB controller side. What would be the theoretical limit of the sensor itself? Could you extend the project to work as a high speed camera? Perhaps using a Firewire ip core implementation instead of USB?
- circuitvalley 4y agoThere are only few options, 1. Use USB controller Chip that support 10Gbit or more. 2. Use 10Bit or more ethernet, Optical or copper. 3. Use PCIe 4. Use onboard storage. 5. Use HDMI or something custom and have another receiver (They are called frame grabber and everybody hate them). Right now there are not many controllers on market that can do more than 5Gbit Most useable solution is to use Ethernet , I would say optical.
- deleted 4y ago[deleted]
- _8j50 4y agoI am testing out arducam, my biggest problem is finding an outdoor friendly enclosure or any enclosure that i can mount on a window or wall. My options seem to be messing with non-conductive resin or repurposing existing webcam enclosures. Also, the quality and fps isn't impressive and I still have to figure out how to disable the IR lights that are a deal breaker for window mounting. Tips welcome. I have no idea if this camera is any better but will try to compare specs.
- blandcoffee 4y agoThis is great work. In the same light is anyone aware of ip67 cameras with integrated lens? I see someone posted the opencv camera above, but I’d be interested in more options. The openmv h7 and arducam boards have tempted me, but getting housing made for them is difficult.
- lnsru 4y agoFantastic open source project. I was involved in similar development a decade ago. The camera was in development hell will 1.6 million € wasted. There were permanently changing product managers, project managers and contractors. No end in sight. And nowadays somebody publish their million euro development on GitHub. Thank you!
- ChuckNorris89 4y agoIn your opinion, what caused the development of that product to be hell? Bad/clueless management? Poor engineering hires? Was it a scrappy startup or a large established corporation? Asking since I've also experienced this and seems to be prevailing in this industry and yet I feel it's relatively easily preventable.
- lnsru 4y agoI had another case of the same development hell and I feel one coming in my current job soon. It’s easy for middle management to draw yearly plans in the slides. However reality can bite hard with silicon bugs, unusable libraries or even bugs in development tools. This camera disaster was in a big old company. They wanted to get mpg pictures straight from the camera to show on other device. Half million € was gone between planing and first buggy prototype. A company was hired to design it externally. This external company generated design with matlab rendering it non-debuggable. I think it’s managerial thing. I was screaming many times as simple developer not to hit own leg with an axe. But I felt like I was barking. Manager has always last word and there is a need for convincing to do technically sane thing. Now I just do what I was told. Even when technically it makes no sense. I don’t need additional tensions with insulted manager (anymore).
- habi 4y agoNot too no diminish this in any way, but https://www3.elphel.com/ https://www3.elphel.com/ has been doing open source hard- and software since a while.
- circuitvalley 4y agoElphel Camera cost a insane amount of money and Reputation of the company after google incidence, I would rather not talk about.
- habi 4y agoHonest question: what Google incidence? (I know that Elphel cameras were used for iterations of Google StreetView and Googles book scanning project.)
- circuitvalley 4y agoThey were initially used then for certain reason they were dropped.
- habi 4y agoStill interested; do you know more about the reason? Is this the incidence you mention?
- dheera 4y agoAlso related: Take a Raspberry Pi Mini, a Raspberry Pi HQ camera, and install this firmware https://github.com/showmewebcam/showmewebcam https://github.com/showmewebcam/showmewebcam and it turns your Pi into a UVC-compatible USB webcam with a C mount lens. This firmware also boots instantly, and is also safe to unplug and plug without logging in and issuing a shutdown command. There are even some 3D print housings for this combination on Thingiverse. I really wish we had something similar with a larger e.g. APS-C or 35mm full frame sensor though. The Pi "HQ" camera is more like shit-Q compared to a modern consumer camera.
- Roark66 4y agoThis is a very cool project especially that it seems to be the only low latency "consumer grade" camera available. 4 lines of latency are quoted, this is great considering other alternatives (rpi cam, other sbcs + csi camera) have latencies from 50ms up to 150ms which makes them borderline unusable for many uses such as dynamic fpv, fast acting machine vision etc.
- shoobs 4y agoThis is a pretty impressive project, though the results (https://www.youtube.com/watch?v=dwXs9RB6uD0 https://www.youtube.com/watch?v=dwXs9RB6uD0) are somewhat disappointing. From what I see toward the end of the video, the image is blurry with poor colour rendition, although it is fantastically low latency. I suspect you're currently limited by the optics you're using, lack of white-balance and low CRI lighting. Looking forward to seeing further tests!
- gtsnexp 4y agoSony produces new sensors at a relatively faster pace compared to the camera development cycle. For years, I've been looking for ways of testing these sensors before developments boards would come to market. This project is super interesting and great inspiration for testing new sensors.
- Existenceblinks 4y agoHot. I hope the year of modular phone will come so I can pick up a decent sensor for a budget phone for my mom instead of $1200+ with a less than an inch of sensor!
- semi-extrinsic 4y agoLooks like you can get e.g. a Xiaomi 11T Pro for $425 on Amazon. You can't do much better than that for a mobile camera sensor (Isocell GN2), and I can't imagine any modular phone that will be cheaper once you've upgraded the camera.
- amelius 4y agoGreat project. Speaking of which, did anyone have the opportunity to get their hands on Samsung's ISOCELL sensor ICs, or any camera-modules that contain them? https://semiconductor.samsung.com/image-sensor/ https://semiconductor.samsung.com/image-sensor/ E.g. the ISOCELL HP3 has 200 megapixels, 0.56μm pixelsize and 120 fps at 4K resolution.
- blagie 4y agoI was looking for a "Buy" button. I didn't care about the other stuff. I wish there was one. I have a bunch of industrial cams, which are pretty similar and pretty good, but open design would be huge for what I do. What I want: - Quality 1080p capture at 30fps (25 is fine too) - USB Webcam - C-mount - Compressed output, so I can connect a few without saturating USB ELP makes many modules like this, and they're <$100 and work well. Other brands do too, which have been a mixed bag.
- DoingIsLearning 4y ago> ELP makes many modules like this, and they're <$100 and work well. Slight off topic but do you have any recommendations on cameras with motorized focus that can be controlled electronically? For example with OpenCV's CV_CAP_PROP_FOCUS flag?
- blagie 4y agoI have no recommendations there matching 100%, but one of these might work: Many (perhaps most) off-the-shelf webcams do allow you to control focus, but aren't C-mount, and you're stuck with their lens and their preprocessing. For what I do, webcam preprocessing makes it almost useless for my applications. Almost all are auto-something, and I don't need exposure or white balance changing once I've calibrated lighting and a machine vision pipeline. Many do nominally have manual exposure and white balance controls, but I've had poor luck finding ones where I have consistency at the level of a module like an ELP. If you're willing to hack or forgo OpenCV integration, it's ridiculously easy to control C-mount lenses with electronic focus control. That's what I did when I needed to do this. You can look on eBay for something like a vintage Computar TV Zoom Lens (and documentation on Computar's web site still existed when I did this). Prices vary, but when contractors rip out ancient surveillance systems, these can be had for a song. Or you can splurge, and get a 20x zoom f/1.8. The ones I bought, it's literally just applying a voltage to a pair of wires to make it zoom or focus in one direction or the other. You just need a few GPIO pins, and to step up the voltage to what it needs (I'm inclined to say 12V, but it might be 5V; it's been a while -- but from not recalling, you can see how easy this was; if this was a week project, I'd remember). What you really want is a module with the same interface as something like the Computar, which I know exist, but I've never used, so I can't recommend them one way or the other. And it'd be easy to hack into OpenCV if you really wanted.