Raw sensor data over an HDMI/DVI link.
FPGA boards rarely have camera connectors; nearly everything has HDMI. bayerlink treats a display link's active area as a byte container — packed raw Bayer samples, one camera line per display line, self-described by a 48-byte header — so real sensor data reaches any board with HDMI-in: no MIPI hardware, no deserialisers, no per-sensor bring-up on the receiver.
| Repository | What it is |
|---|---|
| bayerlink | The protocol: specification, reference codec (pip install bayerlink), test patterns, and the conformance vectors implementations verify against |
| picam2hdmi | Reference encoder: a Raspberry Pi camera as a bayerlink source — every sensor libcamera supports, with no per-sensor code |
| bayertap | The conformance tap: point any V4L2 capture device at a source and it judges the link — byte-exact via a TC358743 bridge, or through a $10 USB dongle via the luma tunnel |
The protocol is deliberately independent of any tool. Anything emitting the bytes is a source, anything parsing the header is a receiver, and the fourcc registry gives new payload formats a door. Independent implementations are unrestricted and encouraged — pass the vectors, open an issue, get listed.
Anticipated next: an FPGA-side decoder for np2hw-generated pipelines, and a microcontroller pattern dongle for receiver bring-up with no camera at all.
Sponsorship here buys ordering and named credit, never exclusivity: a protocol with privately-held pieces is a broken protocol, so everything a sponsor funds lands open, immediately, for every implementer. What sponsorship concretely accelerates:
- A new device — a Jetson encoder, an RP2350 pattern/DVP dongle, the SBC you actually deploy. Done means: the conformance vectors pass on that hardware.
- A new payload format — 10-bit packed, 14-bit, monochrome: a fourcc assignment, the reference packer, and committed vectors, which is what makes a format real for every implementation at once.
- Receiver-side work and the remaining Raspberry Pi milestones (KMS scanout, zero-copy capture).
- FPGA receiver capabilities in np2hw, the open compiler the bayerlink FPGA decoder is built with -- its README lists its own sponsorable targets.
Worth saying plainly: on the Raspberry Pi, sensors need no funding — libcamera already covers every camera the Pi supports, and this project never holds per-sensor code. The fundable things are devices, formats and receivers.
One-off or recurring via the sponsor button, or write first with what you need: s.rabykin@gmail.com. Agreed scope, named credit in the release notes and the implementations table.