PicoCrypt FPV – Real-time analog video encryption with a Pi Pico

1 pointsposted 3 hours ago
by nickisen

1 Comments

nickisen

3 hours ago

Hello HN,

I've been working on an open-source project called PicoCrypt FPV, a system for encrypting analog FPV (CVBS) video in real-time using a pair of Raspberry Pi Picos. The goal was to create a low-cost, low-latency way to secure a standard analog video feed.

The architecture involves two identical modules (transmitter and receiver):

Transmitter: The analog video-in is conditioned by an op-amp (like an LMH6702) and digitized by a parallel 8-bit Flash ADC (like the AD9280) running at 10 MS/s. The RP2040's first core encrypts this 8-bit stream line-by-line before it's sent over the RF link.

Receiver: The second RP2040 receives the encrypted stream, decrypts it on Core 0, and Core 1 clocks the data out to an 8-bit R-2R resistor ladder DAC. An op-amp buffers the final analog signal.

The encryption is a fast XOR-based stream cipher using the Xorshift128+ PRNG, seeded with a 64-bit pre-shared key. To prevent desynchronization, the PRNG is reset to its initial state on every V-Sync pulse, which effectively emulates a one-time-pad for each video frame.

By using the RP2040's dual cores, PIO for timing, and a line-by-line processing approach, the total added processing latency is kept under 1ms.

The repository includes all the C firmware for the sender/receiver, CMake build files, hardware schematics, a Bill of Materials, and a very detailed HTML project guide walking through all 6 phases of the build.

GitHub Repo: https://github.com/nickisen/picocrypt-fpv/tree/3d017e2fa1856...

Detailed Guide: https://github.com/nickisen/picocrypt-fpv/blob/3d017e2fa1856...