Arducam Mini 2MP Plus OV2640 register datasheet incomplete for Raspberry Pi Pico W

Hi everyone, I’m using the Arducam Mini 2MP Plus – OV2640 SPI Camera Module for a school project and I’m a bit stuck on the register documentation. The camera itself seems fine, but I’ve been digging through the OV2640 datasheet and a whole lot of registers are just marked as “reserved”. The thing is, the demo code clearly reads and writes some of those same registers for image adjustments like contrast, brightness, etc. So the demo uses them, but the datasheet gives no description of what they actually do. Does anyone know if there’s an updated OV2640 datasheet that actually documents those registers? The datasheets I’ve found all say “preliminary” and only about half the registers are described.

Thanks for the details. Before I dig into the documentation side, could you share a bit more about your setup? Specifically the platform you’re running on and whether you’ve got any code or logs handy. Also, which documentation were you following when you ran into the reserved registers?

Sure. The module is the Arducam Mini 2MP Plus, model number B0067, running on a Raspberry Pi Pico W. I was following the online documentation for the OV2640 datasheet. I don’t really have any code or logs to share yet — right now I’m mostly trying to understand the register map before I start writing my own image adjustment code. But that’s exactly where I’m stuck, because the registers I need are marked reserved in the datasheet.

Got it, that helps. I’ve reviewed the documentation we have available for the OV2640 and I can confirm what you’re seeing. The publicly available OV2640 datasheets are identified as “preliminary”, and the register map in them is incomplete. A lot of registers are listed as “reserved” even though the demo code does use them for image adjustments like contrast and brightness. So it’s not that you’re looking at the wrong document — it’s a known documentation gap between the demo implementation and the published register map.

As a reference, there’s an application note that covers the camera shield software side of things. It’s the closest thing we have to supplementary documentation for this: https://www.arducam.com/downloads/shields/ArduCAM_Camera_Shield_Software_Application_Note.pdf

Take a look at that and see if it clarifies how the demo handles those settings.

Thanks, I’ll go through that PDF. Just to be clear though, is there any chance of getting an updated OV2640 datasheet that actually describes those registers? Even a partial register description for contrast/brightness would be really helpful, because right now the demo code is the only reference and it’s hard to know what values are safe to write.

Unfortunately, the application note I linked above is all the information we’re able to provide on this. There isn’t an updated OV2640 datasheet available that documents those reserved registers. For now, the best practical reference is the demo code itself — it shows how the registers are actually used for contrast, brightness, and similar adjustments, even though the public preliminary datasheet doesn’t describe them. If you’re implementing those features, I’d suggest treating the demo’s register values as the known-good reference and testing carefully against that.