I have an Arducam-Mini-5MP with Arduino UNO R3. I am running the unaltered example ArduCAM_Mini_OV5642_Video_Streaming to the arduino and am running ArduCAM_host_v1.0.exe on my PC with huge successes.

In this state, I can reliably take photos at low resolution (up to 1280x720) in all tested settings. However, when I go to higher resolutions (2592x1944, 2048x1563, and 1920x1080), certain situations result in consistently corrupt images all with the exact size of 524288 bytes.

The images are corrupted whenever I point the camera outside my window, and images are fine when taking photos inside my house. At 1280x720, a typical photo inside my house is 80kb and a typical photo out the window is 190kb (more than double in size). I suppose some content of the photo is impacting the jpg compression?

Unfortunately, images are corrupt 100% of the time for the actual subject I want to take; but the camera works perfectly when I'm testing it indoors. In my scenario I can only capture 0.8MP before images become corrupt.

The frame buffer limit for Arducam is 512kb, so am I just running up against the constraints of the hardware? I feel a bit fooled because I bought a 5MP camera and can only take 0.8MP photos with it.

Is my understanding of this failure correct -- is this the frame buffer size being hit by conditions impacting jpg compression? Are there Arducam shields available with higher frame buffers? Can I avoid this situation somehow?

  • You're getting corrupted images of size 524288 bytes consistently. It so happens that 512 kB * 1024 bytes/kB = 524288 bytes. You said it already; you've most likely hit the buffer's limit. I suggest you contact the Arducam support team concerning other shields with larger frame buffers. – TisteAndii Jul 26 '16 at 3:18
  • Thanks for confirming that. So I guess I just wonder why do they put a 5MP camera onto a shield that only reliably supports 0.8 MP image sizes? Also wondering if there is a way to increase compression ratio or if there is something I'm missing here to make this design make more sense. – Kenn Jul 26 '16 at 4:02
  • Okay - I have reached out to ArduCam team. github.com/ArduCAM/Arduino/issues/66 – Kenn Jul 26 '16 at 5:07
  • The problem may also be on the Arduino side. E.g. The SD library might not support files larger than 512kb. – Gerben Jul 26 '16 at 20:02

The Arducam Mini Shield is limited to 512kb frame buffer, so photos of larger resolution easily overflow the buffer. You can fit higher resolution photos onto the frame buffer by increasing the compression or adjusting other settings on the camera that reduce the file size of the resulting image (reduce saturation, windowing, etc).

To change the compression, adjust register 0x4407. The higher the number the more compression there is. The camera's default is 0x0C and the Arducam sample code sets it to 0x04. myCAM.wrSensorReg16_8(0x4407,0x09);

To adjust other settings on the camera (including the ones listed above) check out the detailed list of camera registers at http://www.dragonwake.com/download/camera/ov5642/OV5642-DS.pdf

Also, Arducam is releasing the Arducam Mini Plus which has an 8 MByte frame buffer and is available on advanced order for $35 USD by contacting Arducam directly.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.