Landing page enhancements: - Screenshot gallery showing Smith chart, SWR, LC match, multi-trace - Hardware section with NanoVNA-H photo - Example prompts section Theme changes: - Warm RF Lab Bench aesthetic (copper/amber accents, warm grays) - Unified visual family with nanovna-h-docs - Steel blue for code links - Spec cards and menu path styling Assets: - 9 NanoVNA display screenshots from nanovna-h-docs - 2 hardware photos (NanoVNA-H device + PCB)
180 lines
5.1 KiB
Plaintext
180 lines
5.1 KiB
Plaintext
---
|
|
title: mcnanovna
|
|
description: MCP servers for NanoVNA control and antenna positioner automation
|
|
template: splash
|
|
hero:
|
|
tagline: Give your AI direct control of RF test equipment
|
|
image:
|
|
file: ../../assets/hero.svg
|
|
actions:
|
|
- text: Get Started
|
|
link: /getting-started/quickstart/
|
|
icon: right-arrow
|
|
- text: View on Gitea
|
|
link: https://git.supported.systems/rf/mcnanovna
|
|
icon: external
|
|
variant: minimal
|
|
---
|
|
|
|
import { Card, CardGrid, Tabs, TabItem } from '@astrojs/starlight/components';
|
|
import { Image } from 'astro:assets';
|
|
import smithChart from '../../assets/screenshots/smith-chart.png';
|
|
import swrTrace from '../../assets/screenshots/swr-trace.png';
|
|
import lcMatch from '../../assets/screenshots/measure-lc-match.png';
|
|
import multiTrace from '../../assets/screenshots/multi-trace.png';
|
|
import nanoVNA from '../../assets/hardware/NanoVNA-H-2.jpg';
|
|
|
|
## What is this?
|
|
|
|
Two MCP servers that let AI assistants control RF test equipment:
|
|
|
|
<CardGrid stagger>
|
|
<Card title="mcnanovna" icon="document">
|
|
Controls NanoVNA-H vector network analyzers over USB serial.
|
|
78 tools for sweeps, calibration, analysis, and 3D radiation patterns.
|
|
</Card>
|
|
<Card title="mcpositioner" icon="setting">
|
|
Controls ESP32 dual-axis antenna positioners over WiFi.
|
|
5 tools for stepper motor positioning and automated measurement grids.
|
|
</Card>
|
|
<Card title="Cross-Server Workflows" icon="rocket">
|
|
Both servers work together for automated 3D antenna pattern measurement.
|
|
The AI orchestrates positioning and VNA measurements across the grid.
|
|
</Card>
|
|
<Card title="Web UI" icon="laptop">
|
|
Optional Three.js 3D viewer for radiation patterns.
|
|
Real-time visualization as measurements are taken.
|
|
</Card>
|
|
</CardGrid>
|
|
|
|
## What Can It Do?
|
|
|
|
Your AI assistant gains direct access to professional RF measurement capabilities:
|
|
|
|
<div class="screenshot-gallery">
|
|
<figure>
|
|
<Image src={smithChart} alt="Smith chart display showing impedance plot" width={320} />
|
|
<figcaption>Impedance analysis on Smith chart</figcaption>
|
|
</figure>
|
|
<figure>
|
|
<Image src={swrTrace} alt="SWR measurement trace" width={320} />
|
|
<figcaption>SWR sweep across frequency</figcaption>
|
|
</figure>
|
|
<figure>
|
|
<Image src={lcMatch} alt="LC matching network calculation" width={320} />
|
|
<figcaption>Automatic LC match calculation</figcaption>
|
|
</figure>
|
|
<figure>
|
|
<Image src={multiTrace} alt="Multiple trace display" width={320} />
|
|
<figcaption>Multi-trace S-parameter display</figcaption>
|
|
</figure>
|
|
</div>
|
|
|
|
## Quick Install
|
|
|
|
```bash
|
|
# Add both servers to Claude Code
|
|
claude mcp add mcnanovna -- uvx mcnanovna
|
|
claude mcp add mcpositioner -- uvx mcpositioner
|
|
```
|
|
|
|
Then ask Claude to analyze your antenna, measure a filter, or run a 3D pattern sweep.
|
|
|
|
## Hardware
|
|
|
|
<div class="hardware-section">
|
|
<div class="hardware-text">
|
|
<h3>NanoVNA-H</h3>
|
|
<p>The NanoVNA-H (or H4) connects via USB serial and is auto-detected. No drivers needed on Linux — just plug in and go.</p>
|
|
|
|
<h3>ESP32 Positioner</h3>
|
|
<p>Optional dual-axis antenna positioner for automated 3D pattern measurement:</p>
|
|
<ul>
|
|
<li>2x NEMA 17 steppers + TMC2209 drivers</li>
|
|
<li>StallGuard sensorless homing</li>
|
|
<li>WiFi HTTP API for remote control</li>
|
|
<li>Firmware and KiCad schematics included</li>
|
|
</ul>
|
|
</div>
|
|
<figure class="hardware-image">
|
|
<Image src={nanoVNA} alt="NanoVNA-H vector network analyzer" width={400} />
|
|
<figcaption>NanoVNA-H — 50kHz to 1.5GHz VNA</figcaption>
|
|
</figure>
|
|
</div>
|
|
|
|
## Example Prompts
|
|
|
|
Once installed, try asking your AI:
|
|
|
|
- *"Connect to my NanoVNA and sweep 7.0-7.3 MHz to check my 40m dipole"*
|
|
- *"Measure the insertion loss of this BPF from 144-148 MHz"*
|
|
- *"What's the impedance at the resonant frequency? Suggest an LC match."*
|
|
- *"Run a 3D radiation pattern sweep at 15° resolution"*
|
|
- *"Export the S11 data as a Touchstone file"*
|
|
|
|
<style>{`
|
|
.screenshot-gallery {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
|
|
gap: 1.5rem;
|
|
margin: 2rem 0;
|
|
}
|
|
|
|
.screenshot-gallery figure {
|
|
margin: 0;
|
|
text-align: center;
|
|
}
|
|
|
|
.screenshot-gallery img {
|
|
border-radius: 8px;
|
|
border: 1px solid var(--sl-color-gray-5);
|
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
transition: transform 0.2s ease;
|
|
}
|
|
|
|
.screenshot-gallery img:hover {
|
|
transform: scale(1.02);
|
|
}
|
|
|
|
.screenshot-gallery figcaption {
|
|
margin-top: 0.5rem;
|
|
font-size: 0.9rem;
|
|
color: var(--sl-color-gray-2);
|
|
}
|
|
|
|
.hardware-section {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 2rem;
|
|
align-items: start;
|
|
margin: 1.5rem 0;
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.hardware-section {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
.hardware-section h3 {
|
|
margin-top: 0;
|
|
color: var(--sl-color-accent-high);
|
|
}
|
|
|
|
.hardware-image {
|
|
margin: 0;
|
|
text-align: center;
|
|
}
|
|
|
|
.hardware-image img {
|
|
border-radius: 8px;
|
|
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
|
|
}
|
|
|
|
.hardware-image figcaption {
|
|
margin-top: 0.75rem;
|
|
font-size: 0.9rem;
|
|
color: var(--sl-color-gray-2);
|
|
}
|
|
`}</style>
|