Model number of the product(s)?
B0484 — Arducam 12MP IMX708 Quad-Camera Kit (4× IMX708 wide modules + Camarray HAT).
What hardware/platform were you working on?
NVIDIA Jetson Orin Nano Super 8GB DevKit, JetPack 6.x / L4T R36.5.0, kernel 5.15.185-tegra (OOT). Driver: arducam-nvidia-l4t-kernel with nv_imx708.ko v2.0.6 (RidgeRun). DT overlay: tegra234-p3767-camera-p3768-imx708-dual.dtbo.
HAT firmware date 2024-05-20.
Instructions you have followed. (link/manual/etc.)
Arducam install instructions for arducam-nvidia-l4t-kernel (the dual-IMX708 overlay package shipped for this HAT).
Also captured a libcamera I2C reference on Raspberry Pi 5 with the same physical HAT to compare protocols.
Problems you were having?
I cannot control the lens focus (VCM) on Jetson. Capture works fine via raw V4L2 (/dev/video0, RG10, 4608×2592, up to 14 fps; exposure and gain controllable). But:
v4l2-ctl --list-ctrls does not expose focus_absolute or any focus/AF control.
Direct i2cset writes to 0x0C (the DW9807 VCM address on the HAT-side bus, exactly the address libcamera uses on Pi) return rc=0 (ACK), but the lens does NOT move — captures at positions 0 / 445 / 725 / 1000 / 1023 are visually identical.
i2cget reads from 0x0C always return 0x00 on every register (status, position MSB/LSB, CTL) — on Pi the same reads return meaningful values.
I want fixed manual focus at optical infinity for all 4 cameras
What help do you need?
Is there a documented way to enable manual focus control for the B0484 Camarray HAT on Jetson Orin Nano ?
Is there any workaround to set the focus to optical infinity, for example by writing directly to registers or something similar?
If focus control on this HAT/Jetson combination is not supported by design, please confirm
That’s exactly the problem: it works with a standalone IMX708 camera, but it doesn’t work with the B0484
Writes to 0x0C return rc=0 (ACK), and the HAT does not freeze, but the lens does not move. I tested positions 0, 445, 725, 1000, 1023 — all captured frames are byte-for-byte identical.
Reads from 0x0C always return 0x00 for every register (status, position MSB/LSB, CTL) — a real IMX708 returns meaningful state, B0484 does not.