Hobbyist builds a stereo vision board on Rockchip RV1103

The author of the rootkitlabs.com blog describes a stereo vision board built around the Rockchip RV1103, a single-core 1.1 GHz ARM Cortex-A7 SoC with 64 MB of DDR2 RAM and a MIPI CSI-2 bus in a QFN-88 package. The goal was a cheap, simple board with built-in compute and Linux support. The author pictures it inside robotics projects, for example giving an Arduino obstacle avoidance or navigation: once powered up, the board transmits data over serial. It can also run on its own as an ordinary Linux board. A video in the post shows image capture and depth processing running on the hardware.
The PCB is a cheap four-layer board that the author got mostly right on the first attempt. Four mistakes are listed: the wrong SoC was requested, which meant a replacement; the lens-mount holes were drilled at 1.8 mm instead of 2.2 mm; 1k LED resistors were too small to make the LEDs light up nicely; and the 0.9 V trace was too thin, although it seemed to work fine.
On the software side, the author used Buildroot, called a favourite Linux build system, to produce a bootable image (sdcard.img) with the bootloader, kernel and drivers. You flash it to an SD card, put it in the board and boot. Not everything is upstream: the Rockchip MIPI drivers, hardware accelerators and some other key components came from the vendor BSP, and Buildroot supports out-of-tree kernels. The boot chain runs from BootROM to TPL (a Rockchip binary that sets up the DRAM controller), then SPL, U-Boot, the Linux kernel and an init system. After some simple Buildroot configuration the author had a shell over serial, and later moved to SSH with the USB-C port acting as an Ethernet adapter.
In user space, Video4Linux2 exposes each camera (an OV9281 driver is used) as 11 video nodes under /dev/videoX: video0 for normal capture, video1 to 3 for other stream IDs, video4 to 7 for scalers and video8 to 10 for auxiliary tools. Camera settings such as exposure are controlled through /dev/v4l-subdevX. The Rockchip Video Engine is exposed at /dev/rve and is driven through the proprietary librve.a. The author's userspace app configures the cameras, takes image data from /dev/videoX and feeds it into the RVE node.
The depth calculation relies on the SAD (sum of absolute differences) engine inside the Rockchip Video Engine. A grayscale image is a matrix of values from 0 to 255; the post gives a 2x2 example where two identical images give a SAD of 0. For stereo, the images are cut into small patches. The two cameras sit side by side, separated by a distance called the baseline. One image is held fixed while the other is shifted horizontally, and the system looks for matching blocks. Where the blocks match is the depth value: a match at an early shift means a far-away object, a later shift means a closer one. In the author's words, the shift required is the depth.
The author would like to sell a few of these devices and get feedback. With more than 20 email signups, the author will order another 10 boards with all the fixes and list them for sale. The signup is not a pre-order, and the author asks only people serious about supporting the project to sign up. If interest is strong enough, the next stage is software cleanups, image optimisations, and implementing SLAM and YOLO.
Key facts
- The board is built around the Rockchip RV1103: a single-core 1.1 GHz Cortex-A7 with 64 MB of DDR2 RAM and a MIPI CSI-2 bus, running Buildroot Linux from an SD card.
- Depth comes from SAD block matching on the SoC's hardware Rockchip Video Engine, reached through the proprietary librve.a, with two OV9281 cameras exposed through Video4Linux2.
- The first PCB revision had four listed faults: wrong SoC ordered, lens holes drilled at 1.8 mm instead of 2.2 mm, 1k LED resistors too small, and a 0.9 V trace too thin.
- The board transmits data over serial, aimed at robotics uses such as an Arduino needing obstacle avoidance or navigation.
- The author will order another 10 boards only if more than 20 people sign up; the signup is not a pre-order.
Why it matters
This is a small, concrete example of getting hardware stereo depth out of a very cheap SoC. The author's pitch is a cheap, simple board with built-in compute and Linux support, so depth processing happens on the board and a host only receives data over serial. The post also shows where the effort went: much of the work depended on the vendor BSP for MIPI drivers and accelerators, and on a proprietary library for the SAD engine.
Who it affects
Mainly hardware hackers and robotics hobbyists. The author names an Arduino-based project that needs obstacle avoidance or navigation as the intended case. Anyone who wants a small Linux board with two camera inputs may also be interested, since the board can run on its own with everything expected from a Linux board.
How to use it
There is nothing to buy yet. The author collects email signups for a possible second batch of 10 boards. Once powered up, the board transmits data over serial, or it can be used standalone as a Linux board. The OS image comes from Buildroot as sdcard.img: flash it to an SD card, insert it and boot. A shell is available over serial, and SSH works with the USB-C port acting as an Ethernet adapter. No price is given for the board.
How solid is it
This is a first-person build log by an unnamed hobbyist, not a product launch or a study. A video in the post is said to show image capture and depth processing on the hardware. The text gives no frame rate, depth range, depth accuracy or resolution figures, and no benchmark against other stereo vision boards. It also gives no baseline distance between the cameras and no count of boards in the first batch.
Risks and caveats
The first PCB revision had faults, including a 0.9 V trace the author calls too thin even though it seemed to work fine. A second batch happens only if more than 20 people sign up, and the signup is explicitly not a pre-order. The SLAM and YOLO work is conditional on enough interest, with no timescale given for the next batch or that work. Depth relies on the proprietary librve.a and vendor BSP components that are not upstream. No source-code, schematic or repository link is mentioned in the text.
“I built a cheap, simple stereo vision board with built-in compute and Linux support.”
— The author, rootkitlabs.com