APRSWXNET

This page describes random bits of information about how I hooked my weather station up to APRSWXNET. I am CW0003 -- you can find my data at findu.com.

The basic idea is that you send a single record at regular intervals (I currently do this every 10 minutes). However, do not send on 5 minute boundaries, or else send at an odd interval (e.g. 9 minutes 30 seconds). There are significant problems with large numbers of sites all hitting the servers at the same time. This record contains your identity (CW number), location and the various readings. I believe in 'document by example', so here goes:

CW0003>APRS,TCPIP*:/241505z4220.45N/07128.59W_032/005g008t054r001p078P048h50b10245e1w
Field Meaning
CW0003 Your CW number
>APRS,TCPIP*: Boilerplate
/241505z The ddhhmm in UTC of the time that you generate the report. However, the timestamp is pretty much ignored by everybody as it is assumed that your clock is not set correctly! If you want to omit this field, then just send an exclamation mark '!' instead.
4220.45N/07128.59W Your location. This is ddmm.hh -- i.e. degrees, minutes and hundreths of minutes. The Longitude has three digits of degrees and leading zero digits cannot be omitted.
_032 The direction of the wind from true north (in degrees).
/005 The average windspeed in mph
g008 The maximum gust windspeed in mph (over the last five minutes)
t054 The temperature in degrees Farenheit -- if not available, then use '...' Temperatures below zero are expressed as -01 to -99.
r001 The rain in the last 1 hour (in hundreths of an inch) -- this can be omitted
p078 Rain in the last 24 hours (in hundreths of an inch) -- this can be omitted
P044 The rain since the local midnight (in hundreths of an inch) -- this can be omitted
h50 The humidity in percent. '00' => 100%. -- this can be omitted.
b10245 The barometric pressure in tenths of millbars -- this can be omitted. This is a corrected pressure and not the actual (station) pressure as measured at your weatherstation. The pressure is adjusted according to altimeter rules -- i.e. the adjustment is purely based on station elevation and does not include temperature compensation.
e1w The equipment you are using. This is the string that I use to identify my software. Please use something different. In particular, please include the version number of your software and the type of hardware sensors attached. For example: eMyWx123DVP -- MyWx version 1.2.3 with Davis Vantage Pro hardware. Being explicit here allows other software to automatically determine the type of station software in use. It can also be used to encourage people to upgrade to the current version! Weather Display has a table of codes that cover most weather station types and it would be helpful to use the same codes.

Note that most fields are fixed width. This constraint means that use of C-like formatting strings such as 'h%02d' is not really appropriate as they do not deal with out of range values. In this particular case, it does not deal with the special case of 100% humidity either!

The letters are all case sensitive. The fields should be sent in the order that they appear in the table above.

Once you have formed this record, open a connection to port 14580 on 'cwop.aprs.net' and then send the following:

user CW0003 pass -1 vers linux-1wire 1.00
(substitute your CW number), followed by CR,LF (i.e. two characters), followed by your data record. Then disconnect. Also, it works best with a three second delay between the USER command and the data packet. Also wait three seconds after sending the data to close the connection.

'cwop.aprs.net' is a DNS entry that rotates between the various CWOP servers. Do not hardcode any of the IP addresses!

Information on this system can be found at Servers to use.

Important Notes

If you do not have a particular sensor, then do not send default values in that field. If the field can be omitted (as shown in the table above), then please omit the field. If the field cannot be omitted, then send '...' as the field value.

Use of default values turns out to be a significant issue with rainfall numbers. Most of the time, the value 'r000' is valid (and likely). But once it starts to rain, the value is dangerously wrong, and could prevent flood warnings from being issued.

Do not use this document as a guide to write a parser. This document is about describing a format that will work if you send it.

Equipment Type Values

There is no clear guidance on how to represent the hardware/software combination at the end of the APRS record. However, a number of pieces of software use the following table to encode the weather station hardware.
+------+---------------------------+
| name | value                     |
+------+---------------------------+
| wund | Some Wunderground PWS     | 
| 1    | WM918                     | 
| 2    | WS2010                    | 
| 3    | WMR918                    | 
| 4    | Davis WM II full          | 
| 5    | Davis WM II               | 
| 6    | Davis Wizard              | 
| 8    | WMR968                    | 
| 10   | Ultimeter                 | 
| 15   | Davis Grow Station        | 
| 20   | Rainwise                  | 
| 25   | Texas Instruments         | 
| 26   | 1-wire                    | 
| 27   | AAG WS603                 | 
| 31   | Davis Vantage Pro         | 
| 35   | Heathkit                  | 
| 38   | Cambel Scientific         | 
| 40   | Manual reporting          | 
| 42   | WS16                      | 
| 43   | Capricorn                 | 
| 47   | WeatherHawk               | 
| 51   | LaCrosse 2500             | 
| 54   | MetOne                    | 
| 59   | Irox/Honeywell USB        | 
| 60   | LaCrosse 2310/2315        | 
| 61   | LaCrosse 3600             | 
| 62   | Heavy Weather currdat.lst | 
| 122  | Weatherbug AWS            | 
| 151  | Casella                   | 
| 166  | WH1081                    | 
| 190  | Vaisala WXt510            | 
| 232  | WMR100                    | 
| 233  | WMR200                    | 
| 234  | WMR300                    | 
| 400  | Acu-Rite 5-in-1           | 
| 401  | Weather Link data file    | 
| 601  | ELV WS500                 | 
+------+---------------------------+

Debugging

The page APRS Search contains a bunch of useful search boxes that you can enter your CW number into, and then see what data has been received. Another useful site is APRSWXNET Maps and Status.

Other useful resources can be found from Joining APRSWXNET. The actual APRS protocol specification is available in a PDF file. The information presented above actually works, and is somewhat different to what is in this document.

Once you are submitting data, you can sign up with the Weather Data Quality Monitor which will send you email when your data goes 'bad'. For more information about the quality checks, see APRSWXNET Data Quality.

Contacts

The 'right' person to contact about APRSWXNET is Russ Chadwick.
Philip Gladstone
Updated: June 2008