Two Eyes, One Tiny Chip: This Open-Source Board Computes Stereo Depth So Your Arduino Doesn't Have To

User Avatar Aswinth Raj
Author
Share
Machinehum's 4reel Board With Stereo Camera Views

Hardware hacker machinehum (Rootkit Labs) has built 4reel, a small open-source stereo vision board that gives robots depth perception without a Raspberry Pi or a PC riding along. Two OV9281 global-shutter cameras sit at either end of the PCB, and the depth maths runs on the board's own Rockchip RV1103 chip. Your Arduino or ESP32 just reads the results over UART. Powered by a single-core 1.1 GHz Arm Cortex-A7 with 64 MB of DDR2 packed into a QFN-88, it's a full Linux computer that fits on a camera bar.

What's on the board

Besides the RV1103 and the two global-shutter cameras, the board carries an LIS2HH12 3-axis accelerometer, 4 MB of W25Q32 flash, a microSD slot, 10/100 Ethernet on an RJ45 jack, USB-C and a JST connector for UART. That JST port can also power the board from 5 V. Plug in over USB-C and 4reel shows up as an Ethernet adapter, hands your PC an IP address and serves a web portal at 192.168.77.1:8080 for viewing, calibration and focus.

The clever bit: a hardware SAD engine

Stereo depth works by comparing small patches of the left image with the right one while sliding one image sideways. A patch that matches after only a small shift is far away, and one that needs a bigger shift is close. The similarity score is the sum of absolute differences (SAD) between pixels, and the RV1103's Rockchip Video Engine has a SAD accelerator built in. 4reel's userspace app configures the cameras through V4L2 sub-devices, grabs frames from /dev/videoX and feeds them to that engine through /dev/rve, so the single Arm core never has to grind through block matching itself.

Where to dive deeper

The four-layer board was "mostly correct" on the first spin. In his write-up, machinehum lists what went wrong, including the wrong SoC on the order and lens-mount holes drilled at 1.8 mm instead of 2.2 mm. The OS is built with Buildroot using Rockchip's vendor kernel, and his post walks through the full boot chain from BootROM to U-Boot to Linux. The KiCad files, Buildroot config and scripts are on GitHub under the MIT licence. Next on his list are SLAM and YOLO.

Image credit: machinehum (Rootkit Labs), board photo from the 4reel write-up, with stereo camera views and depth map taken from his demo video. Composited and resized.

Add a comment

No account needed. Your comment appears once a moderator has reviewed it.

Never shown publicly.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.