twnoaa

気象衛星(NOAA/METEOR)およびSSTVの自動軌道計算・SDR自動受信・DSP復調・AI気象解析を行うデスクトップアプリケーション。TWSNMPシリーズプロジェクト。

View on GitHub

twnoaa 📡🛰️

twnoaa is an all-in-one desktop application for automated weather satellite pass tracking, RTL-SDR radio reception, real-time DSP demodulation, multi-format satellite image decoding, and multimodal AI-powered meteorological analysis. Built with Wails, Svelte 5, and Go. Part of the TWSNMP project family.

🇯🇵 日本語版 README はこちら


🗺️ System Workflow & Architecture

twnoaa System Workflow & Architecture

twnoaa integrates the full satellite reception pipeline: from SGP4 Orbit Tracking to RTL-SDR signal capture, real-time DSP (FFT Spectrum & Waterfall), multi-format image decoding, and automated multimodal AI meteorological analysis.


✨ Key Features


🛠️ Hardware Requirements

To receive signals from orbiting weather satellites and decode high-definition imagery, the following hardware setup is recommended:

1. SDR Receiver (Software Defined Radio)

RTL-SDR Receiver

2. Receiving Antenna

V-Dipole Antenna Balcony Installation Example

Example of a 120° V-dipole antenna mounted on a balcony railing using a clamp fixture

3. LNA (Low Noise Amplifier) & Bandpass Filter

Nooelec SAWbird+ NOAA LNA Module

Nooelec SAWbird+ NOAA LNA module (inline SMA coaxial cabling, powered via Bias-Tee)

4. Coaxial Cable & Connectors


📡 Antenna Installation & LNA Connection Guide

Because satellite RF signals are very faint, proper antenna placement and LNA cabling order are critical for clear, snow-free imagery.

Antenna Placement

  1. Clear Line of Sight:
    • Install the antenna in an open location with an unobstructed view of the sky (e.g., roof, balcony railing, or garden mast).
    • Nearby buildings, dense trees, metal fences, and power lines attenuate VHF signals and introduce sync dropouts.
  2. V-Dipole Orientation:
    • Keep the V-shaped element plane horizontal (parallel to the ground), and orient the opening of the V pointing True North and True South (since weather satellites travel in near-polar North-South orbits).

LNA Connection Sequence

[!IMPORTANT] Always connect the LNA directly at the antenna feedpoint (before long cable runs)!

[Antenna] ──(Short jumper cable)──> [LNA Input] ──> [LNA Output] ──(Long Coax Cable)──> [RTL-SDR Dongle] ──> [Host PC]

🖥️ User Interface & Operation Guide

twnoaa features a streamlined tabbed layout for tracking, receiving, and analyzing satellite imagery.

1. Pass Tracker (Live Satellite Sky Watch)

Pass Tracker

2. 3D Globe View (Orbit)

Globe View

3. SDR Reception Test & Spectrum (Receiver)

Receiver

4. APRS Packet Monitor (APRS)

APRS Monitor

Image Gallery

6. AI Meteorological Analysis (AI Analysis)

AI Analysis

7. Settings

Settings


🔍 Supported Satellites & Transmissions

Target Frequency Mode / Modulation Resolution / Details
NOAA 15 137.620 MHz APT (FM / AM 2.4 kHz Subcarrier) 4 km/px, 2-channel (Visible & Thermal IR)
NOAA 18 137.9125 MHz APT (FM / AM 2.4 kHz Subcarrier) 4 km/px, 2-channel (Visible & Thermal IR)
NOAA 19 137.100 MHz APT (FM / AM 2.4 kHz Subcarrier) 4 km/px, 2-channel (Visible & Thermal IR)
METEOR-M2-3/4 137.100 / 137.900 MHz LRPT (72k/80k QPSK) 1 km/px, Digital high-resolution multispectral
ISS (SSTV VHF) 145.800 MHz SSTV (FM / Various SSTV modes) Space events & school contact picture transmissions
ISS (SSTV UHF) 437.550 MHz SSTV (FM / Various SSTV modes) Recent UHF experimental SSTV transmissions
ISS (FM Voice) 437.800 MHz FM Voice (Cross-band Repeater Downlink) Worldwide amateur contacts & astronaut downlink (145.990 MHz Up)
ISS (APRS UHF / VHF) 437.825 / 145.825 MHz AFSK 1200 / AX.25 Packets Worldwide position beacons & short messages via ARISS

🤖 AI Meteorological Analysis

When a satellite pass is completed and the image is decoded, the metadata (Satellite, Frequency, Timestamp, Maximum Elevation, Coordinates) is packaged with the image and submitted to the configured multimodal LLM:

Supported AI Providers


🛠️ Tech Stack

Component Technology
Desktop Framework Wails v2
Backend Go 1.27 + CGO (librtlsdr)
Frontend Svelte 5 (Runes) + TypeScript + Tailwind CSS
Database bbolt (Embedded Key-Value Store)
SDR / DSP github.com/jpoirier/gortlsdr, Pure-Go DSP (WFM, QPSK, FFT, Envelope Extraction)
Orbit Engine Pure-Go SGP4 propagation model + CelesTrak TLE client
AI Integration langchaingo + Multimodal LLM providers
Packaging macOS PKG (Apple Notarization), Windows ZIP, Linux tar.gz

🚀 Installation & Releases

Download Prebuilt Packages

Visit the Releases page to get binaries for your operating system:


💻 Development Setup

Prerequisites

Setup Dependencies

# Install Go and Node via mise
mise install

# Install frontend dependencies
cd frontend
npm install
cd ..

Live Development Mode

mise run dev
# or
wails dev

Production Build

# Local build
mise run build

# macOS signed and notarized installer package (.pkg)
mise run release-mac

🗄️ Data Directories

Configuration, pass logs, decoded images, and the bbolt database are stored locally in the following OS directories:

Platform Default Path
macOS ~/Library/Application Support/twnoaa/
Windows %APPDATA%\twnoaa\
Linux ~/.config/twnoaa/

📄 License

Apache License 2.0