// hardware guide
Upgrade recommendations
MeshSat runs well on the baseline stack — RTL-SDR V3, QFH antenna, SAWbird+ LNA. These upgrades are ordered by impact. Tier 1 transforms reliability and decode quality. All prices in USD.
Current
QFH antenna→
SAWbird+ LNA→
RTL-SDR V3→
Pi (SD card)
baseline stack
Upgraded
QFH antenna→
Uputronics LNA→
Airspy Mini→
Pi + NVMe SSD
recommended stack
Last updated: April 2026 · Prices in USD · NAND shortage in effect — SSD prices volatile
01 // tier 1 — do these first
NVMe SSD + M.2 HAT
Do first
$12–15 HAT + $35–95 SSD (see note) = ~$50–110 total · Pi 5 only
SD cards die under write-intensive workloads. SatDump writes 50–200 MB of CADU data and reception JSON continuously during every pass, 24/7. An NVMe SSD is 18× faster and built for sustained writes. This is the reliability upgrade — not a speed flex. Losing a 72° pass because the SD card corrupted is avoidable.
⚠ SSD prices are volatile in 2026. NAND spot prices have more than doubled since mid-2025 due to AI demand. Budget no-name 256 GB 2230 drives run ~$35–55; WD/Samsung name-brand ~$65–95. Check current prices before buying — the HAT itself is a fixed $12–15.
BuyOfficial Raspberry Pi M.2 HAT+ ($12) pairs with any 2230 or 2242 NVMe. Pimoroni NVMe Base ($20) is excellent and tested. Avoid WD Green SN350 — known Pi 5 compatibility issues.
SSD size256 GB is plenty for a year of passes. 512 GB gives headroom for the image gallery and Grafana data.
SetupRaspberry Pi Imager can write directly to NVMe. Boot order change in raspi-config. Takes 15 min total.
Airspy Mini SDR
Biggest RF gain
$99 · airspy.us · wimo.com (EU)
The single largest quality jump in the RF chain. The RTL-SDR V3 uses an 8-bit ADC — the Airspy Mini uses a 12-bit ADC. That's 4× the dynamic range headroom. No IQ imbalance, no DC spike, no 1/f noise at the centre frequency. Plug-and-play on Linux and Raspberry Pi. SatDump supports it natively — change one line in config.ini.
vs RTL-SDRRTL-SDR V3: 8-bit, ~70 dB dynamic range, DC spike at centre. Airspy Mini: 12-bit, 80+ dB, 1 PPM TCXO, software bias-tee, no DC artefacts.
SatDumpChange source from rtlsdr to airspy in config.ini. Everything else stays the same.
Real-worldUsers report 10–15% improvement on marginal low-elevation passes and visibly cleaner imagery on good passes. M2-3 weak signal benefit is significant.
Uputronics 137.5 MHz Filtered Preamp
Best LNA
$80 · store.uputronics.com · airspy.us
The Nooelec SAWbird+ puts the LNA after the SAW filter — which adds filter insertion loss before the first amplification stage, worsening the system noise figure. Uputronics puts the LNA first (correct Friis chain order). MiniCircuits PSA4-5043+, 21 dB gain, 0.75 dB noise figure, FM high-pass pre-filter. Built in the UK, mil-spec components.
vs SAWbird+SAWbird+ NF ~1.5 dB due to filter-first architecture. Uputronics NF 0.75 dB. Lower NF = more of the satellite signal recovered above the noise floor.
PowerPowered via bias-tee from Airspy Mini or RTL-SDR V3 (4.5V). Or USB mini cable. Same wiring as SAWbird+.
MountInstall in an IP67 weatherproof box right at the antenna feedpoint for best results. See Tier 2 — Outdoor Enclosure.
02 // tier 2 — strong improvements
UPS HAT / battery backup
Never miss a pass
$25–45 depending on model
A power blip mid-pass loses the entire reception — the CADU stream is interrupted and the decode fails. A UPS HAT keeps the Pi running through brief outages and triggers a clean shutdown on extended ones, protecting the NVMe filesystem.
OptionsWaveshare UPS HAT (C) ~$25 for Pi 4 · Geekworm X1200 ~$35 for Pi 5 · PiJuice HAT ~$45 with RTC, programmable battery management, and shutdown scripts.
RuntimeMost give 30–90 min on a standard 18650 cell — enough to outlast typical domestic power blips and complete a pass already in progress.
LMR-400 coax + N connectors
Free dB
~$1.50–2.50/ft + connectors
At 137 MHz, RG-58 loses about 3 dB per 10 metres. LMR-400 loses 0.7 dB per 10 metres. Over a 10 m run that's 2.3 dB difference — nearly half your signal power. No LNA can recover signal lost in the coax. Keep the LNA at the antenna end.
At 137 MHzRG-58: ~3 dB/10m · RG-8X: ~1.5 dB/10m · LMR-400: ~0.7 dB/10m
ConnectorsN-type at the antenna end (weatherproof). N-to-SMA adapter at the LNA input. Wrap all outdoor connectors with self-amalgamating tape.
Short runsUnder 5 m, RG-58 loss is <1.5 dB — not worth the upgrade. Only matters on longer runs.
Outdoor weatherproof LNA enclosure
Pro RF chain
~$15–25 for IP67 box + SMA bulkheads
Mount the Uputronics LNA outdoors in an IP67 junction box right at the antenna feedpoint. The coax to the Pi then carries the amplified signal, so losses matter far less. This is how every professional satellite ground station is wired.
SetupIP67 plastic junction box (~$8–12) + two SMA bulkhead connectors (~$3 each). Uputronics inside, sealed with silica gel packet to prevent condensation.
PowerBias-tee power travels up the same coax from the Pi — no separate power cable to the mast. The LNA draws only ~80 mA from the Airspy bias-tee.
ResultCombined with LMR-400 you get LNA gain before any cable loss — the optimum receive chain topology.
PoE HAT + wired Ethernet
Clean install
~$20 HAT · any Cat6 cable
Replace the USB-C power brick and Wi-Fi with a single PoE Ethernet cable. One cable handles power and network. Wi-Fi dropouts mid-pass can interrupt the upload pipeline — wired Ethernet eliminates this. Essential if you move the Pi closer to the antenna.
Pi 5 HATOfficial Raspberry Pi PoE+ HAT (~$20). Check GPIO pin conflicts with the Meshtastic MeshAdv HAT before stacking — or use a PoE splitter (power only, no HAT).
DashboardThe FastAPI web dashboard is far more responsive over wired Ethernet. Strongly recommended once the GUI phase is built.
03 // ham radio — APRS + Winlink off-grid notifications
Baofeng UV-5R + AIOC cable
Ham licence req.
UV-5R ~$23 · AIOC cable ~$30 · total ~$53
Adds two entirely off-grid notification channels — APRS (status packet to aprs.fi visible globally) and Winlink email (reaches any Winlink address over VHF packet radio). No internet required for either. The AIOC is a USB sound card + PTT interface that plugs into the UV-5R's K1 headphone/mic jack and appears as a CM108 audio device to Dire Wolf. Original build by KM6LYW Radio; the concept was popularised by Hackaday.
Winlink rangeneeds RMS GW
MeshSat pathDire Wolf TNC + pat client run directly on the main MeshSat Pi. notify_aprs.py and notify_winlink.py call them after each satellite pass decode. No second device needed.
Standalone pathFor a separate portable hotspot (not integrated into MeshSat), flash a Pi Zero 2W with the DigiPi image. Add a small OLED display for status and a USB PD battery pack for field operation. Runs FT8, JS8Call, APRS, and Winlink from a browser UI at under $100 total.
Winlink noteRequires a Winlink RMS gateway within VHF range. Check coverage before buying: winlink.org/RMSChannels. The pat client on the Pi handles session and message formatting.
VARA FMVARA FM (faster Winlink modem) is Windows-only. On Pi, MeshSat uses 1200 baud AX.25 packet via Dire Wolf — reliable but slower. ARDOP is an alternative open-source modem.
Drone bonusMount the UV-5R on the drone for dramatically extended APRS and Winlink range at altitude. The elevated position turns a 15 mi ground range into 60+ mi line-of-sight coverage.
04 // meshtastic nodes — no licence required
Meshtastic uses the ISM radio band (915 MHz US · 868 MHz EU · 433 MHz elsewhere) — no ham licence required. LoRa is ~1–21 kbps by design; it carries short pass-result text messages, not imagery. The larger the mesh, the more range MeshSat notifications achieve. Check your local mesh at meshmap.net ↗ — based on the Cyberpony Express build list ↗.
MeshAdv-Pi v1.1 LoRa HAT
Pi ground node
~$40–60 · FrequencyLabs (Etsy)
The recommended ground station node — stacks on the Pi's 40-pin GPIO header and runs meshtasticd as a systemd service. 1 W SX1262 radio, SPI interface, built-in antenna port. Choose 915 MHz (US/Americas) or 868 MHz (EU). The Pi talks to meshtasticd via TCP port 4403 — no USB connection needed.
Why thisIntegrated — no extra USB device, meshtasticd starts on boot alongside MeshSat. notify_mesh.py connects locally and posts the satellite pass result to the mesh in under a second.
Heltec V3 — relay node / drone node
Best value
$17 with antenna · $23 with GPS · AliExpress
The cheapest capable Meshtastic node. ESP32-S3 + SX1262 on a single board, ships with antenna, runs Meshtastic firmware directly from flasher.meshtastic.org. No Pi required — just power and flash. Ideal for fixed relay points and the drone integration: at $17–23 it's cheap enough to risk on an airframe, and at altitude it extends mesh coverage to 60+ miles line-of-sight.
Drone nodeFlash as Router mode, velcro to the drone frame. The drone-mounted Heltec V3 joins the same mesh as the Pi's MeshAdv-Pi HAT and relays pass notifications to any Meshtastic user within its elevated range — no additional software needed.
Fixed relayPair with a small 18650 battery and a 6V/2W solar panel for a permanent outdoor relay node requiring zero maintenance. Router mode maximises relay efficiency and minimises power draw.
LilyGO T-Deck Plus
Handheld receiver
~$75–90 · lilygo.cc · Amazon
A standalone Meshtastic device with a built-in QWERTY keyboard, e-ink-style screen, GPS, and LoRa radio. Receives MeshSat satellite pass notifications without a phone — just power it on and it's in the mesh. The "Fancy UI" firmware gives a polished interface. Ideal for field use where you want pass alerts without carrying a phone or needing cell service.
T-Deck vs PlusT-Deck Plus includes GPS and a case — recommended for beginners. Standard T-Deck requires a separate GPS module (~$8) and has no case.
FirmwareFlash the experimental "Fancy UI" firmware from OM7TEK.com for a much improved interface. Flash via flasher.meshtastic.org in a Chromium browser while holding the trackball button.
SecurityThe T-Deck is fully standalone — no phone Bluetooth pairing needed. For sensitive operations, this removes a significant attack surface compared to a phone-connected node.
RAKwireless WisBlock Starter Kit
Budget node
~$38 · Amazon · store.rakwireless.com
Modular Meshtastic-ready node — nRF52840 + RAK4631 LoRa module on a WisBlock base. Officially supported by Meshtastic firmware. Under $38 on Amazon. The modular system makes it easy to add sensors: plug a BME280 weather sensor board straight onto the WisBlock base with no soldering.
BME280 add-onThe RAK1906 environment sensor (~$5) clips onto the WisBlock base and broadcasts temperature, humidity, and pressure as Meshtastic telemetry. Ground-truth weather data alongside MeshSat satellite imagery from the same timestamp.
05 // wi-fi halow — IP mesh MANET
Wi-Fi HaLow (802.11ah) operates in the sub-GHz band (~900 MHz in the US) — much longer range and lower power than standard Wi-Fi, with full IP networking. It's complementary to Meshtastic: LoRa handles long-range low-power text telemetry, HaLow handles medium-range high-bandwidth IP traffic. Together they cover the full communications stack. This is the networking layer that makes live drone video, IP-based MAVLink, and ATAK tactical operations possible at range. Build reference: Data Slayer on YouTube ↗
Wi-Fi HaLow MANET node
~$106 total build
Raspberry Pi 4 + HaLow chip + antennas + battery · ~$106.23
A mobile ad hoc network (MANET) built from a Raspberry Pi 4 running OpenWRT with a Wi-Fi HaLow 802.11ah radio. Delivers up to 15 Mbps at up to 2,000 feet, WPA3 encryption, full IP networking — replicating the core function of proprietary military mesh routers costing $20,000+. Every MeshSat notification channel that works over IP (TAK/CoT, MQTT, ntfy) works over the MANET automatically with no code changes.
vs LoRa/Meshtasticfull IP, video
Why HaLowStandard Wi-Fi doesn't reach far enough for field operations. LoRa reaches far but can't handle IP traffic or video. HaLow fills the gap: 2,000+ ft range at 15 Mbps with full TCP/IP, WPA3 security, and Starlink bridging support.
ATAK / TAKThe MANET is the preferred backbone for ATAK. MeshSat's existing TAK/CoT integration already sends satellite pass events as Cursor-on-Target packets — once the MANET is running, these reach all ATAK users on the network at full IP speed with no config change.
Drone IP linkReplace the 915 MHz SiK MAVLink radio on the drone with a HaLow node. The drone gets full IP networking at altitude — MAVLink over TCP, live camera stream, file transfer of decoded satellite imagery. The Pi dashboard connects to the drone as a normal LAN device.
Starlink bridgeOne MANET node with a Starlink terminal acts as an internet uplink for the entire mesh. Field nodes reach the internet through the mesh without direct satellite hardware.
No licenceHaLow operates in unlicensed ISM bands. WPA3 handles security. No ham licence required — different from the UV-5R/APRS section.
OpenWRTOpenWRT runs on the Pi, providing enterprise-grade routing, VLAN support, firewall, and QoS. The same image used in commercial deployment-grade mesh routers.
06 // tier 3 — future targets these upgrades unlock
MetOp AHRPT — 1.7 GHz
New satellite
1.7 GHz patch antenna ~$30 · existing Airspy Mini covers this band
MetOp-B and MetOp-C transmit AHRPT high-resolution imagery at 1.7 GHz. The Airspy Mini already covers this frequency. Add a 1.7 GHz RHCP patch antenna and the Nooelec SAWbird+ GOES as LNA/filter — SatDump already supports the pipeline.
What you getMuch higher resolution than METEOR-M2. MetOp carries AVHRR — the sensor used in professional meteorology. Visible, IR, and water vapour channels.
LNA neededNooelec SAWbird+ GOES (1688 MHz version, ~$35). Keep the 137 MHz chain for METEOR, add a second input for 1.7 GHz.
Second RTL-SDR — dual-satellite receive
Dual receive
~$30 · another RTL-SDR V3
METEOR-M2 3 and M2-4 occasionally have overlapping pass windows. A second RTL-SDR on a second antenna lets MeshSat receive both simultaneously. More useful: dedicate one SDR to 137 MHz METEOR on the Airspy Mini, and use the RTL-SDR for 1.7 GHz MetOp or ADS-B as a bonus feed.
ConfigEach satellite in config.ini can specify a different source_id. satpi schedules independent systemd services per satellite — they run in parallel with no code changes.
// budget summary
⚠ SSD prices are highly volatile in 2026. NAND spot prices have more than doubled since mid-2025 due to AI datacenter demand absorbing all production capacity. Budget for the higher end of the SSD range and check current prices before buying.
M.2 HAT+ (Official Pi or Pimoroni)
$12–15
256 GB NVMe SSD 2230/2242 — budget brand
~$35–55
256 GB NVMe SSD 2230/2242 — name brand (WD, Samsung)
~$65–95 ⚠ volatile
Airspy Mini SDR
$99
Uputronics 137.5 MHz LNA
$80
UPS HAT
~$25–45
LMR-400 coax (10 m) + connectors
~$25–35
Weatherproof LNA enclosure
~$15–25
PoE HAT
~$20
Baofeng UV-5R + AIOC cable (APRS + Winlink)
~$53
Tier 1 — budget SSD (HAT + no-name SSD + Airspy + Uputronics)
~$225–250
Tier 1 — name-brand SSD
~$255–290
Full Tier 1 + Tier 2 (budget SSD)
~$315–385