A station that transmits is not the same as a station that is believed. This page covers the gap: getting it physically right, proving the data, reading the quality control that comes back, and catching the slow failures that make a station worse without ever making it stop.
Physical installation
Mounting. A non-penetrating ballast mount, a tripod, or a mast or short tower. Guy anything over about 3 m. Check local permits, because many jurisdictions require one above roughly 3 m.
Grounding. Bond the mast and coax to a ground rod per NEC Article 810, surge-suppress the data and power lines, and fit a coax gas-discharge arrestor where the cable enters the building. This is essential rather than optional on a site whose purpose is reporting thunderstorms.
Cable routing. Drip loops, UV-rated cable, and strain relief at every gland.
Orientation and calibration
Three things, all of which are permanent sources of error if you get them wrong and invisible afterwards:
- Level the rain gauge with a bubble level.
- Orient the vane to true north, applying magnetic declination from NOAA NCEI’s calculator. Declination drifts over years, so note the date you set it.
- Set the elevation exactly. A wrong elevation is the classic CWOP pressure-offset flag; see pressure reduction.
Commissioning checklist
- Sanity-check every sensor against a known reference: a handheld thermometer, a second barometer, a measured pour into the rain gauge.
- Compare temperature, dewpoint, pressure and wind against the nearest ASOS or mesonet station over a calm period, when they genuinely should agree.
- Confirm the packet is well formed, locally, with
decode_aprs. - Confirm arrival at
findu.com/cgi-bin/wx.cgi?call=YOURIDwithin 5 to 15 minutes. - Let it run a week, then read your quality control report properly.
Validation tools
| Tool | What it tells you |
|---|---|
| aprs.fi | Map and weather graphs. The quick “alive and plausible” check |
| findU | wx.cgi raw data, WxGraph, and the packet-checking pages at wxqa.com/search.htm: packets on APRS-IS, duplicates, byte counts |
| CWOP/MADIS QC | The CWOP Analysis pages at wxqa.com/aprswxnetqc.html |
| Weather Quality Reporter | weather.gladstonefamily.net, which emails you when your data goes bad, with per-variable bias plots |
| MesoWest | Your station as actually ingested from MADIS |
| MADIS Meso Map | Confirms registration and the metadata used in QC |
Read these looking for bias, not noise. A persistent +2 °F offset is radiation or siting. A pressure offset is elevation. A 180° wind error is vane alignment. Dewpoint above temperature is an internal consistency failure and means a sensor has died.
The MADIS QC flags
Every observation carries a data descriptor. Learn these: they are how you find out whether anyone is actually using your data.
| Flag | Meaning |
|---|---|
| Z | Preliminary, no QC applied |
| C | Coarse: passed level 1 validity |
| S | Screened: passed levels 1 and 2 (internal, temporal, statistical-spatial consistency) |
| V | Verified: passed levels 1 through 3, including spatial consistency |
| Q | Questioned: passed level 1, failed 2 or 3 |
| X | Rejected: failed level 1 |
To be useful to forecasters your observations need to reach S or V. Level 2 includes the internal consistency check that fails you when dewpoint exceeds temperature, plus a statistical-spatial check that flags stations failing most of the time over the preceding week.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| No data on findU | Wrong server or port, bad login, or not actually registered | Check the user … pass -1 … line; confirm the ID you were emailed; send at least one packet |
TCPXX in your packet |
Server rejected the login, usually a bad passcode | CWOP uses -1; hams need their real computed passcode |
| Plotted in the wrong hemisphere | Longitude sign, or E sent instead of W |
Use W and a negative longitude |
| Data arrives but is flagged Q or X | Failed a validity or consistency check | Read the QC page and fix the offending variable |
| Pressure offset | Wrong elevation, or sending station pressure as MSLP | Set elevation exactly; reduce to MSLP in the b field |
| Wind 180° out | Vane reference reversed | Re-index the vane to true north |
| Rain resets or spikes | Counter reset at midnight, or reed bounce | Debounce; use r and p correctly |
| Flagged for duplicates | Reporting faster than every 5 minutes | Slow down to the 5-minute interval |
Maintenance
Monthly. Glance at the QC pages or aprs.fi for drift and flatlines. Clear obvious debris.
Quarterly. Clean the rain funnel and screen. Check the tipping bucket swings freely. Clean the radiation shield, because a dirty shield reads warm. Clean the solar panel. Check battery voltage under load. Look for spider webs and wasp nests.
Annually. Inspect anemometer bearings. Recalibrate or replace the temperature and humidity sensor if it has drifted: SHT-class parts every one to two years, DHT-class sooner. Replace desiccant. Re-verify the pressure offset. Update firmware and software. Re-torque hardware. Check coax, connectors and grounding.
After every storm. Verify all sensors still report, check for physical damage, and confirm the beacon resumed.
The failures that creep
Slow degradation is harder to catch than outright failure, because nothing ever alarms:
- Anemometer bearing wear shows up as a months-long decline in your wind relative to neighbouring stations. Trend it against a nearby station rather than looking at it in isolation.
- A dirty shield produces a creeping warm bias, visible in the MADIS QC plots long before you would notice it any other way.
- An ageing battery shows as falling float voltage and shorter no-sun autonomy.
Detecting failure
Build in four things:
- A heartbeat or telemetry channel carrying uptime, battery, signal strength and last-sensor-change timestamps.
- A hardware watchdog to reboot on a hang.
- Flatline detection: alert when any variable has not changed for longer than is plausible.
- An offline alert if no packet reaches APRS-IS for more than 15 to 30 minutes, from a cron job polling findU or aprs.fi.
Data continuity
Log locally, to SQLite, CSV or WeeWX’s own database, so an internet outage does not lose the record. WeeWX and CumulusMX both buffer and can backfill their own databases.
Where to go next
- Your station on WxAlerts: how we weight, check and display what you send.
- Getting an ID: metadata changes go through cwop-support@noaa.gov.
- AS3935 lightning detection: if you added one, its grounding needs are the strictest on the mast.
