Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Modular Pi Cam (github.com/jdc-cunningham)
72 points by jcun4128 5 months ago | hide | past | favorite | 24 comments
This is the third camera I've designed/made around the raspberry pi parts/ecosystem.

The repo has all the STL files, parts list, most wiring diagrams. The first one was the custom Pi Zero HQ cam which was featured on a Hackaday article/podcast.

The modular version (aside from being able to swap cameras) mostly has the latest software. Recently I added the ability to process videos in the background (ffmpeg merges wav/mp4 files together).

The camera uses crop-zoom-panning for dialing in shots with manual lenses. The menu is created by layering images/text with PIL. Live preview is a little slow as it's SPI based.

If anybody is a pro at python I'd appreciate insight on better code. I've mostly just followed a context-based folder layout regarding where everything is.

I have not added custom/manual settings yet, it uses auto settings for the most part except for when you use a V3 camera module (which has electronic aperture) then it uses the d-pad to set the focus/diopter value.

I have another camera in mind/future build although it's more tailored for videos.

Some sample video I've shot.

https://www.youtube.com/watch?v=JkjXkQD0j9w

Assembly video

https://www.youtube.com/watch?v=dXG-MoIw93Q

At some point I will rewrite the code for a new general purpose DIY camera software from what I've learned, that'll be an undertaking.




I just really wish Raspberry Pi would come out with a truly HQ camera with a full frame 35mm sensor, or at least an APS-C sensor. I'd pay $1000-1500 for it, just to have something as good as a full frame camera but programmable and hackable.

I would love to build a full frame mirrorless camera that runs my own UI. I'm pretty sure I could code a much more advanced UI than Sony or Canon.

Their current HQ camera is more like an LQ camera and there is not a huge variety of high quality photographic lenses available for it.


Check out Will Whang's work: https://www.willwhang.dev

He and the developer of the Pieca camera (https://teaandtechtime.com/pieca-a-raspberry-pi-camera-syste...) have both been tinkering with 1" sensors, which seems to be the current limit for what kind of sensor works okay with the Pi's CSI interface.

I haven't found a larger sensor that is available to mere mortals yet, but it would be neat to get to 35mm someday.


I suspect the price point the Raspberry Pi targets isn't easily compatible with a truly high quality camera.

As I understand things, the Pi has a single lane of CSI at maybe 1.5 Gbps. That's enough for 1080p video, it's not enough for 4k video.

A high-end smartphone, on the other hand, has more like 5 Gbps of bandwidth to the camera, and the processing power needed to deal with that much data. But the device cost is 10x what an RPi costs, so they can afford it.


I have seen some people work on a Kodak sensor and also Cine Pi's latest work with the IMX585 sensor is really amazing (4K/8K upscaled). The IMX585 sensor is expensive though compared to the HQ Cam IMX477. Here I'm using the Pi Zero 2 here so can't do 4K I believe (data lanes limit or something, also writing to SD card).

Kodak sensor https://www.youtube.com/watch?v=Ma9FrN5COIo

Recent CinePi work https://youtu.be/tI7hIKG1v40?si=BUvOOGutQJDnv09q&t=177

I'm not affiliated with CinePi I'm just amazed what you can do when you know what you're doing ha (eg. color grading)


CinePi didn't develop the hardware, that's Will Whang's (https://www.willwhang.dev/OneInchEye/) work.


Ah I did not know that, thanks


Thanks for the link to the Kodak sensor - that's awesome, because those sensors have a fairly common interface across all the other Kodak sensors like the 48x36mm Medium format 22MP sensors... It would be pretty easy to adapt this project to make your own CCD medium format camera!


Another good link

https://www.youtube.com/watch?v=6QQx0G5MR3k

Trying to find this one where a guy made a sensor stack from scratch it wasn't great like 1 MP but still amazing

This one open source USB 3 camera damn!

https://www.circuitvalley.com/2022/06/pensource-usb-c-indust...


Breaking Taps had a video not long ago covering his efforts to design and fab his own image sensor, though it didn't work and it wouldn't have been anywhere near 1MP even if it had.


I watched that, was amazing, those kind of creators like Applied Science are on another level.


there is no market for a 1500$ raspberry pi camera


Here is a write up on topics covered by these camera iterations

https://medium.com/@jdc-cunningham/making-a-user-interface-f...

A lot of pictures and full menu map

And MS paint wiring diagrams

(1st camera) https://github.com/jdc-cunningham/pi-zero-hq-cam/tree/master...

(2nd camera orange) https://github.com/jdc-cunningham/modular-pi-cam/blob/master...


Nice work! What's the boot time like? I didn't see it in your Medium page.


It's slow haha. Faster on the Pi Zero 2 with bookworm. I think it's 20-30 seconds.

I use systemd to run main.py let me time it real quick.

Edit: I was off, it's 40 seconds when the intro animation starts playing.

This is why the camera spends most of its time in the home screen state until you're ready to take a photo which is when the live pass through plays or while recording a video (allows you to change focus/aperture while filming). That also conserves power since it has the highest current draw while recording/showing a live preview.


Try alpine to slim it down?


I would advise against running Alpine on a Raspberry Pi (Zero) Alpine is great for servers or Docker containers, but once you start installing it on barely supported hardware you'll notice the pain.


I will check it out, I'm using headless bookworm atm


My observation regarding prices:

resistor - $.10.

resistor for Arduino: $10.00


Did anyone have any luck capturing stereoscopic videos at any meaningful quality? This used to be only possible with the Pi Compute module (unobtainium for a very long time) but the Pi5 finally exposes both camera ports.... while also dropping hardware encoding, which is likely to be a huge roadblock since I doubt there's enough CPU power + bandwidth to compress 2 4K streams at 60fps in realtime and store it. And I'd love to go even higher actually.

The official forums are surprisingly devoid of anyone trying this, which is not super encouraging.

I'd really like to experiment in doing some underwater VR180 photo/videography, I promise to share the results if anyone has any useful pointers (not strictly rPi related, but other platforms are even less promising. Happy for any unexpected hints tho!)

(Sorry for the barely-on-topic (if not outright offtopic)) but this is a rare chance to tap into HN's hive mind on this particular issue due to a Pi-camera related thread on the front page.


Happy you brought it up. I've been in and out of stereo photography for decades now. Initially I built a contraption with front-surface mirrors to expose two photos side-by-side on 35mm film. In later decades I tried dual digital cameras — at times even just sliding horizontally with a single digital camera (no moving images of course).

Fuji had a decent stereo camera years ago. I had one briefly but have been unable to find it for years now. I either misplaced it or it was stolen....

eBay is where I head now to find the Fuji cameras. But it is disappointing that there is not a current commercial stereo camera that I am aware of.

Perhaps someone can take the Pi and come up with something fairly high quality.


Canon has the RF 5.2 dual fisheye, you can even get it refurbished.

https://www.usa.canon.com/shop/p/refurbished-rf5-2mm-f2-8-l-...


The best hardware option currently is StereoPi: https://stereopi.com

But the software has a ways to go, it seems. I wonder if a potential CM5 would be able to stream the two video feeds better than the CM4.


Thanks Jeff!

I had read and promptly forgotten about StereoPi, I'll give it another look now that CM4s are no longer impossible to get.

Regarding CM5... who knows (Probably you? :-) ) but given the loss of hardware encoding I'm keeping my expectations low for video at any decent resolution and framerate (unfortunately a 2x2064x2208x60fps video is close to 1.5 GB per second, and at 72fps (which should really be a minimum) it's 2GB/sec, hardly the realm of software encoding, unless I want to bring an Epyc/Threadripper underwater and somehow power it from a battery.)


Great work!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: