# On the air with RF APRS

> For licensed hams, covering how to beacon weather on 144.390 MHz with Direwolf or a hardware TNC, plus antennas, grounding, duty cycle and a solar power budget.

Weather stations · How-to guide · https://wxalerts.org/docs/weather-stations/on-the-air/

This page is for licensed amateur radio operators only. If you do not hold a
  license, you cannot transmit on these frequencies, but you lose nothing:
  the internet-only CWOP path described in
  [Getting an ID](/docs/weather-stations/registration/) puts identical data in
  front of the same forecasters.

Putting a station on **144.390 MHz**, the 2 m APRS channel in the US, makes
it visible to local hams and to any igate in range even when your internet is
down. For a station whose whole purpose is reporting severe weather, that
independence is the point.

## The hardware paths

**A hardware TNC and a radio.** The Kantronics **KPC-3+** is bulletproof and
has a dedicated weather and telemetry mode. Byonics **TinyTrak** and
**MicroTrak** are cheaper. **Mobilinkd** TNC3 and TNC4 speak Bluetooth KISS.

**A software TNC.** **Direwolf** on a Pi with a cheap USB sound card and any
2 m radio. The most flexible and by far the best documented.

**The classic WXNOW.TXT path.** Peet Bros Ultimeter and Davis hardware produce
a standardized `wxnow.txt` file that a TNC or Direwolf reads and beacons
directly.

**All-in-one trackers** that accept a Davis or Peet feed without a computer in
between.

## Direwolf as a weather beacon

```bash
sudo apt install direwolf
```

A minimal `direwolf.conf` fed from a file:

```
ADEVICE  plughw:1,0          # your USB sound card; find it with: aplay -l
ACHANNELS 1
CHANNEL  0
MYCALL   N0CALL-13           # -13 is the weather station SSID
MODEM    1200                # AFSK 1200 baud

PTT      GPIO 23             # or: PTT /dev/ttyUSB0 RTS   or   VOX

# Weather beacon every 10 minutes, one wide hop, WX symbol, data from a file:
PBEACON delay=1 every=10 symbol="weather station" \
        lat=33^16.04N long=096^31.96W \
        commentcmd="tail -1 /home/pi/wxnow.txt" via=WIDE2-1
```

Direwolf formats that trailing `wxnow.txt` line into a valid APRS weather
report for you.

**Test with no transmitter connected first.** Then decode your own output to
confirm it is well formed:

```bash
echo 'N0CALL-13>APDW17:!3316.04N/09631.96W_120/005g010t021...' | decode_aprs
```

For keying the radio you have three options. **GPIO** is cleanest: a
transistor keys the radio's PTT line. **CM108** works with many cheap USB sound
fobs, and with DigiRig, AIOC and DRA boards that expose a GPIO for the purpose.
**VOX** is a last resort.

## Should it also be an igate?

Often, yes. A **receive-only** igate is cheap insurance that local RF traffic
reaches APRS-IS at all.

```
IGSERVER noam.aprs2.net
IGLOGIN  N0CALL 12345        # ham callsign and REAL passcode
# no IGTXVIA line = receive-only, which is the safe default
```

A **transmit** igate (`IGTXVIA 0 WIDE1-1` plus a filter) gates internet traffic
back onto RF and carries real responsibility: channel congestion, and relaying
traffic that should not have been relayed. Run one deliberately, with a tight
filter, or not at all. A weather beacon does not need to be one.

## Radios and duty cycle

A station beaconing every 5 to 10 minutes keys the transmitter for about a
second at a time. Thermally that is nothing, so even a cheap radio survives it.

The problem with Baofeng-class handhelds is not heat but spectral purity and
frequency stability: they are dirty transmitters. Acceptable for occasional
beaconing, poor as a 24/7 igate transmitter. A purpose-built data radio, or a
used commercial LMR mobile from Motorola or Kenwood on 144.390, is a much
better long-term answer.

The power arithmetic is worth internalising: at 5 W transmit, one second in
every 300 is about **0.017 W** of average transmit contribution. Receive and
idle current, at 50 to 200 mA, dominates your power budget entirely. Do not
size a battery around transmit power.

## Antenna, feedline and grounding

A simple quarter-wave ground plane or a commercial 2 m vertical at modest
height is all this needs. Feedline loss matters more than people expect: at
146 MHz, LMR-400 runs about 1.5 dB per 100 ft against roughly 4.5 dB for RG-58.
Use LMR-400 on any long run.

  Grounding and surge protection are not optional on a station whose job is to
  report lightning. Bond the mast to a ground rod per **NEC Article 810**,
  fit an in-line coax gas-discharge arrestor at the entry point bonded to the
  same ground, and put grounding blocks on data and power lines. A station that
  reports thunderstorms is by definition installed where lightning happens.

## A solar and battery budget

Worked through for a remote site, so you can substitute your own numbers:

| | |
| --- | --- |
| **Load** | Pi Zero 2 W plus SDR/TNC plus radio idle ≈ 4 W continuous → **96 Wh/day** |
| **Battery**, 3-day autonomy at 50% depth of discharge | 96 × 3 / 0.5 ≈ 576 Wh → a 12 V 50 Ah LiFePO4 (~640 Wh) fits |
| **Panel**, at 4 winter peak-sun-hours | 96 / 4 / 0.7 ≈ 34 W → round up to 50–100 W for margin |
| **Controller** | MPPT with the correct LiFePO4 profile |

On chemistry: **LiFePO4** is light, cycles deeply and lasts, but **must not be
charged below 0 °C**, so use a BMS with a low-temperature cutoff, or a
self-heating battery, in a cold climate. **AGM** tolerates cold charging but is
heavier and shorter-lived.

If the budget is tight, cut duty cycle rather than capacity: deep-sleep the
microcontroller between beacons on an ESP32 build, or power the radio only when
it is time to transmit.

## Frequencies outside the US

| Region | Frequency |
| --- | --- |
| US and Canada (ITU Region 2) | 144.390 MHz |
| Most of Europe (Region 1) | 144.800 MHz |
| Australia | 145.175 MHz |
| Japan and parts of Asia | 144.640 / 144.660 MHz |

Check your national bandplan and licensing before transmitting anywhere. Note
that the internet-only path is identical everywhere: non-hams in every country
use APRS-IS and never touch RF.

## Next

[Install, commission and maintain](/docs/weather-stations/commissioning/)
covers mounting, grounding and verification. The
[APRS weather packet](/docs/weather-stations/packet-format/) describes the
paths and formats this page assumes.
