4 Commits

Author SHA1 Message Date
c07284a7d6 ESP32 antenna positioner: dual-axis stepper control + automated 3D pattern measurement
PlatformIO firmware for ESP32 + 2x TMC2209 (UART, StallGuard sensorless homing)
driving NEMA 17 steppers. HTTP API with mDNS discovery (positioner.local).

Python side: async httpx client, PositionerMixin with 6 MCP tools including
measure_pattern_3d which orchestrates the full theta/phi sweep — serpentine
scan path, per-point S21 capture, progress reporting, WebSocket broadcast.

Web UI gains positioner REST endpoints (status, move, home).
New measure_antenna_range prompt for guided workflow.
2026-02-01 22:34:10 -07:00
646c92324d 3D antenna radiation pattern visualization: analytical models + Three.js web UI
Add analytical radiation pattern models for 5 antenna types (dipole, monopole,
EFHW, loop, patch) driven by S11 impedance measurements. Pure Python math with
closed-form far-field equations — no numpy or simulation dependencies.

New MCP tools:
- radiation_pattern: scan S11 → find resonance → compute 3D pattern
- radiation_pattern_from_data: compute from known impedance (no hardware)
- radiation_pattern_multi: patterns across a frequency band for animation

Web UI (opt-in via MCNANOVNA_WEB_PORT env var):
- Three.js gain-mapped sphere with OrbitControls
- Surface/wireframe/plane cut display modes with teal→amber color ramp
- Smith chart overlay, dBi reference rings, E/H plane cross-sections
- Real-time WebSocket push on new pattern computation
- FastAPI backend shares process with MCP server, zero new core deps

Frontend: Vite + TypeScript + Three.js, built assets committed to webui/static/.
Optional dependencies: fastapi + uvicorn via pip install mcnanovna[webui].
2026-01-31 15:27:19 -07:00
68a8705baf capture tool returns PNG Image by default, raw RGB565 optional
- Add Pillow dependency for server-side RGB565→PNG conversion
- capture() now returns fastmcp Image (PNG) by default
- Pass raw=True to get the original RGB565 base64 dict
- Eliminates 204K token overflow on default capture calls
2026-01-30 13:42:10 -07:00
eaa4f1d977 Initial implementation of mcnanovna FastMCP server
NanoVNA-H MCP server with 27 tools for VNA control via USB serial.
Protocol layer handles text + binary scan data parsing, three-phase
initialization sequence, and automatic device discovery (VID 0x0483).

Tools: info, sweep, scan, data, frequencies, marker, cal, save, recall,
pause, resume, power, bandwidth, edelay, s21offset, vbat, capture, trace,
transform, smooth, threshold, reset, version, detect, disconnect,
raw_command, cw
2026-01-30 12:27:47 -07:00