Hi all. I’m using an Arducam Mini 5MP Plus (SKU B0068) SPI camera on a Raspberry Pi Pico with the Arduino-Pico core and the ArduCAM Arduino Library. I followed the PICO_SPI_CAM example here: https://github.com/ArduCAM/PICO_SPI_CAM/tree/master/C/Examples/Arducam_MINI_5MP_Plus_Videostreaing. The output isn’t an image at all - it’s roughly 40 random black and gray-black blocks, and the shades are so close that it’s really faint. There’s no error in the log either. Has anyone seen this?
Thanks for posting. Can you confirm you used the host app exactly as in that example, and which SPI pins you’re on? That blocky output usually looks like the camera data is being read but shifted or corrupted, so pin mapping or SPI speed is where I’d start. If you have the startup log output, that could also help rule out an init failure.
I ran the host app exactly as described and it didn’t work. I also tried an online tutorial for taking pictures, same result. Then I tried other SPI pins on the Pico, moved the wires around, and even switched between two different breadboards - none of it changed anything. Still the same random gray/black blocks and no errors in the log.
Ok, that points away from wiring and breadboards. Since the Arduino-Pico core isn’t always a perfect match for the stock ArduCAM library, have you tried changing anything in the library itself? The block pattern could be a FIFO read or SPI timing issue rather than a dead sensor.
Actually yes. I spent some time modifying the ArduCAM Arduino Library to work with the Arduino-Pico core. After that it worked - I was getting real images for a while. But then I unplugged the Pico and plugged it back in, and it went straight back to the same broken block output. So I’m now pretty sure the problem is in the Arducam library, specifically the code in the RPi Pico repo (ArduCAM/PICO_SPI_CAM). There is something wrong with it.
That’s a really useful data point. If it worked after the library change and regressed after a power cycle, it’s likely a code/library issue rather than the hardware. Can you share what you changed? Even a rough diff or the relevant function would help. If you’ve put it somewhere public, post the link.
I submitted a pull request to reformat the Arduino Library code so it’s actually readable: reformat the entire project by nextdayy · Pull Request #570 · ArduCAM/Arduino · GitHub. My recommendation is that someone at Arducam review the code in the RPi Pico repo. Also one note for anyone testing: the camera’s exposure mode is auto, so it takes time to form a stable exposure - discard the first few frames before you capture.
Thanks for the PR link. To sum up where this landed: the camera itself seems fine - the root cause appears to be something wrong with the code/library in the RPi Pico repo (ArduCAM/PICO_SPI_CAM). Modifying the Arduino Library to work with the Arduino-Pico core got the camera working, which confirms it’s a library/repo code issue rather than hardware. I’d point anyone else hitting this at the PR reformat the entire project by nextdayy · Pull Request #570 · ArduCAM/Arduino · GitHub and the PICO_SPI_CAM repo review. For capture testing, keep auto exposure in mind - throw away the first few frames before saving an image.