s.Link — our own radio link
We write the physical and link layers ourselves. s.Link joins the station to the operator point to point: bearing telemetry out, commands back — no relays and no internet in between.
Overview
A channel we designed for the job
We write the physical and link layers ourselves, so the channel's characteristics are set by the job rather than by a supplier's catalogue. s.Link connects the station to the operator: bearing telemetry out, commands back.
The station is on the air 2.3% of the time — 83 seconds an hour. In a spectrogram a burst like that reads as a domestic sensor at 872 MHz, not as a military channel.
PHY profiles
Not one mode, but a ladder
Every distinct use of the radio here is a separate named profile with its own budget and its own tests, not a "setting" of the one next to it. The three narrowband ones differ by exactly one lever: the slower the symbols, the narrower the receiver's noise bandwidth — and the further it hears.
| Profile | Symbols/s | Bandwidth | What it buys | Status |
|---|---|---|---|---|
| Shared with the sweep | 240 000 | ≈250 kHz | The modem lives inside the station's 30.72 MS/s hardware profile: an exact ×32 division in DSP, with no fractional resampler and none of the timing wander one brings. | the only one to detect on the shared chain |
| Long range | 25 000 | 26 kHz | A tenfold narrower noise bandwidth: −10 dB, so 3.2× the reach. The link carries 11 bytes every 15 s — there is simply nothing here to spend rate on. | deployed, the default |
| Half rate | 12 500 | ≈13 kHz | Half as wide again. Theory promises 10·log₁₀2 = 3.01 dB, measured 2.7–3.0. One slow frame instead of two fast ones — the slot does not move. | launchable; air by loopback, not by field |
| 4K video | 15 360 000 | 19.2 MHz | 1024 bytes in 0.557 ms — 14.7 Mbit/s of payload, inside the AD9363's 20 MHz ceiling. Its own profile, not the narrowband one "turned up". | off-air |
Narrowband bandwidths are GMSK BT=0.5 at ≈1.04 of the symbol rate (the same rule that gives 26 kHz at 25 ksym/s). The 19.2 MHz for 4K is a constant from the code.
What is already measured
| Measured | Value | When |
|---|---|---|
| Downlink station → operator, a 29.6 min window | 777 of 803 packets = 96.8%, median SNR 38.5–40.7 dB | 05.09 · on air |
| Uplink operator → station, 2 min | 21 of 21 = 100%, 0 undecoded | 05.09 · on air |
| Loss after capture, s.Link 1.1 vs 1.0 | 2.0% of captured energy wasted instead of 10.8% | 05.09 · on air |
| Decode threshold on the air | +2.27 dB | 15.08 · on air |
| Half-rate profile 12.5 ksym/s, gain | ~3 dB on a real RF capture (+2.7…2.8 in simulation) | 01.09 · RF loopback |
| Receiver sensitivity, gain | +3.47 dB from a matched filter | 16.08 · AWGN simulation |
| Transmitter speed, gain | ×10.2, the signal bit-identical | 17.08 · measured |
| Reference oscillator offset between two boards | 5.01 ppm — 4,369 Hz at 872 MHz | 12.08 · measured |
| AD9361 retune — the basis of frequency hopping | ≤0.133 ms settling, 28 of 28 transitions | 24.08 · measured |
| Jamming resistance: GMSK vs chirp | GMSK dies to a jammer 1…4 dB weaker than itself, chirp holds +13…+28 dB | 06.09 · simulation |
| s.Link, continuous session | 5 h 20 min, 4863 frames | bench |
| s.Link, authentication failures | 0 of 4863 | bench |
| s.Link duty cycle, remote station | 2.3% — 83 s of air per hour | measured |
| s.Link duty cycle, operator | 0% when idle | code constant |
| 640×480 video through the whole chain | 60 of 60 frames byte-exact | 22.08 · bench |
What this table does not carry is range. There has never been a distance trial in the field, so every kilometre in our calculations is a link budget, not a measurement. The 05.09 on-air figures come from the working station ↔ operator link; the 1.1-vs-1.0 comparison rests on windows of 29.6 and 131 min — the direction is unambiguous, the precision of the number is not.
Ready in code — waiting for the air
These are not plans or intentions: the code is written, the chain closes on the bench, the tests are green. Exactly one thing is missing — a run on the air.
The amplifier study
Why "just add a watt" does not add range
The obvious answer to range is an amplifier. We costed it and checked it, and it turned out to be mostly a trap. We publish it because this is the part of engineering that shows whether someone has actually worked with hardware.
Development plan
Where the link grows next
These, by contrast, are plans, and we label them as such. What is already implemented off-air is said plainly; the number still missing before the air is named.
We can show the link working in person. The full technical wiki and the protocol specification live in the data room.