11 Commits

Author SHA1 Message Date
8b4aacab81 Add v3.05.0 safety review documentation and Hamilton test suite docs
- firmware/custom-v305.mdx: watchdog, timeout protection, error codes,
  I2C return checks, do_tune() safety, DiSEqC fixes, hardware validation
- tools/safety-testing.mdx: 55-test adversarial suite covering DiSEqC
  abuse, tune parameter abuse, I2C address abuse, state machine violations,
  boundary conditions, rapid-fire stress, and invalid vendor commands
- Updated version comparison with v3.05 tab and architectural table
- Sidebar entries for both new pages
2026-02-17 13:52:23 -07:00
592898dd7a Add F9/F10 screenshots, fix duplicate widget ID in motor screen
Generate motor.svg and survey.svg for the new TUI screens. Fix
MotorScreen bug: two Horizontal widgets shared id="motor-usals-inputs",
causing MountError. Replaced with classes="usals-input-row" since both
rows need the same styling. Regenerated all 13 screenshots.
2026-02-15 18:05:15 -07:00
cc3a0707a1 Add DiSEqC motor control, QO-100 DATV reception, and carrier survey
Firmware v3.03.0: DiSEqC Manchester encoder (cmd 0x8D extended),
parameterized spectrum sweep (0xBA), adaptive blind scan (0xBB),
error code reporting (0xBC). All new function locals moved to XDATA
to fit within FX2LP 256-byte internal RAM constraint.

Motor control: DiSEqC 1.2 positioner with USALS GotoX, stored
positions, interactive keyboard jog, 30-second safety auto-halt.

QO-100 DATV: Es'hail-2 wideband transponder tools — LNB IF
calculator, narrowband scan, tune, and TS-to-video pipe (ffplay/mpv).

Carrier survey: six-stage pipeline (coarse sweep → peak detection →
fine sweep → blind scan → TS sample → catalog). JSON catalog with
differential analysis, QO-100 optimized mode, CSV/text export.

TUI: F9 Motor screen (3-column layout with signal gauge), F10 Survey
screen (Full Band + QO-100 tabs). Bridge, demo, and theme updated.

Docs: motor.mdx, survey.mdx, qo100-datv.mdx guide, tui.mdx updated
for 10 screens. Site builds 41 pages, all links valid.
2026-02-15 17:01:11 -07:00
0f4ba4766f Add TUI documentation for F6-F8 screens and regenerate screenshots
Update tui.mdx with Device, Stream, and Config screen sections
including keyboard shortcuts, Tabs/Steps components, and safety
warnings. Update generate_screenshots.py to capture all 11 screens.
Regenerate all SVGs with current sidebar layout.
2026-02-14 16:24:59 -07:00
5d9dfa7794 Add TUI documentation page with generated SVG screenshots
- New docs page (tools/tui.mdx) covering all 5 RF modes, keyboard
  shortcuts, easter eggs, and splash screen with inline SVG screenshots
- Screenshot generation script using Textual headless Pilot API to
  capture 8 screens in demo mode without hardware
- Fix dark mode toggle: migrate from removed App.dark to App.theme API
  (Textual 7.x breaking change)
- Update social link to Gitea repo, add TUI to sidebar
2026-02-14 14:49:02 -07:00
c4bfe33d61 Replace monolithic Master Reference with focused Sources page
The 1711-line master reference was 100% duplicated across the existing
37 Starlight pages. Trimmed to bibliography only (Ghidra port numbers,
driver source paths, analysis reports, community links).

Salvaged FX2 USB controller registers (SETUPDAT, CPUCS, EP0BUF, etc.)
into bcm4500/register-map.mdx before removal. Sidebar label updated
from "Master Reference" to "Sources".
2026-02-13 02:52:49 -07:00
7b27c93219 Reorder firmware versions: custom first, then newest-to-oldest stock 2026-02-13 02:46:54 -07:00
a7daecded6 Add Docker deployment config and v3.02 firmware docs
Deployment: Dockerfile (multi-stage dev/prod with Caddy static
serving), docker-compose.yml (caddy-docker-proxy labels),
Caddyfile, Makefile, .dockerignore.

Docs: v3.02 firmware page, v3.01 updates.
2026-02-12 23:31:55 -07:00
867b304773 Add BCM4500 register map and fill documentation gaps
New page: bcm4500/register-map.mdx consolidates all register
addresses (direct, indirect page 0, FX2 XRAM/IRAM, I2C controller)
into a single lookup reference with cross-reference index.

Expanded sections:
- fw213-variants: hardware detection mechanism, distinguishing
  characteristics table, FW1 demod type detection signatures
- demodulator: probe logic (3x3 retry, INT0 40-iteration boot probe
  at 0x7F/0x3F, no_demod_flag graceful degradation)
- version-comparison: version ID gap aside (v2.07.04 is a kernel
  constant, not a real firmware release)

Cross-links added to signal-monitoring and tuning-protocol pages.
2026-02-12 23:28:54 -07:00
3f970967c4 Add Starlight docs for v3.02 signal monitoring and RF analysis tools
New pages (Diátaxis framework):
- tools/skywalker.mdx: reference for all 5 skywalker.py modes
- tools/spectrum-analysis.mdx: how-to guide for RF analysis workflows
- hardware/rf-coverage.mdx: explanation of LNB shifting and L-band coverage

Updated pages:
- firmware/custom-v301.mdx: v3.02 commands (0xB7-0xB9) with protocol docs
- usb/vendor-commands.mdx: signal monitoring command reference
- astro.config.mjs: sidebar entries and firmware version label
2026-02-12 17:38:48 -07:00
b21f4957f6 Add Starlight documentation site (32 pages, 9 sidebar groups)
Astro 5 + Starlight 0.37 site at site/ with teal/steel theme.
Content sourced from 14 reverse engineering docs, master reference,
and custom firmware source. Includes Tabs, Badge, Steps, Aside,
FileTree, and CardGrid components throughout. DiSEqC SVGs with
click-to-zoom via starlight-image-zoom. All internal links validated.
Pagefind search indexes all 32 pages.
2026-02-12 16:32:12 -07:00