Commit Graph

88 Commits

Author SHA1 Message Date
LittleSam129
34f5ace545 Prepare first RF-001A OTA run 2026-09-21 15:55:49 +03:00
LittleSam129
1e3aa25d70 Combine RF-001A clock verification and RX capture 2026-09-21 13:43:31 +03:00
LittleSam129
fa370ccfa2 Prepare RF-001A RX capture task 2026-09-21 12:40:35 +03:00
LittleSam129
442451bdfb Add RX task watcher and approval workflow 2026-09-21 11:32:26 +03:00
LittleSam129
b28befc69d Fix RF-001A common-clock verification 2026-09-21 10:29:06 +03:00
LittleSam129
320adeea4a Prepare coordinated RF-001A OTA test 2026-09-18 15:30:45 +03:00
LittleSam129
7ec8c351bc Fix RX targeted test scope 2026-09-18 13:51:31 +03:00
LittleSam129
fdd58508da Advance RX handoff to hardware preflight 2026-09-18 13:30:04 +03:00
LittleSam129
06fadf6957 Update RX node preflight handoff 2026-09-18 13:09:09 +03:00
LittleSam129
8017849e24 Add RX laptop handoff workflow 2026-09-18 12:20:15 +03:00
LittleSam129
1ff8ccf27e RF-001: add hardware test plan 2026-09-17 15:27:14 +03:00
LittleSam129
3c31bac0da CLOCK-001: validate independent-clock QPSK receiver 2026-09-17 15:05:44 +03:00
LittleSam129
6df5f8aa39 VIDEO-005: add full offline QPSK IQ video receiver 2026-09-17 13:34:58 +03:00
LittleSam129
95f664076a Complete VIDEO-001 through VIDEO-004 software video studies 2026-09-16 18:27:35 +03:00
LittleSam129
af7c05f2da Lab067: localize remaining PHY header failures 2026-09-15 17:45:38 +03:00
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
b0111d2232 Docs: add laboratory index and result pointers 2026-09-02 16:19:27 +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
4cee6e9b96 Lab043: establish reproducible HackRF BPSK working point 2026-08-31 12:18:44 +03:00
LittleSam129
42b0120eea Lab043: add hardware diagnostics and HackRF comparison tools 2026-08-21 17:33:57 +03:00
LittleSam129
f0fa7e8a46 Lab043: validate pilot-aided short BPSK link 2026-08-19 18:14:13 +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
13f183f7c7 Run the core tests from the gate and finish the layout rename
The gate now runs pytest as well, so one command answers whether the code
base is broken: syntax, protocol imports, the 125 core tests, then the lab
functional suites. It fails when a test fails, verified by feeding it a
deliberately broken test.

Two leftovers from moving the labs into experiments/ are fixed: the lab
command still pointed at tests/, and the hook only watched protocol and
tests, so edits under experiments/ and tools/ triggered nothing.

Profiling the 3.6 s gate: 0.24 s syntax, 0.12 s imports, 0.61 s pytest,
2.7 s lab functional suites, of which Lab042's software loopback is 1.14 s
because it pushes a whole image through the chain. The pytest addition is
the small part. prepare_jpeg is now cached, since six checks call it and
each call re-encoded the image at several qualities.

README described the gate without the tests it now runs.
2026-08-11 13:40:05 +03:00