Hacker News new | past | comments | ask | show | jobs | submit login

Lots of words but it doesn't zero in on exactly how it captures 2 million frames per second.



We use a strobe light instead of a mechanical shutter with a flash duration of 500ns.


How does it work from a code perspective inside the RP?


We reverse engineered the camera module's I2C protocol and figured out how to ask it to to energize all pixel lines at once instead of it going line by line.

The heart of it is just sending a few bytes down the I2C bus, but reverse engineering the register set was the challenging part as the datasheets are given only to OEMs.


Very neat! Was this also tested to see if it works on the Camera Module V2, by any chance?


We spent the first month of the project on the v2 modules. These are based on the Sony IMX219. Unlike the v1 cameras, the datasheets are publicly available and even then, after much hacking around we couldn't get all the lines to expose at the same time :'/


I would also like to know this.


Is it actually capturing 2 million frames per second?

What is the resolution/byte size of each frame versus the bandwidth of the I2C bus? Is there room on the bus for all that data?


It is not - from what I gather it's capturing a single exposure of a scene lit via a strobe to give a virtual 1/2000000s shutter speed.

Still super cool - the meat of what's novel here isn't the image assembly though, but rather the reverse engineering of the pi cams in a global shutter mode - I'm definitely interested in what the tradeoffs are around global vs. rolling shutter, if there's image artifacts or bandwidth issues, or what. Neat work gang!


How often can you get a readout? If it can go as often as 24fps, I can make my digital Super 8 camera with global shutter. :)




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: