HM01B0 or HM0360?

@ptillisch and all - I am pretty sure the camera is the HM01B0.

For a couple of reasons:
a) The box said it :wink:
b) OpenMV example works a QVGA resolution, but not at VGA resolution. Although
maybe there are other reasons why...

However I have found starting up the camera on Arduino (MBED) appears to be
flaky at best. A good percentage of the time it will fail init and give the fast blink forever...

What I am wondering is, looking at the schematic:

The 2.8v passed in, I believe comes from:

And I am guessing that the PU resistors on the image of the connector you mentioned earlier:


Are populated and are also controlled by that LDO

If I looked at it correctly, I belive the LDO_ENABLE is on GPIO0 pin? which I believe is
PH_12? Wondering if anyone enables it?

Note: when it works and I have debug turned on in the camera examples:
It shows finding the camera in the I2C list. Note: I also now have a Qwiic button
connected to it through the external pins. When the camera works, this ID shows
up as well when the camera library scans the I2C bus. When the camera fails,
nothing shows up in the Scan:

Specifically, in CameraCaptureRawBytes example sketch,
I edited it to use HM01b0 instead of HM0360 and:
in setup I have(had)

void setup() {
  // Init the cam QVGA, 30FPS
  Serial.begin(115200);
  while (!Serial && millis() < 5000) {}
  himax.debug(Serial);
  cam.debug(Serial);

  if (!cam.begin(CAMERA_R320x240, IMAGE_MODE, 30)) {
    blinkLED();
  }

  blinkLED(5);
}

This time it worked:

Sensor address: 0x24
Sensor address: 0x6F

Those come from the Scan function:

ScanResults<uint8_t> Camera::i2cScan()
{
    uint8_t addr;
    ScanResults<uint8_t> res;

    for (addr=1; addr<127; addr++) {
        CameraWire.beginTransmission(addr);
        if (CameraWire.endTransmission() == 0) {
            res.push(addr);
            if (_debug) {
                _debug->print("Sensor address: 0x");
                _debug->println(addr, HEX);
            }
        }
    }
    return res;
}

When it does not work all I see is the message from:

    if (i2cScan() != this->sensor->getID()) {
        if (_debug) {
            _debug->print("Detected SensorID: 0x");
            _debug->println(this->sensor->getID(), HEX);
        }
        return false;
    }

Now to try to localize it down. Not sure if it is timing? or alignment or???
As some builds work and others don't