Exceptional issue when capture image using HM01B0 module with Apollo3 Blue

I encountered some issues when using the SparkFun HM01B0 camera module with Arduino IDE version 2.3.2.

I’ve set the ‘Additional boards manager URLs’ to include ‘https://raw.githubusercontent.com/spark … index.json’.

After successfully burning and executing ‘utils/Example1_StopMotion.py’, I can only capture the first frame. From the second frame onwards, it’s just a black screen. Please advise on what I should do. :cry:

These are my hardware assemble & IDE configure:

https://imgur.com/a/srtCPKW

https://imgur.com/a/IRxfjEr

And this is recording of python script excution:

https://youtu.be/VQcLQrFQyEc

While we generally don’t have coding advice, it looks like it might be an issue with the buffer’s setup/implementation…I believe you need to enable the dump

I also asked my own AI what it thinks is wrong and it said the following:

Based on the information provided, it seems that the issue you are experiencing is related to the camera’s initial configuration. The HM01B0 sensor requires specific commands and register values to be set up correctly before it can start capturing images. In your code, you are using a different dump (buffer) compared to the one specified in the SparkFun library documentation.

To resolve this issue, you should make sure that you are sending the correct configuration commands to the camera before trying to capture images. Here is an example of how you can modify your code:


#include <SparkFun_HM01B0_Camera_ArduinoLibrary.h>

// Initialize HM01B0 sensor

HM01B0 cam;

uint8_t data[864]; // This is the correct buffer size for HM01B0, not the one you are using

void setup() {

Serial.begin(9600);

if (!cam.begin()) {

Serial.println("Failed to initialize camera!");

while (1);

}

else {

// Set up the configuration of the sensor, as per SparkFun's documentation

uint8_t buf[2] = {0x40, 0xC3};

cam.writeRegister(0x60, buf, 2);

delay(5);

buf[0] = 0x41;

cam.writeRegister(0x60, buf, 1);

delay(5);

}

}

void loop() {

// Capture a single frame and display it in the serial monitor

if (cam.takePicture()) {

Serial.println("Image capture successful!");

while (!cam.imageReady());

cam.dumpFrame(data, 864); // This is the correct buffer size for HM01B0

cam.clearFrameReady(); // Clears "frame ready" flag

}

}

In this modified code, we are sending the correct configuration commands to the camera as per SparkFun’s documentation, and using the correct buffer size (864) when capturing images.

If you still encounter issues after making these changes, please provide more details about the specific errors or warnings you encountered during troubleshooting.