WXCAN
Canadian Weather Bot for Amateur Radio
APRS-IS // 144.390 MHz

Quick Start

Send an APRS message to WXCAN with a location. That is all you need.

# Send a city name
montreal
Montreal: Cond: Cloudy, Temp: 2C, Wind: 15 km/h NW

# No location? The bot looks up your APRS position
(just send an empty message or hit send)
Trois-Rivieres: Cond: Clear, Temp: -5C, Wind: 8 km/h N

Want more detail? Add full or extra. Want tomorrow? Add tm. Everything combines freely: ottawa tm full gives a detailed forecast for tomorrow in Ottawa.

Weather Requests

The general format is:

<location> [time] [detail]

All three parts are optional and can appear in any order. If you omit everything, you get current brief weather at your APRS position.

Example messageResult
quebecCurrent brief weather for Quebec City
ottawa fullCurrent full weather for Ottawa
montreal tm extraTomorrow extra weather for Montreal
fullCurrent full weather at your APRS position
7d calgary7-day compressed forecast for Calgary
G1K2T8Current weather near that postal code
FN35mrCurrent weather at Maidenhead grid FN35mr
45.5,-73.6Current weather at those coordinates
extra tmTomorrow extra at your APRS position

Location Formats

WXCAN understands many location types:

FormatExampleNotes
City nameottawaMatched against the Environment Canada site list (about 700 cities)
Postal codeG1K2T8 or G1K 2T8Canadian format, space optional
Maidenhead gridFN35 or FN35mr4-character (coarse, about 100 km) or 6-character (precise, about 5 km)
Lat/lon45.5,-73.6Decimal degrees, comma or space separated
ICAO codeCYUL4-letter airport code, resolves to nearest EC weather station
No locationfull or tmLooks up your last known position on aprs.fi
Tip: If you beacon your position regularly, you never need to type a location. Just send full, tm, extra, or nothing at all.

Time Periods and Shortcuts

Add a time keyword to get a forecast instead of current conditions. Shortcuts save keystrokes on APRS.

KeywordShortcutWhat it fetches
now(default)Current observed conditions
tonighttnTonight forecast
tomorrowtmTomorrow daytime forecast
afternoonThis afternoon
monday through sundayForecast for that weekday (prefers daytime period)
7dCompressed 7-day outlook (see below)
quebec tn
Thursday night: Partly cloudy, Low: -8C, Wind: 10 km/h W

ottawa friday full
Friday: Chance of flurries, POP: 30%, High: -4C, ...

Detail Levels

Three tiers. Each builds on the previous one. More detail means more APRS messages (responses are split to fit the 68-character limit).

The tiers are incremental: full contains everything in brief, and extra contains everything in full.

brief What brief Returns

FieldExample
ConditionCond: Cloudy
TemperatureTemp: -5C
Wind speed and directionWind: 20 km/h NW
POP (if any)POP: 30%
montreal
Montreal: Cond: Cloudy, Temp: 2C, Wind: 15 km/h NW

full What full Adds

Everything in brief, plus:

FieldExample
Feels like (wind chill or humidex)FeelsLike: -12C
Feels like forecast (am/pm)FeelsLike FC: am:-15C pm:-8C
VisibilityVis: 24 km
PressurePress: 101.2 kPa
HumidityHum: 65%
GustGust: 35 km/h
Regional normalsNormals: Low -6C. High 4C
PrecipitationPrecip: 30 percent chance of flurries
montreal full
Montreal: Cond: Cloudy, Temp: 2C, Wind: 15 km/h NW |
FeelsLike: -4C, Vis: 24 km, Press: 101.2 kPa, Hum: 65% |
Normals: Low -6C. High 4C

extra What extra Adds

Everything in full, plus non-weather environmental and planning data:

FieldExampleSource
UV indexUV: moderate(4)Environment Canada
Dew pointDewPt: -3CEnvironment Canada
Frostbite warningRisk of frostbiteEnvironment Canada
Kp geomagnetic indexKp:3 0-3h:2 3-6h:5NOAA SWPC
Air quality (AQHI)AQHI:4(Mod)Environment Canada
Sunrise / sunsetRise:6:42 Set:19:12Environment Canada
Wind forecast textWindFC: Wind becoming N 20 this afternoonEnvironment Canada
Kp index: Measures geomagnetic activity (0 to 9). Under 2 is quiet, 2 to 3 unsettled, 4+ active/storm. High Kp can degrade GPS accuracy and affects HF propagation. The three values are: current reading, 0 to 3 hour forecast, and 3 to 6 hour forecast.
AQHI: Air Quality Health Index (1 to 10+). 1 to 3 = Low, 4 to 6 = Moderate, 7 to 10 = High, 10+ = Very High. Quebec has forecast AQHI from 3 stations (Gatineau, Montreal, Quebec City). Not all regions publish AQHI data.

Kp, AQHI, and sunrise/sunset only appear for current conditions requests, not for forecasts of future days.

Forecast Responses

When you request a forecast (tomorrow, tonight, a weekday), the same detail tiers apply. The data comes from the forecast period instead of current observations.

quebec tm full
Friday: Chance of flurries, POP: 30%, High: -16C, Wind: 10 km/h SW,
FeelsLike: am:-36C pm:-24C, Hum: 60%, Normals: Low -15C. High -2C

quebec tm extra
...UV: low(2), Risk of frostbite, WindFC: Wind up to 15 km/h.

Forecast extra adds UV, frostbite warning, and wind forecast text for that period. Kp, AQHI, and sunrise/sunset are not included in forecasts since they are current-moment data.

7-Day Compressed View

The 7d command gives up to 7 daytime forecast periods compressed into one APRS-friendly line. Night periods are excluded.

ottawa 7d
Ottawa: Tod+4:PCld Fri-2:Snow Sat+1:Rain Sun+5:Sun Mon+3:MCld Tue+6:PCld Wed+2:Flur

Each entry reads as: Day+/-Temp:Condition

Day Abbreviations

CodeMeaning
TodToday
TomTomorrow
TntTonight
AftThis afternoon
MonMonday
TueTuesday
WedWednesday
ThuThursday
FriFriday
SatSaturday
SunSunday

7-Day Condition Codes

These short codes represent the forecasted weather condition for each day in the 7-day view:

CodeCondition
SunClear or Sunny
MSunMainly sunny or Mainly clear
PCldPartly cloudy or Mix of sun and cloud
MCldMostly cloudy or Mainly cloudy
CldCloudy
RainRain
DrzlDrizzle
SnowSnow
FlurFlurries
HvySnHeavy snow or Snow squall
BlwSnBlowing snow
FrzRnFreezing rain
IcePlIce pellets
FogFog
WndyWindy (no cloud mention)
TstmThunderstorm
TornTornado
BlizBlizzard

METAR (Aviation Weather)

Get raw METAR observation data for any ICAO airport worldwide.

metar CYUL
2026/03/27 12:00 METAR CYUL 271200Z 32010KT 15SM FEW040 BKN240 M02/M09 A3012

Use any valid 4-letter ICAO code. Works for international airports too (metar KJFK). Data comes from NOAA/NWS.

Drone / UAV Forecast

Purpose-built weather report for drone and UAV operators.

drone trois-rivieres
DRONE Trois-Rivieres: T:-2C Wnd:10km/h NE Vis:24km Dp:-8C
POP:30% Zone:OTT Kp:3 0-3h:2 3-6h:4 CYRQ(5km)! Cond:Cloudy

uav FN35
(same format, using grid square)

drone
(uses your APRS position)

drone and uav are interchangeable. The report includes:

Airport proximity: A ! after the distance means the airport is within 5.6 km (3 nautical miles). You are likely inside controlled or restricted airspace. Always verify with Nav Canada CFS and current NOTAMs before flying.

Airport Info

Look up GPS coordinates, Maidenhead grid square, and tower radio frequency for any Canadian CY/CZ airport.

cyrq info
CYRQ:Trois-Rivieres 46.3531N 72.6794W Grid:FN36ri 122.350

cyul info
CYUL:Montreal / Pierre 45.4706N 73.7408W Grid:FN35fl 118.700/119.550

Frequencies come from OurAirports with corrections from the Nav Canada Canada Flight Supplement (CFS). Multiple tower frequencies are separated by a slash.

Weather Alert Subscription

Subscribe to receive automatic push notifications when Environment Canada issues weather alerts near your location. The location you provide when subscribing determines which EC alert region you are matched to. You will only receive alerts relevant to that area, not the entire province.

WXCAN pushes yellow, orange, and red level alerts only:

Special weather statements (grey level) are not pushed.

CommandWhat it does
wxsub montrealSubscribe for alerts near Montreal
wxsubSubscribe using your APRS position
wxsub K1A0B1Subscribe using a postal code
wxsub FN35Subscribe using a grid square
mysub or subinfo or substatCheck your subscription status
unsubCancel your subscription
wxsub trois-rivieres
Subscribed WX alerts QC. unsub to cancel.

mysub
Subscribed: QC since 2026-03-15. Send unsub to cancel.

unsub
Unsubscribed from WX alerts.
Location matters: If you subscribe with wxsub trois-rivieres, you will only receive alerts for the Trois-Rivieres area, not for Montreal or Blanc-Sablon. To change your alert location, unsubscribe and resubscribe with a different location.

How Alert Push Works

WXCAN checks all Environment Canada regional alert feeds for your province every 30 minutes. When a new alert is found near your subscribed location, you receive a compressed message:

WX!QC:YELLOW WARN - Snow, Blanc-Sablon
WX!ON:ORANGE WARN - Frz Rain, Ottawa area
WX!BC:FRZ RAIN WTCH, Fraser Valley area

What gets pushed and what does not:

Alert typePushed?
Yellow/Orange/Red WarningYes
WatchYes (yellow level)
AdvisoryYes (yellow level)
Special weather statementNo (grey level, skipped)
Ended alertsNo

Important details:

60-Day Inactivity Expiry

Subscriptions automatically expire after 60 days of inactivity. Any message you send to WXCAN resets the 60-day clock. It does not have to be a subscription command. A weather request, a help request, a METAR query, anything counts as activity.

If your subscription expires:

Keep your subscription alive: Send any message to WXCAN at least once every 60 days. Even a single weather request like montreal is enough.

On-Demand Alert Check

Check for active weather alerts near any location without subscribing. Only yellow, orange, and red level alerts are returned. Special weather statements are excluded.

alert blanc-sablon
WX!QC:YELLOW WARN - Snow, Blanc-Sablon

alert ottawa
No active alerts near Ottawa.

alert FN25
(checks near the grid square)

alert
(checks near your APRS position)

Accepts city name, grid square, or no location (uses your APRS position). The bot resolves your location to the nearest EC city and shows only alerts whose region matches that city.

Tip: Use alert to do a quick check before heading out. No subscription needed.

Inline Warnings

When you request weather for a location that has an active yellow, orange, or red alert in the EC city XML data, it is automatically prepended to the response. You do not need to request it separately.

blanc-sablon
WX!YLW:Snow | Blanc-Sablon: Cond: Snow, Temp: -8C, Wind: 35 km/h NE

The prefix indicates severity: WX!YLW: (yellow), WX!ORG: (orange), or WX!RED: (red). This is separate from the subscription push system and appears regardless of whether you are subscribed.

Message Splitting

APRS messages are limited to 68 characters. When a response exceeds this, WXCAN splits it into numbered parts:

1/3 Montreal: Cond: Cloudy, Temp: 2C, Wind: 15 km/h NW
2/3 FeelsLike: -4C, Vis: 24 km, Press: 101.2 kPa, Hum: 65%
3/3 Normals: Low -6C. High 4C

Each part is sent with a message ID requesting an ACK. The bot waits up to 5 seconds for your acknowledgment before sending the next part. There is a 2-second pause between parts. If no ACK is received after 2 attempts, the bot moves on. You may still receive the message even without ACK.

No Location? No Problem

If you omit a location, WXCAN looks up your last known position on aprs.fi. This works if you have transmitted a position beacon recently.

full current full weather at your position
tm tomorrow brief at your position
7d 7-day at your position
drone UAV report at your position
extra current extra at your position
tn full tonight full at your position

If no position is found on aprs.fi, you will receive: No location provided & no APRS position found.

Why "Cond: Unknown"?

Some smaller Environment Canada stations do not report a text condition (Cloudy, Clear, Sunny, etc.) in their current observations. All numeric data (temperature, wind, pressure, humidity) is still available and accurate. This is an EC data gap at certain stations, not a bot error.

Data Sources

DataSource
Weather and forecastsEnvironment Canada Citypage XML (dd.weather.gc.ca)
METARNOAA National Weather Service (tgftp.nws.noaa.gov)
Weather alerts (push)EC Battleboard Atom feeds (weather.gc.ca)
Inline warningsEC city XML warnings section
Kp geomagnetic indexNOAA Space Weather Prediction Center
Air quality (AQHI)EC AQHI forecast XML (dd.weather.gc.ca)
Airport databaseOurAirports open data + Nav Canada CFS corrections
Airport frequenciesOurAirports + manual CFS overrides
GeocodingOpenStreetMap Nominatim + geocoder.ca
APRS positionaprs.fi API
Sunrise / sunsetEC city XML riseSet section

Help Command

Send help or ? to WXCAN to receive a compressed command reference via APRS. The help text is split across multiple messages.

?
1/7 Wx: city/postal/latlon/grid/ICAO [tn|tm|7d] [full|extra]
2/7 metar ICAO: aviation wx. No loc=uses your APRS pos.
3/7 drone/uav [city|grid]: UAV wx+Kp. No loc=APRSpos.
4/7 uav srch <km> [city|grid]: ICAO airports in radius.
5/7 <ICAO> info (eg cyrq info): airport GPS+grid+freq.
6/7 wxsub [city]: WX alerts. unsub/mysub: cancel/info.
7/7 alert [city]: check active warnings near location.