HM01B0 or HM0360?

I recently purchased one of these from Digikey.
Is there any visual way to know which one?

I believe the bottom of the box said HM01b0, but not sure if the box
updated later on?

Questions what is the unused component footprint near the center
bottom of the image?

Just seeing if there was some way to hook up Logic Analyzer) to
see the camera signals.

Thanks

There are no identifying marks visible in that pic. Take both sides, before posting make sure that what you can see with your Mark I eyeball can also be seen in the pic.
Also, scan the two QR codes to see what they tell you.

Hi @KurtE.

This is J5:

https://docs.arduino.cc/resources/schematics/ASX00021-schematics.pdf

📷

Portenta Vision Shield by Arduino - CC BY-SA 4.0 (cropped, border added)

Even though it has 40 pins, the 2-1734248-0 connector is only 20p, so this is why only 20 pins are shown in the schematic even though there are 40 pads on the board (the row of pads closest to the edge of the board are not connected to any net, only serving a mechanical purpose).

1 Like

And my phone does not appear to like to scan this QR code

Thanks,

May use my highlow test sketch to verify all of those pins, and who knows could
solder something on it... Although a bit small for me to hand solder...

@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