Skip to content
@bayerlink

bayerlink

Raw sensor data over commodity display links: protocol, conformance vectors, encoder and capture tooling

bayerlink

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.

Fundable work

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.

Popular repositories Loading

  1. picam2hdmi picam2hdmi Public

    Reference bayerlink encoder: a Raspberry Pi turns any libcamera sensor into a raw video source over HDMI

    Python

  2. bayerlink bayerlink Public

    Raw sensor data over any HDMI/DVI link: a self-describing byte container, conformance vectors, and real Bayer into any board with HDMI-in

    Python

  3. .github .github Public

  4. bayertap bayertap Public

    bayerlink conformance tap: any V4L2 capture stick becomes a protocol test instrument

    Python

  5. bayerlink.github.io bayerlink.github.io Public

    bayerlink.org — the protocol's front door

    HTML

Repositories

Showing 5 of 5 repositories

Top languages

Loading…

Most used topics

Loading…