ArduCAM Mini Camera Module Shield w/ 2 MP OV2640 sending garbage data

I’m using the ArduCAM Mini Camera Module Shield w/ 2 MP OV2640 with the Arduino MKR WiFi 1010. I’ve tried running a few of the examples, most notably ArduCAM_Mini_2MP_OV2640_functions. I have a Mac but I tried using the host app through a Windows VM but the image just came out black. It seems like it was able to read Serial input though because the ACK messages were coming through fine. I see similar behaviour when looking at the Serial Monitor, I see the ACK commands but then a bunch of garbage data like this:

I’m trying this example right out of the box, the only thing I’ve experimented with is the memorysaver.h file. Here are the configs I’ve tried:

-#define OV2640_MINI_2MP_PLUS with #define ARDUCAM_SHIELD_V2 and #define OV2640_CAM

  • #define OV2640_MINI_2MP with #define ARDUCAM_SHIELD_V2 and #define OV2640_CAM

  • Just #define OV2640_MINI_2MP

Here is my connection configurationn

Any help is greatly appreciated


It seems that the baud rate does not match, you can reduce the baud rate in the code, or use our host app on widows to check.

But the debug messages come out ok, do you still think it’s the baud rate? I have a Mac so l tried the host app on a Windows VM but then image came out black


Can you paste the complete serial output? Let me confirm the debug messages .

Here is the full output when I send 0x10 with 115200 baud:

If this output is incorrect, how do I correct it, and if it’s correct, how do I process it into an image for example over python?


I inspected your debug message, and there seems to be no problem. As for the garbage output you see, it is actually image data, but the function used for output to the serial port is different. For the detailed difference, you can compare Serial.write() and Serial.print(). Using the host app should be able to display images, I suggest you test again on the corrected windows, not on a virtual machine.


I tried it on a real Windows machine and was able to get images. There are still some problems though. With single capture mode, the behaviour was flaky, the image would only come up sometimes. With continuous, the output was very slow and laggy, and even worse, the colours started changing. The image took on a green glow, then purple which is not desirable behaviour. How do I fix this. Also, how do I process the image on a client. As in, how would I get this image on a jpeg file on another machine (without SD card).



The frame rate is too slow is determined by the camera configuration and SPI and USART speed.
Sometimes the abnormal images are usually caused by the wrong data transmission, which may be the wire is too long, the SPI or USART speed is too fast.
If you don’t want to use SD card, you can only try serial port or WIFI to transfer images to another machine.