Commit Graph

48 Commits

Author SHA1 Message Date
LittleSam129
b27a5cf00e Lab066: validate 500 ksymbol/s full-packet OTA reception 2026-09-15 15:51:57 +03:00
LittleSam129
dacf04f2d0 Lab065: validate OTA gain improvement at TX VGA 20 dB 2026-09-15 13:42:08 +03:00
LittleSam129
cff226e0bf Lab064: measure OTA level linearity at TX VGA 10 dB 2026-09-15 12:03:48 +03:00
LittleSam129
4437917465 Lab063: localize Lab062 RF quality degradation offline 2026-09-14 15:11:46 +03:00
LittleSam129
f8ae6c6bfc Lab062: record invalidated 500 ksymbol/s RF packet trial 2026-09-14 13:58:42 +03:00
LittleSam129
25cc89f0c7 Lab061: integrate T2 into the strict receiver 2026-09-14 11:07:40 +03:00
LittleSam129
92b0e0f8dd Lab060: validate decision-directed carrier tracking 2026-09-11 14:13:51 +03:00
LittleSam129
e16ec23fdb Lab059: establish limits of preamble-only carrier estimation 2026-09-11 13:08:32 +03:00
LittleSam129
82f17499ac Lab058: characterize symbol quality in controlled ABAB recording 2026-09-11 11:49:48 +03:00
LittleSam129
5773136ebf Lab057: diagnose Lab054 symbol synchronization failures offline 2026-09-10 16:10:17 +03:00
LittleSam129
92477a4632 Lab056: compare 20 and 500 ksymbol/s in controlled RF session 2026-09-10 13:58:11 +03:00
LittleSam129
5add95ecb8 Lab055: audit received signal energy across symbol rates 2026-09-09 15:07:11 +03:00
LittleSam129
0368c6d3e9 Lab053: achieve real-time 5 fps software video receiver 2026-09-09 10:26:55 +03:00
LittleSam129
cc38900cae Lab052: suppress false preamble candidates 2026-09-08 17:29:52 +03:00
LittleSam129
9f33607d3a Lab051: accelerate 500 ksymbol/s streaming receiver 2026-09-08 16:04:09 +03:00
LittleSam129
60691a09f1 Lab050: model fresh-frame SDR video stream 2026-09-08 14:15:36 +03:00
LittleSam129
cdf5396e80 Lab049: define ELRS control and SDR video architecture 2026-09-08 13:26:06 +03:00
LittleSam129
ac6cc792b8 Lab048: accelerate BPSK receiver to real-time 2026-09-03 14:42:02 +03:00
LittleSam129
6fb7e4ec54 Lab047: transmit JPEG over real RF link 2026-09-03 13:13:23 +03:00
LittleSam129
52197a4d85 Lab046C: validate full 1400 MHz RF object transport 2026-09-02 16:18:40 +03:00
LittleSam129
d985030f04 Lab046C: recover short 1400 MHz capture offline 2026-09-02 12:23:14 +03:00
LittleSam129
9b906c622d Lab046C: analyze weak RF capture offline 2026-09-01 17:09:27 +03:00
LittleSam129
b6654671b4 Lab046C: record first continuous RF object attempt 2026-09-01 15:42:00 +03:00
LittleSam129
39fa4b139d Lab046B: validate continuous raw IQ frame reception 2026-09-01 14:36:51 +03:00
LittleSam129
e8d85ae4b7 Lab046A: validate continuous soft-symbol frame scanning 2026-09-01 13:18:42 +03:00
LittleSam129
1027eef53d Lab046: validate fragmented BPSK object transport 2026-09-01 11:39:45 +03:00
LittleSam129
62a376c811 Lab045: demonstrate real RF BPSK error correction
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-01 10:49:00 +03:00
LittleSam129
72f933a32b Lab044: validate arbitrary BPSK packet reception
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-31 14:39:12 +03:00
LittleSam129
fa2e473c6d Lab042: validate Pluto image hardware loopback 2026-08-17 18:30:16 +03:00
LittleSam129
fce14f038e Lab042: transmit an image over the air, add the air loopback mode
First transmission through a real radio path in the project. A 4756-byte
JPEG went from transmitter to receiver over two antennas 60 cm apart at
225 MHz and reassembled byte-identical, reproduced across three runs.

The cable loopback still needs an SMA male-to-male adapter that has not
arrived, so this air run is a track verification, not the controlled
measurement: room levels are not held the way a cable holds them. Its
purpose was to exercise the device wrapper the models cannot cover.

Four defects the software model passed but the hardware exposed, each
reproduced and fixed:

- a 566 528-sample frame did not fit the 262 144 receive buffer, and the
  sample stream is not continuous across separate reads, so a frame on the
  seam was destroyed. Reception now uses one buffer sized to the frame
- carrier correction was always applied, but with a shared reference the
  true offset is near zero and the 80-symbol marker estimate is noise;
  correcting by it rotated phase along the whole frame, 65% bit errors
  measured. Ported should_apply_cfo_correction from Lab023
- receiver gain of 20 dB left the signal at 0.0003 of full scale. Levels
  set by measurement: RX 50 dB, TX -10 dB give zero bit errors with margin
- the error-vector metric returned zero on a failed receive, reporting a
  perfect signal where there was none, the same class of defect as the
  written-in figures of Lab041. Replaced with an explicit not-computed value

The air TX gain ceiling is now derived from the link budget by antenna
distance rather than a constant. Three loopback modes: software, cable,
air. PROJECT_LOG entry 019 records the run and the defects.

Software and cable results stay reproducible; 125 tests pass, gate passes.
2026-08-17 11:50:04 +03:00
LittleSam129
92289bdf7c Cover control messages and session state; record the RF decision
Two more suites, 69 checks, bringing the fast tests to 125 in 0.3 s.

test_control_messages: roundtrip for all ten message types, a guard that
fails if a type is added without a test, wrong version, unknown type,
truncation, the control-state range rules including negative and
non-finite speed, and sequence comparison across the 32-bit wrap and the
ambiguous 2^31 boundary.

test_session_state: the safety properties that previously only ran inside
Lab041. Safe boot on both sides, status and authorization not being a
movement command, a new operator command being required, stale session,
boot and epoch identifiers, replay, sequence wrap, ambiguity, persisted
emergency intent surviving a restart, acknowledgement not clearing it,
ordinary commands not releasing the latch, idempotent reset, and reset
not restoring the previous command.

Two of these were literal zeros in the Lab041 report and measured
nothing: negative speed and speed above the limit are now genuinely
exercised against the encoder.

PROJECT_LOG entry 018 records the RF architecture decision: 200-250 MHz
with frequency hopping, a directional ground antenna and spread spectrum
for the command channel, with the rejected alternatives and why.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 15:29:47 +03:00
LittleSam129
7d122b53ed Lab041: remove non-modelled metrics and cite value sources
Audit found seven numbers in simulate_trial that were neither modelled by
Lab041 nor traceable to their claimed source. Video fraction 0.910 did not
match Lab040 (0.9603); base queue length 31 did not match Lab040 (36-38).

- drop video/telemetry/control delivered fractions and queue length: these
  belong to Lab037 and Lab040 and are not modelled here
- drop lab041_traffic_impact.png, which plotted only those metrics
- drop negative_speed_cases and speed_limit_exceeded_cases, never computed,
  along with the tautological asserts that checked them
- bind braking parameters to the Lab039 nominal profile via named constants
  instead of the literals 0.250 and the divisor 6.0
- cite Lab038 as the source of the transferred video and telemetry loads
- rewrite the invariants section: nine architecture-derived properties now
  carry functional-check references, five unmeasurable ones move to their
  own section
- extend check 04 with negative speed and the 15 m/s boundary
- state explicitly what the matrix rolls, what the architecture fixes and
  what is not modelled at all

Regenerated: 180 combinations, 24/24 checks, five CSV and seven PNG.
Six columns removed, no retained value changed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 17:32:51 +03:00
LittleSam129
f26d7d74ef Lab041: add session and restart safety 2026-08-05 14:14:24 +03:00
LittleSam129
88addff5b6 Lab040: add persistent emergency intent and safe reset 2026-08-05 13:12:49 +03:00
LittleSam129
b3ebe1637f Lab039: model two-stage failsafe braking 2026-08-05 11:44:43 +03:00
LittleSam129
23cfdf581b Lab038: add control failsafe and emergency acknowledgement 2026-08-04 14:06:50 +03:00
LittleSam129
50e45ca611 Lab037: evaluate control repetition on lossy link 2026-08-04 13:18:49 +03:00
LittleSam129
3e0ef5666e Lab036: validate long-duration video scheduling 2026-08-03 17:10:17 +03:00
LittleSam129
22c2eeab8c Lab035: add proactive video frame admission 2026-08-03 15:42:16 +03:00
LittleSam129
b63e36abdb Lab034: evaluate stale video frame dropping 2026-08-03 13:17:55 +03:00
LittleSam129
21751f41dd Lab033: add priority link scheduler 2026-08-03 12:21:49 +03:00
LittleSam129
3dbb7afa83 Lab032: evaluate FEC block parameters 2026-07-29 12:47:10 +03:00
LittleSam129
2ac1571c40 Lab031: evaluate FEC packet interleaving 2026-07-29 12:25:51 +03:00
LittleSam129
edab87b5d2 Lab030: add packet erasure FEC 2026-07-29 11:40:37 +03:00
LittleSam129
f8575f4de3 Lab029B: simulate time-based burst losses 2026-07-27 16:28:54 +03:00
LittleSam129
a2dd58a44b Lab029: simulate packet loss and channel errors 2026-07-27 15:29:39 +03:00
LittleSam129
04ce66fdfe Lab028: add video packetization and CRC reassembly 2026-07-27 13:46:01 +03:00
LittleSam129
1ff04b12b9 Repair project layout and fix Lab024B spectrum detection 2026-07-21 13:51:41 +03:00