BurstTV

No description available.

BurstTV

BurstTV is a DECT-inspired digital video link for pushing low-latency grayscale video over a 1 Msym/s binary GFSK signal.

The current SDR defaults target the 23cm amateur band, and the default transmitted station ID is K8SDR. For live RTL-SDR smoke tests, the CLI frontends currently use 2.4 Msps so they stay within common RTL-SDR limits; the long-term modem target remains 1 Msym/s with proper timing recovery. The live HackRF path now emits one fixed 10 ms burst epoch at a time so the RF carrier stays up continuously while packets advance on a DECT-like cadence.

Current live-demo path:

  • bursttv_tx --hackrf 1249000000 --fps 1
  • bursttv_rx --rtlsdr 1249000000 262144 --gain 297
  • bursttv_tx --hackrf 1249000000 --camera /dev/video0 --fps 1

The transmitter uses a conservative 24x16 all-keyframe webcam profile with repeated two-slice video frames and frequent stream-configuration packets. The receiver renders a live ASCII grayscale preview in the terminal and also writes the latest decoded frame to /tmp/bursttv_latest.pgm.

Live RF demo

Current live webcam smoke test:

  • TX: ./build/tx/bursttv_tx --hackrf 1249000000 --camera /dev/video0 --fps 1
  • RX: ./build/rx/bursttv_rx --rtlsdr 1249000000 262144 --gain 297

The current demo is intentionally conservative so the RF link stays decodable while webcam input is active:

  • 10 ms fixed burst epochs
  • continuous HackRF carrier with packet updates at epoch boundaries
  • grayscale webcam capture via V4L2
  • averaged downscaling into the on-air frame size
  • repeated stream-configuration packets and repeated video slices for extra margin

Example RTL receive screenshot:

BurstTV live RF screenshot

This repository currently contains the first reusable building blocks:

  • BurstTV v1 wire format
  • packet/header serialization
  • CRC-8 and CRC-16
  • additive scrambler
  • rate-1/2, constraint-length-7 convolutional FEC
  • hard-decision Viterbi decode
  • block interleaver/deinterleaver
  • grayscale test-pattern video pipeline with keyframe/delta slices
  • HackRF transmit and RTL-SDR receive wrappers
  • basic tx / rx apps for software and SDR experimentation

BurstTV v1 link assumptions

  • Modulation: binary GFSK
  • Symbol rate: 1,000,000 sym/s
  • Initial sample rate target: 4 Msps
  • Initial BT: 0.5
  • Video target: low-latency grayscale

The on-air burst shape is:

  1. 64-bit alternating preamble
  2. 32-bit sync word
  3. fixed-width header
  4. payload
  5. CRC-16
  6. scrambling, FEC, and interleaving over the protected body

Build

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
ctest --test-dir build --output-on-failure

Dependencies:

  • libhackrf
  • librtlsdr
  • C++17 toolchain

Layout

  • shared/: common link-layer primitives
  • tx/: transmitter scaffolding
  • rx/: receiver scaffolding
  • tests/: protocol and FEC tests