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 1bursttv_rx --rtlsdr 1249000000 262144 --gain 297bursttv_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.
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 msfixed 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:
This repository currently contains the first reusable building blocks:
- BurstTV v1 wire format
- packet/header serialization
CRC-8andCRC-16- additive scrambler
- rate-
1/2, constraint-length-7convolutional 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/rxapps for software and SDR experimentation
- 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:
64-bitalternating preamble32-bitsync word- fixed-width header
- payload
CRC-16- scrambling, FEC, and interleaving over the protected body
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
ctest --test-dir build --output-on-failureDependencies:
libhackrflibrtlsdr- C++17 toolchain
shared/: common link-layer primitivestx/: transmitter scaffoldingrx/: receiver scaffoldingtests/: protocol and FEC tests
