Show HN: Modular Pi Cam

github.com

71 points by jcun4128 9 days ago

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.

dheera 8 days ago

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.

  • michaelt 8 days ago

    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.

  • jcun4128 8 days ago

    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)

    • buildbot 8 days ago

      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!

  • poulpy123 8 days ago

    there is no market for a 1500$ raspberry pi camera

jcun4128 8 days ago

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...

  • daniel_reetz 8 days ago

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

    • jcun4128 8 days ago

      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.

      • atlas_hugged 8 days ago

        Try alpine to slim it down?

        • justaj 8 days ago

          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.

        • jcun4128 8 days ago

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

p0w3n3d 8 days ago

My observation regarding prices:

resistor - $.10.

resistor for Arduino: $10.00

gruturo 8 days ago

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.

  • JKCalhoun 8 days ago

    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.

  • geerlingguy 8 days ago

    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.

    • gruturo 8 days ago

      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.)

ugh123 8 days ago

Great work!