VantageSerialProtocolDocs v250
VantageSerialProtocolDocs v250
Note: This document will be periodically updated along with our product development.
Please check Davis Instruments’ website (www.davisnet.com) for the latest version.
Page 2 of 59
Revision History
Page 3 of 59
Table of Contents
I. Introduction ............................................................................................................................................. 5
II. Additonal Commands Not in Monitor II ................................................................................................ 5
III. Differences between Vantage Pro and Vantage Pro 2 .......................................................................... 6
IV. Differences between Vantage Pro 2 and Vantage Vue ......................................................................... 6
V. Waking up the Console .......................................................................................................................... 6
VI. Blackout Periods ................................................................................................................................... 7
VII. Command Formats .............................................................................................................................. 7
VIII. Command Summary .......................................................................................................................... 7
1. Testing commands .............................................................................................................................. 7
2. Current Data commands ..................................................................................................................... 8
3. Download Commands ......................................................................................................................... 8
4. EEPROM Commands ......................................................................................................................... 8
5. Calibration Commands ....................................................................................................................... 9
6. Clearing Commands............................................................................................................................ 9
7. Configuration Commands ................................................................................................................... 9
IX. Command Details ............................................................................................................................... 10
1. Testing commands ............................................................................................................................ 10
2. Current Data commands ................................................................................................................... 13
3. Download Commands ....................................................................................................................... 14
4. EEPROM Commands ....................................................................................................................... 15
5. Calibration Commands ..................................................................................................................... 16
6. Clearing Commands.......................................................................................................................... 18
7. Configuration Commands ................................................................................................................. 20
X. Data Formats ........................................................................................................................................ 22
1. LOOP data format ............................................................................................................................. 22
2. LOOP2 Packet Format ...................................................................................................................... 25
3. HILOW data format .......................................................................................................................... 27
4. DMP and DMPAFT data format....................................................................................................... 30
5. Alarm thresholds data format............................................................................................................ 33
6. CALED and CALFIX data format .................................................................................................... 34
XI. Download Protocol ............................................................................................................................. 34
XII. CRC calculation ................................................................................................................................ 36
XIII. EEPROM configuration settings ...................................................................................................... 38
XIV. Common Tasks ................................................................................................................................ 41
1. Setting Temperature and Humidity Calibration Values.................................................................... 42
2. Setting the Time, Time Zone, and Daylight savings ........................................................................ 42
3. Setting the Rain Collector type ......................................................................................................... 44
4. Setting up transmitter station ID's and retransmit function. ............................................................. 44
5. Setting Alarm Thresholds ................................................................................................................. 47
6. Calculating ISS reception ................................................................................................................. 49
XV. EEPROM Graph data locations for Vantage Pro .............................................................................. 51
XVI. EEPROM Graph data locations for VP2 ......................................................................................... 54
XVII. EEPROM Graph data locations for Vue ........................................................................................ 57
Page 4 of 59
Important Note:
Please note, this information is provided as is, and we do not provide application engineering or comprehensive technical
support. Also, we do not guarantee our station will meet the needs of your specific application. If you have questions, they
should be submitted through email and they will be answered when resources are available. Also, although we would not do
so without good reason, we reserve the right to modify our weather station design without warning at any time.
I. Introduction
Thank you for choosing Davis Instruments for your weather application. This document explains the
serial data protocol between the Vantage Pro, Vantage Pro2, Vantage Vue consoles (or Envoys) and a
PC. This requires a WeatherLink with Standard Data Logger
Note, the serial communication between Vantage Pro and Vantage Pro2 are very similar except in a few
places noted in this document. Important differences are described in section III.
Commands are primarily ASCII strings. Letters should be in ALL CAPS. Please note that in some
strings numeric values are in decimal, while in others are in hexadecimal.
Multi-byte binary values are generally stored and sent least significant byte first. Negative numbers use
2's complement notation. CRC values are sent and received most significant byte first.
Page 5 of 59
III. Differences between Vantage Pro and Vantage Pro 2
The Vantage Pro2 serial support is almost the same as the Vantage Pro, but there are some important
differences listed below.
1. Serial commands for Vantage Pro2 must be terminated by a single line feed or a single carriage
return character, but not both. Older code that terminates commands with both a line feed and a
carriage return will not work or will work intermittently. Beware that some communciation
programs translate a line feed to both a line feed and a carriage return.
2. The locations of the graph data has changed in Vantage Pro2.
3. The transmission packet interval of the Vantage Pro2 ISS is 1/16 of a second longer for every
station ID number. For example, ID 1 transmits at an interval of every 2.5625 seconds rather
than 2.5 seconds.
4. “GAIN” command is supported in Vantage Pro but not in Vantage Pro2.
5. “STRMON” command returns data packet in different format for Vantage Pro2.
6. Vantage Pro2 does not support different transmitting period. It only supports the normal ISS
transmit period.
7. Vantage Pro2 does not support SensorLink station type.
8. Vantage Pro2 with firmware 1.90 or later supports “LPS” command, but Vantage Pro does not.
After the console has woken up, it will remain awake for 2 minutes. Every time the Vantage receives
another character, the 2 minute timer will be reset.
Please note that this is NOT TRUE for the LOOP command. In the LOOP mode, we expect that the
LOOP packets will be sent over time, so the Vantage will go to sleep immediately between each packet.
Page 6 of 59
VI. Blackout Periods
The console will not process commands when it is in any of the Setup screens (except the first:
"Receiving From…"). It will also not process commands when the console is in a number entry mode
(e.g. setting an alarm value).
Similarly, when a Download is in progress, the console will not respond to key presses and will not
receive data packets from remote sensors.
There are 3 different types of numbers that can be used as command parameters: decimal, hexadecimal
and binary. Command parameters are shown with “<parameter name-decimal>”, “<parameter name-
hex>”, or “<parameter name-binary>” to indicate which format should be used in each case.
Please note that using the correct number of spaces is very important. For example the command "LOOP
<number of LOOP packets to send-decimal>" should be realized with the string "LOOP
4" (i.e. a single space between the "P" and the "4").
There are several different types of command responses. These responses come before any other
returned data values.
1. ACK response: when this command is recognized, the console responds with an ASCII ACK
(0x06) character. If the command parameters are invalid, a Not Acknowledge response of (0x21)
is used. If a block of data is sent with a CRC code, the response CANCEL (0x18) means that the
data did not pass the CRC check.
Note: The DMP and DMPAFT commands can use the character <0x15> for negative
ascknoledgements. See the detailed documentation of these commands in Section XI Download
Protocol below for more details.
2. “OK” response: when this command is recognized, the console responds with the character
string “\n\rOK\n\r”.
3. “DONE” response: Some commands take some time to complete their operation. For example
the command “CLRGRA” will clear all the console graph points. The Vantage will respond with
an “OK” when it receives the command, and “DONE” when it is finished. Do not attempt to
send any commands to the console until the “DONE\n\r” response has been received.
Page 7 of 59
Sends the Console Diagnostics report.
"STRMON"
Echos all of the data packets sent by sensor transmitters.
"STRMOFF"
Stops sending sensor packets.
"VER"
Sends the firmware date code as a text string.
"RECEIVERS"
Sends the bit map of station IDs that the console can hear, This is not the byte for indicating what the console selects
to listen from.
"NVER"
Sends the firmware version number as a text string. This command is only supported by Vantage Pro2 and Vantage
Vue.
3. Download Commands
"DMP"
Downloads the entire archive memory. See the sections X.6 and X.4 for more details.
"DMPAFT"
Downloads the records after a specified date and time. See the sections X.6 and X.4 for more details.
4. EEPROM Commands
"GETEE"
Reads the full 4K EEPROM in one data block.
"EEWR <EE address-hex> <EE data-hex>"
Writes one byte of data to the specified address in the EEPROM.
"EERD <EE address-hex> <number of bytes to read-hex>"
Reads the specified number of bytes starting at the specified address. Results are given as hex strings, one byte per
line.
"EEBWR <EE address-hex> <number of bytes to write-hex>"
Writes data to the EEPROM. The data and CRC are given in binary format following an ACK response.
"EEBRD <EE address-hex> <number of bytes to read-hex>"
Reads data from the EEPROM. The data and CRC are given in binary format following an ACK response.
Page 8 of 59
5. Calibration Commands
"CALED"
Sends a block of data with the current temperature and humidity values for setting calibration values.
"CALFIX"
Updates the display when calibration numbers have been changed.
"BAR=<bar value to display (in Hg * 1000)-decimal> <elevation (ft)-decimal>"
Sets the elevation and barometer offset values when setting the barometer for a new location.
"BARDATA"
Displays of the current barometer calibration parameters in text.
6. Clearing Commands
"CLRLOG"
Clears the archive data.
"CLRALM"
Clears all the alarm thresholds.
"CLRCAL"
Clears all the Temperature and Humidity calibration offsets.
"CLRGRA"
Clears all of the graph points on the Vantage console.
"CLRVAR <Data variable-decimal>"
Clears a rain or ET data value.
"CLRHIGHS <0, 1, or 2>"
Clears all of the daily (0), monthly (1), or yearly (2) high values.
"CLRLOWS <0, 1, or 2>"
Clears all of the daily (0), monthly (1), or yearly (2) low values.
"CLRBITS"
Clears the active alarm bits. Alarms will be reactivated if the alarm condition is still present.
"CLRDATA"
Clears all current data values to dashes.
7. Configuration Commands
"BAUD <New baud rate-decimal>"
Sets the console to a new baud rate. Valid values are 1200, 2400, 4800, 9600, 14400, and 19200.
"SETTIME"
Sets the time and date on the Vantage console. Data in a binary format is sent after ACK.
"GAIN <Gain State: '0' (off) or '1' (on)>"
Sets the gain of the radio receiver. This command is currently not supported in Vantage Pro2.
"GETTIME"
Retrieves the current time and date on the Vantage console. Data is sent in a binary format.
"SETPER <Archive interval in minutes-decimal>"
Sets the Vantage archive interval. Valid values are (1, 5, 10, 15, 30, 60, and 120).
"STOP"
Disables the creation of archive records.
"START"
Enables the creation of archive records, if they have been halted with the STOP command.
"NEWSETUP"
Re-initialize the Vantage console after making certain configuration changes.
"LAMPS <Lamp state: '0' (off) or '1' (on)>"
Page 9 of 59
Turns the lamps on the Vantage console on or off.
In the following command examples, lines starting with “>” are set to the console, and lines starting
with “<” are received from the console.
Character symbols
Symbol Value Name
<CR> 0x0D Carriage return, “\r”
<LF> 0x0A Line Feed, “\n”
<ACK> 0x06 Acknowledge
<NAK> 0x21 Not Acknowledge
<CANCEL> 0x18 Bad CRC code
<0xdd> 0xdd Character code specified in hex.
1. Testing commands
"TEST"
It sends the string “TEST\n” back. Mostly useful when using HyperTerminal for testing a connection
to the console.
Example:
>"TEST"<LF>
<"TEST"<LF><CR>
"WRD"<0x12><0x4d>
This is the same command sequence used by earlier Davis weather stations to read the Station Type
value. The station will respond with an <ACK> and then a one byte identifier, which can be one of
these values:
Example:
>"WRD"<0x12><0x4D><LF>
<<ACK><16>
Page 10 of 59
"RXCHECK"
It sends the Console Diagnostics report. The following values are sent on one line as a text string:
total packets received, total packets missed, number of resynchronizations, the largest number of
packets received in a row., and the number of CRC errors detected.
All values are recorded since midnight, or since the diagnostics are cleared manually.
Example:
>"RXCHECK"<LF>
<<LF><CR>”OK”<LF><CR>" 21629 15 0 3204 128"<LF><CR>
It shows we received 21,629 packets, missed 15 packets, there were no resynchronizations, the
maximum number of packets received in a row without an error was 3204, and there were 128 CRC
errors detected.
"STRMON"
It echos all of the data packets sent by sensor transmitters. The station will respond with an “OK”
message and Davis Talk data packets when received by the console until the STRMOFF command is
given.
For Vantage Pro, each packet contains six bytes and each byte is shown as a two-digit hex string per
line, with a blank line between packets.
For VantagePro 2, each packet contains eight bytes instead of six and it returns the byte number
along with the content for better clarity.
Example (VantagePro):
>"STRMON"<LF>
<<LF><CR>"OK"<LF><CR>
<"F7"<LF><CR>
<"07"<LF><CR>
<"E0"<LF><CR>
<"82"<LF><CR>
<"08"<LF><CR>
<"C4"<LF><CR> . . .
Example (VantagePro2):
>"STRMON"<LF>
<<LF><CR>"OK"<LF><CR>
<"0 = 81"<LF><CR>
<"1 = 0"<LF><CR>
<"2 = 0"<LF><CR>
<"3 = ff"<LF><CR>
<"4 = c5"<LF><CR>
Page 11 of 59
<"5 = 0"<LF><CR>
<"6 = b7"<LF><CR>
<"7 = 42"<LF><CR><LF><CR> . . .
"STRMOFF"
It halts the flow of Davis Talk data packets started by the STRMON command. Note that this
command is the only way to stop receiving Davis Talk data packets.
Example:
>"STRMOFF"<LF>
<<LF><CR>"OK"<LF><CR>
"VER"
It sends the firmware date code as a text string. Some functions on the console are implemented
differently in different firmware versions. See the separate file "Vantage Console Firmware Release
History.doc" or "Envoy Firmware Release History.doc" to determine which functions are available
with each firmware version.
Example:
>"VER"<LF>
<<LF><CR>”OK”<LF><CR>"Apr 24 2002"<LF><CR>
"RECEIVERS"
It sends a byte that contains the stations received in the "Receiving From …" setup screen. The
station responds with “OK” followed by the bit map. For each bit position, a value of 1 indicates that
that transmitter was received. Bit position 0 (least significant bit) corresponds with Tx ID 1 in the
Davis Talk protocol.
Example:
>"RECEIVERS"<LF>
<<LF><CR>"OK"<LF><CR><0x01>
"NVER"
It sends the firmware version as a text string. Some functions on the console are implemented
differently in different firmware versions. See the separate file "Vantage Console Firmware Release
History.doc" or "Envoy Firmware Release History.doc" to determine which functions are available
with each firmware version.
Page 12 of 59
Example:
>"NVER"<LF>
<<LF><CR>”OK”<LF><CR>"1.73"<LF><CR>
To halt the sending of LOOP packets before receiving all of the requested packets, send a <CR> by
itself. Note that this is the same as the Wakeup sequence.
Each data packet is 99 bytes long and contains most of the current data values shown on the vantage
console. In addition, the state of alarms, the battery status of the console and the transmitters, the
weather forecast icon, and the sunrise and sunset times are included. Rev B and Vantage Pro2
firmware also have the 3 hour barometer trend value. A CRC value is calculated and transmitted so
that the PC can validate the transmission accuracy of the data. The data format is described in detail
in section X.1
To halt the sending of LOOP packets before receiving all of the requested packets, send a <CR> by
itself. Note that this is the same as the Wakeup sequence.
All the loop packets are 99 bytes long and contain most of the current data values shown on the
Vantage Pro, Vantage Pro2 and Vantage Vue consoles. See the previous section for LOOP packet
details.
Page 13 of 59
Wait 2.5 seconds
<<99 byte LOOP2 packet>…
"HILOWS"
It sends all the current high/low data in a single data block. The station responds with an <ACK>
then a 436 byte data block that includes all the daily, monthly, and yearly high and low values on the
Vantage console, and then a 2 byte CRC value. This is so that the PC can validate the transmission
accuracy of the data. The data format is described in detail in section X.2 .
Example:
>"HILOWS"<LF>
<<ACK>
<<436 byte hi/low packet><2-Byte CRC>
The console shows yearly rain of 24.83 inches (assuming that the rain collector is configured for a
0.01" collector).
3. Download Commands
"DMP"
It downloads the entire archive memory. See the sections X.6 and X.4 for more details on
downloading data.
"DMPAFT"
Page 14 of 59
It downloads the records after a specified date and time. See the sections X.6 and X.4 for more
details on downloading data.
4. EEPROM Commands
"GETEE"
It reads the full 4K EEPROM in one data block. There is also a 2 byte CRC.
Example:
>"GETEE"<LF>
<<ACK>
<<4096 byte block of EEPROM data>
<<2-Byte CRC>
Example (It reads three bytes from the EEPROM at location 0x32.)
>"EEBRD 32 03"<LF>
<<ACK>
<<0x05><0xFA><0x0E><2-Byte CRC>
Page 15 of 59
"EEBWR <EE address-hex> <number of bytes to write-hex>"
It writes data to the EEPROM. The data and CRC is given in binary format following an ACK
response. See section XIII for more details on accessing EEPROM data.
Example (Set the time alarm to 7:15 am, the TIME_COMP field must also be set):
>"EEBWR 54 04"<LF>
<<ACK>
><0xCB><0x02><0x34><0xFD><2-Byte CRC>
5. Calibration Commands
"CALED"
It sends a block of data with the current temperature and humidity values for setting calibration
values. These values are the current CALIBRATED sensor values. The data format is the same that
is used in the "CALFIX" command.
Example:
>"CALED"<LF>
<<ACK>
<<43 bytes of data block with current data values><2-Byte CRC>
"CALFIX"
It updates the display when temperature and humidity calibration numbers have been changed. The
values sent should be UN-CALIBRATED sensor values.
Example:
>"CALFIX"<LF>
<<ACK>
><43 bytes of data block with raw sensor values><2-Byte CRC>
<<ACK>
Use a value of zero when you do not have an exact barometer value that you want the Vantage
console to display. This also clears out any existing offset value previously set.
This value should either be zero or between 20.000” Hg and 32500” Hg.
Page 16 of 59
This is the primary means to correct the barometer measurement. Negative values for elevation can
be used.
"BARDATA"
It retrieves the current barometer calibration parameters in text. These tell you what the current
elevation setting and barometer offset values are, plus some details on the barometer correction
factor being used.
Example:
>"BARDATA"<LF>
<<LF><CR>"OK"<LF><CR>
<"BAR 29775"<LF><CR>
<"ELEVATION 27"<LF><CR>
<"DEW POINT 56"<LF><CR>
<"VIRTUAL TEMP 63"<LF><CR>
<"C 29"<LF><CR>
<"R 1001"<LF><CR>
<"BARCAL 0"<LF><CR>
<"GAIN 1533"<LF><CR>
<"OFFSET 18110"<LF><CR>
Page 17 of 59
GAIN These are the factory set values to calibrate the barometer
OFFSET sensor on this console.
6. Clearing Commands
"CLRLOG"
It clears the archived data.
Example:
>"CLRLOG"<LF>
<<ACK>
"CLRALM"
It clears all the alarm thresholds. Use "CLRBITS" to clear any active alarms.
This command takes time to perform, so you must wait for the console to send "DONE" before
sending any further commands
Example:
>"CLRALM"<LF>
<<LF><CR>"OK"<LF><CR>
-- After some time passes --
<"DONE"<LF><CR>
"CLRCAL"
Clears all the Temperature and Humidity calibration offsets to zero.
Note that the values displayed on the console do not use the new calibration values until a new data
packet arrives for that sensor. You must use the procedure from section XIV.1 to force the current
display to use the new cal numbers
Example:
>"CLRCAL"<LF>
<"OK"<LF><CR>
-- After some time passes --
<"DONE"<LF><CR>
"CLRGRA"
It clears all of the graph points on the Vantage console.
Example:
>"CLRGRA"<LF>
<"OK"<LF><CR>
-- After some time passes --
<"DONE"<LF><CR>
Page 18 of 59
"CLRVAR <Data variable-decimal>"
It clears a rain or ET data value from the following table:
Rain Variable Name Number ET Variable Name Number
Daily Rain 13 Day ET 26
Storm Rain 14 Month ET 25
Month Rain 16 Year ET 27
Year Rain 17
"CLRBITS"
It clears the active alarm bits. They will reactivate if the alarm condition is still present.
Example:
>"CLRBITS"<LF>
<<ACK>
"CLRDATA"
It clears all current data values to dashes.
Example:
>"CLRDATA"<LF>
<<ACK>
Page 19 of 59
7. Configuration Commands
"BAUD <New baud rate-decimal>"
It sets the console to a new baud rate. Valid values are 1200, 2400, 4800, 9600, 14400, and 19200. If
the new baud rate is accepted, an "OK" will be returned at the new baud rate.
If it is not, a "NO" will be returned and the baud rate will not be changed.
"SETTIME"
It sets the time and date on the console. Data in a binary format is sent after ACK.
The data is 6 bytes plus a 2 bytes of CRC. The each field is one byte. The fields, in order, are:
seconds, minutes, hour (24 hour format), day, month, year – 1900. See section XII for more
information on calculating CRC values.
"GETTIME"
It retrieves the current time and date on the console. Data is sent in a binary format.
The format is the same as the SETTIME command.
Page 20 of 59
"SETPER <Archive interval in minutes-decimal>"
It sets the console archive interval. This is the interval that archive data records are recorded into the
archive memory. The smaller this value is, the faster the archive memory will fill up.
Valid values are (1, 5, 10, 15, 30, 60, and 120). Results are undefined if you try to select an archive
period not on the list.
This command automatically clears the archive memory. Use the "CLRLOG" command to clear the
archive memory. WeatherLink clears the archive memory so that all archived records in the archive
memory use the same archive interval.
"STOP"
It disables the creation of archive records.
"START"
It enables the creation of archive records, if they have been halted with the STOP command.
"NEWSETUP"
It re-initializes the console after making certain configuration changes.
Make sure to issue this command after you set the Latitude or Longitude, and after you
change any of the Setup bits in the EEPROM (address 43 = 0x2B) especially the Rain collector
type,
Page 21 of 59
X. Data Formats
1. LOOP data format
There are two different LOOP data formats. Rev "A" firmware, dated before April 24, 2002 uses the old
format. Rev "B" firmware, dated on or after April 24, 2002 uses the new format. The only difference
between these formats is the inclusion of the current 3 hour barometer trend in place of the fixed value
"P" in the fourth byte of the data packet.
Only values read directly from sensors are included in the LOOP packet. Desired values (i.e., Dew Point
or Wind Chill) must be calculated on the PC. The LOOP packet also contains information on the current
status of all Vantage Alarm conditions, battery status, weather forecasts, and sunrise and sunset times.
Page 22 of 59
Field Offset Size Explanation
Soil Temperatures 25 4 This field supports four soil temperature sensors, in the same
format as the Extra Temperature field above
Leaf Temperatures 29 4 This field supports four leaf temperature sensors, in the same
format as the Extra Temperature field above
Outside Humidity 33 1 This is the relative humitiy in %.
Extra Humidties 34 7 Relative humidity in % for extra seven humidity stations.
Rain Rate 41 2 This value is sent as number of rain clicks (0.2mm or 0.01in).
For example, 256 can represent 2.56 inches/hour.
UV 43 1 The unit is in UV index.
Solar Radiation 44 2 The unit is in watt/meter2.
Storm Rain 46 2 The storm is stored as 100th of an inch.
Start Date of current Storm 48 2 Bit 15 to bit 12 is the month, bit 11 to bit 7 is the day and bit 6 to
bit 0 is the year offseted by 2000.
Day Rain 50 2 This value is sent as number of rain clicks. (0.2mm or 0.01in)
Month Rain 52 2 This value is sent as number of rain clicks. (0.2mm or 0.01in)
Year Rain 54 2 This value is sent as number of rain clicks. (0.2mm or 0.01in)
Day ET 56 2 This value is sent as the 1000th of an inch.
Month ET 58 2 This value is sent as the 100th of an inch.
Year ET 60 2 This value is setnt as the 100th of an inch.
Soil Moistures 62 4 The unit is in centibar. It supports four soil sensors.
Leaf Wetnesses 66 4 This is a scale number from 0 to 15 with 0 meaning very dry and
15 meaning very wet. It supports four leaf sensors.
Inside Alarms 70 1 Currently active inside alarms. See the table below
Rain Alarms 71 1 Currently active rain alarms. See the table below
Outside Alarms 72 2 Currently active outside alarms. See the table below
Extra Temp/Hum Alarms 74 8 Currently active extra temp/hum alarms. See the table below
Soil & Leaf Alarms 82 4 Currently active soil/leaf alarms. See the table below
Transmitter Battery Status 86 1
Console Battery Voltage 87 2 Voltage = ((Data * 300)/512)/100.0
Forecast Icons 89 1
Forecast Rule number 90 1
Time of Sunrise 91 2 The time is stored as hour * 100 + min.
Time of Sunset 93 2 The time is stored as hour * 100 + min.
"\n" <LF> = 0x0A 95 1
"\r" <CR> = 0x0D 96 1
CRC 97 2
Total Length 99
Page 23 of 59
Value Decimal Value Hex Segments Shown Forecast
8 0x08 Sun Mostly Clear
6 0x06 Partial Sun + Cloud Partly Cloudy
2 0x02 Cloud Mostly Cloudy
3 0x03 Cloud + Rain Mostly Cloudy, Rain within 12 hours
18 0x12 Cloud + Snow Mostly Cloudy, Snow within 12 hours
19 0x13 Cloud + Rain + Snow Mostly Cloudy, Rain or Snow within 12 hours
7 0x07 Partial Sun + Cloud + Partly Cloudy, Rain within 12 hours
Rain
22 0x16 Partial Sun + Cloud + Partly Cloudy, Snow within 12 hours
Snow
23 0x17 Partial Sun + Cloud + Partly Cloudy, Rain or Snow within 12 hours
Rain + Snow
This table shows which alarms correspond to each bit in the LOOP alarm fields. Not all bits in each field
are used. The Outside Alarms field has been split into 2 1-byte sections.
Page 24 of 59
Field Byte Bit #
UV Dose alarm Enabled 4 It is set to 1 when a UV dose alarm threshold has been entered
AND the daily UV dose has been manually cleared.
Outside Humidity Alarms 74 1 Currently active outside humidity alarms.
Low Humidity alarm 2
High Humidity alarm 3
Extra Temp/Hum Alarms 75 - 81 7 Each byte contains four alarm bits (0 – 3) for a single extra
Temp/Hum station. Bits (4 – 7) are not used and reserved for
future use.
Use the temperature and humidity sensor numbers, as
described in Section XIV.4 to locate which byte contains the
appropriate alarm bits. In particular, the humidity and
temperature alarms for a single station will be found in
different bytes.
Low temp X alarm 0
High temp X alarm 1
Low hum X alarm 2
High hum X alarm 3
Soil & Leaf Alarms 82 - 85 4 Currently active soil/leaf alarms.
Low leaf wetness X alarm 0
High leaf wetness X alarm 1
Low soil moisture X alarm 2
High soil moisture X alarm 3
Low leaf temp X alarm 4
High leaf temp X alarm 5
Low soil temp X alarm 6
High soil temp X alarm 7
Note: Some of the fields are included in both LOOP and LOOP2 packets.
Page 25 of 59
Field Offset Size Explanation
Unused 5 2 Unused field, filled with 0x7FFF
Barometer 7 2 Current Barometer. Units are (in Hg / 1000). The barometric
value should be between 20 inches and 32.5 inches. Values
outside these ranges will not be logged.
Inside Temperature 9 2 The value is sent as 10th of a degree in F. For example, 795 is
returned for 79.5°F.
Inside Humidity 11 1 This is the relative humidity in %, such as 50 is returned for 50%.
Outside Temperature 12 2 The value is sent as 10th of a degree in F. For example, 795 is
returned for 79.5°F.
Wind Speed 14 1 It is a byte unsigned value in mph. If the wind speed is dashed
because it lost synchronization with the radio or due to some
other reason, the wind speed is forced to be 0.
Unused 15 1 Unused field, filled wth 0xFF
Wind Direction 16 2 It is a two-byte unsigned value from 1 to 360 degrees. (0° is no
wind data, 90° is East, 180° is South, 270° is West and 360° is
north)
10-Min Avg Wind Speed 18 2 It is a two-byte unsigned value in 0.1mph resolution.
2-Min Avg Wind Speed 20 2 It is a two-byte unsigned value in 0.1mph resolution.
10-Min Wind Gust 22 2 It is a two-byte unsigned value in 0.1mph resoluation.
Wind Direction for the 10- 24 2 It is a two-byte unsigned value from 1 to 360 degrees. (0° is no
Min Wind Guest wind data, 90° is East, 180° is South, 270° is West and 360° is
north)
Unused 26 2 Unused field, filled with 0x7FFF
Unused 28 2 Unused field, filled with 0x7FFF
Dew Point 30 2 The value is sent as 10th of a degree in F. For example, 795 is
returned for 79.5°F.
Unused 32 1 Unused field, filled with 0xFF
Outside Humidity 33 1 This is the relative humidity in %, such as 50 is returned for 50%.
Unused 34 1 Unused field, filled with 0xFF
Heat Index 35 2 The value is sent as 10th of a degree in F. For example, 795 is
returned for 79.5°F.
Wind Chill 37 2 The value is sent as 10th of a degree in F. For example, 795 is
returned for 79.5°F.
THSW Index 39 2 The value is sent as 10th of a degree in F. For example, 795 is
returned for 79.5°F. (For Vantage Pro2 only)
Rain Rate 41 2 In rain clicks per hour.
UV 43 1 Unit is in UV Index
Solar Radiation 44 2 The unit is in watt/meter2.
Storm Rain 46 2 The storm is stored as 100th of an inch.
Start Date of current Storm 48 2 Bit 15 to bit 12 is the month, bit 11 to bit 7 is the day and bit 6 to
bit 0 is the year offseted by 2000.
Daily Rain 50 2 This value is sent as number of rain clicks. (0.2mm or 0.01in)
Last 15-min Rain 52 2 This value is sent as number of rain clicks. (0.2mm or 0.01in)
Last Hour Rain 54 2 This value is sent as number of rain clicks. (0.2mm or 0.01in)
Daily ET 56 2 This value is sent as the 1000th of an inch.
Last 24-Hour Rain 58 2 This value is sent as number of rain clicks. (0.2mm or 0.01in)
Barometric Reduction 60 1 Bar reduction method: 0 - user offset 1- Altimeter Setting 2-
Method NOAA Bar Reduction. For VP2, this will always be 2.
User-entered Barometric 61 2 Barometer calibration number in 1000th of an inch
Offset
Barometric calibration 63 2 Calibration offset in 1000th of an inch
number
Page 26 of 59
Field Offset Size Explanation
Barometric Sensor Raw 65 2 In 1000th of an inch
Reading
Absolute Barometric 67 2 In 1000th of an inch, equals to the raw sensor reading plus user
Pressure entered offset
Altimeter Setting 69 2 In 1000th of an inch
Unused 71 1 Unused field, filled with 0xFF
Unused 72 1 Undefined
Next 10-min Wind Speed 73 1 Points to the next 10-minute wind speed graph point. For current
Graph Pointer graph point, just subtract 1 (range from 0 to 23 on VP/VP2
console and 0 to 24 on Vantage Vue console)
Next 15-min Wind Speed 74 1 Points to the next 15-minute wind speed graph point. For current
Graph Pointer graph point, just subtract 1 (range from 0 to 23 on VP/VP2
console and 0 to 24 on Vantage Vue console)
Next Hourly Wind Speed 75 1 Points to the next hour wind speed graph point. For current
Graph Pointer graph point, just subtract 1 (range from 0 to 23 on VP/VP2
console and 0 to 24 on Vantage Vue console)
Next Daily Wind Speed 76 1 Points to the next daily wind speed graph point. For current
Graph Pointer graph point, just subtract 1 (range from 0 to 23 on VP/VP2
console and 0 to 24 on Vantage Vue console)
Next Minute Rain Graph 77 1 Points to the next minute rain graph point. For current graph
Pointer point, just subtract 1 (range from 0 to 23 on VP/VP2 console and
0 to 24 on Vantage Vue console)
Next Rain Storm Graph 78 1 Points to the next rain storm graph point. For current graph
Pointer point, just subtract 1 (range from 0 to 23 on VP/VP2 console and
0 to 254on Vantage Vue console)
Index to the Minute within 79 1 It keeps track of the minute within an hour for the rain
an Hour calculation. (range from 0 to 59)
Next Monthly Rain 80 1 Points to the next monthly rain graph point. For current graph
point, just subtract 1 (range from 0 to 23 on VP/VP2 console and
0 to 24 on Vantage Vue console)
Next Yearly Rain 81 1 Points to the next yearly rain graph point. For current graph
point, just subtract 1 (range from 0 to 23 on VP/VP2 console and
0 to 24 on Vantage Vue console)
Next Seasonal Rain 82 1 Points to the next seasonal rain graph point. Yearly rain always
resets at the beginning of the calendar, but seasonal rain resets
when rain season begins. For current graph point, just subtract 1
(range from 0 to 23 on VP/VP2 console and 0 to 24 on Vantage
Vue console)
Unused 83 2 Unused field, filled with 0x7FFF
Unused 85 2 Unused field, filled with 0x7FFF
Unused 87 2 Unused field, filled with 0x7FFF
Unused 89 2 Unused field, filled with 0x7FFF
Unused 91 2 Unused field, filled with 0x7FFF
Unused 93 2 Unused field, filled with 0x7FFF
"\n" <LF> = 0x0A 95 1
"\r" <CR> = 0x0D 96 1
CRC 97 2
Total Length 99
3. HILOW data format
The "HILOWS" command sends a 436 byte data packet and a 2 byte CRC value. The data packet is
broken up into sections of related data values.
Page 27 of 59
Contents of the HILOW packet.
Field Offset Size Explanation
Barometer Section 0 16
Daily Low Barometer 0 2
Daily High Barometer 2 2
Month Low Bar 4 2
Month High Bar 6 2
Year Low Barometer 8 2
Year High Barometer 10 2
Time of Day Low Bar 12 2
Time of Day High Bar 14 2
Page 28 of 59
Field Offset Size Explanation
Time Day Hi Dew Point 69 2
Month Hi Dew Point 71 2
Month Low Dew Point 73 2
Year Hi Dew Point 75 2
Year Low Dew Point 77 2
UV Section 111 5
Day High UV 111 1
Time of Day High UV 112 2
Month High UV 114 1
Year High UV 115 1
Page 29 of 59
Field Offset Size Explanation
Month Hi Temperature 216 15 (15 * 1)
Month Low Temperature 231 15 (15 * 1)
Year Hi Temperature 246 15 (15 * 1)
Year Low Temperature 261 15 (15 * 1)
CRC 436 2
You can use the VER command and parse the date returned to determine the archive data format, or you
can examine byte 42 in the archive record. In a Rev B record, it will have the value 0x00. In a Rev A
Page 30 of 59
record, this byte is used for "Leaf Wetness 4" which is never assigned a real data value, so it will always
contain 0xFF. Future record formats may assign different values for this field.
Each archive record is 52 bytes. Records are sent to the PC in 264 byte pages. Each page contains 5
archive records and 4 unused bytes. See section 6 for more details on performing download operations.
The value in the “Dash Value” column is what you will see if that field is not updated at all during the
archive interval. A dash value can appear for several reasons, and different weather variables are
treated differently. For example, if you see 32767 for Outside Temperature that could be because of a
communication problem, the sensor was unplugged, or the sensor has failed. Note, a dashed value is
not always the sign of a problem. For example, the rainfall reading could be 0 if no rain fell in that
interval. To determine if a problem exists, often times you will need to look at more than one weather
variable.
Page 31 of 59
Field Offset Size Dash Value Explanation
Dashed
Prevailing Wind Direction 27 1 32767 Prevailing or Dominant Wind Direction code. 0 = N,
1 = NNE, 2 = NE, … 14 = NW, 15 = NNW, 255 =
Dashed
Firmware before July 8, 2001 does not report
direction codes of 255. Software should substitute
the dash value whenever the High Wind Speed is
zero.
Average UV 28 1 255 Average UV Index. Units are (UV Index / 10)
ET 29 1 0 ET accumulated over the last hour. Only records "on
the hour" will have a non-zero value. Units are (in /
1000)
Invalid data 30 1 This byte is contains invalid data in Rev A data
records
Soil Moistures 31 4 255 4 Soil Moisture values. Units are (cb)
Soil Temperatures 35 4 255 4 Soil Temperatures. Units are (°F + 90)
Leaf Wetnesses 39 4 255 4 Leaf Wetness values. Range is 0 – 15
Extra Temperatures 43 2 32767 2 Extra Temperature values. Units are (°F + 90)
Extra Humidities 45 2 255 2 Extra Humidity values
Reed Closed 47 2 0 Count of the number of time the anemometer reed switch
was closed
Reed Opened 49 2 0 Count of the number of time the anemometer reed switch
was opened
Unused Byte 51 1
Page 32 of 59
Field Offset Size Dash Value Explanation
Outside Humidity 23 1 255 Outside Humidity at the end of the archive period
Average Wind Speed 24 1 255 Average Wind Speed over the archive interval. Units
are (MPH)
High Wind Speed 25 1 0 Highest Wind Speed over the archive interval. Units
are (MPH)
Direction of Hi Wind Speed 26 1 32767 Direction code of the High Wind speed. 0 = N, 1 =
NNE, 2 = NE, … 14 = NW, 15 = NNW, 255 =
Dashed
Prevailing Wind Direction 27 1 32767 Prevailing or Dominant Wind Direction code. 0 = N,
1 = NNE, 2 = NE, … 14 = NW, 15 = NNW, 255 =
Dashed
Firmware before July 8, 2001 does not report
direction codes of 255
Average UV Index 28 1 255 Average UV Index. Units are (UV Index / 10)
ET 29 1 0 ET accumulated over the last hour. Only records "on
the hour" will have a non-zero value. Units are (in /
1000)
High Solar Radiation 30 2 0 Highest Solar Rad value over the archive period.
Units are (Watts / m2)
High UV Index 32 1 0 Highest UV Index value over the archive period.
Units are (Watts / m2)
Forecast Rule 33 1 193 Weather forecast rule at the end of the archive
period.
Leaf Temperature 34 2 255 2 Leaf Temperature values. Units are (°F + 90)
Leaf Wetnesses 36 2 255 2 Leaf Wetness values. Range is 0 – 15
Soil Temperatures 38 4 255 4 Soil Temperatures. Units are (°F + 90)
Download Record Type 42 1 0xFF = Rev A, 0x00 = Rev B archive record
Extra Humidities 43 2 255 2 Extra Humidity values
Extra Temperatures 45 3 32767 3 Extra Temperature values. Units are (°F + 90)
Soil Moistures 48 4 255 4 Soil Moisture values. Units are (cb)
Page 33 of 59
Field Offset Size Explanation
HIGH_HUM_IN_ALARM 41 1 Inside humidity is one byte unsigned number in decimal, such
as 100 represent 100%.
LOW_HUM_ALARM 42 8 First entry is the current Outside Humidity setting
HIGH_HUM_ALARM 50 8 First entry is the current Outside Humidity setting
LOW_DEW_ALARM 58 1 Threshold is (data value – 120) °F
HIGH_DEW_ALARM 59 1 Threshold is (data value – 120) °F
CHILL_ALARM 60 1 Threshold is (data value – 120) °F
HEAT_ALARM 61 1 Threshold is (data value – 90) °F
THSW_ALARM 62 1 Threshold is (data value – 90) °F
SPEED_ALARM 63 1 Current Wind Speed alarm. Units are MPH
SPEED_10MIN_ALARM 64 1 10 minute average Wind Speed alarm. Units are MPH
UV_ALARM 65 1 Current UV index alarm. Units are (UV Index * 10)
UV_DOSE_ALARM 66 1 Daily UV Dose alarm. Units are MEDS * 10
LOW_SOIL_ALARM 67 4 Low soil moisture alarm with unit in centibar.
HIGH_SOIL_ALARM 71 4 High soil moisture alarm with unit in centibar.
LOW_LEAF_ALARM 75 4 Low leaf wetness alarm with index 0 to 15. 0 is very dry and
15 is very wet.
HIGH_LEAF_ALARM 79 4 High leaf wetness alarm with index 0 to 15. 0 is very dry and
15 is very wet.
SOLAR_ALARM 83 2 Solar energy alarm with unit in watt/meter2.
RAIN_RATE_ALARM 85 2 Rain rate alarm is set with 0.01 inch per hour.
RAIN_15MIN_ALARM 87 2 15-minute rain alarm is set with 0.01inch resolution.
RAIN_24HR_ALARM 89 2 24-hour rain alarm is set with 0.01 inch resolution.
RAIN_STORM_ALARM 91 2 Rain storm alarm is set with 0.01 inch resolution.
ET_DAY_ALARM 93 1 Units are (0.001 inches)
Page 34 of 59
This section will concentrate on the operation of the "DMPAFT" command. The "DMP" command is
identical in operation except that you do not send or receive any additional data between sending the
command and receiving archive records.
In order to use the "DMPAFT" command you need to determine the time and date-stamp of the last record
that you already have, AND this record should match one of the records already archived in the
WeatherLink data logger. (if the data is not found, then the entire contents of the data archive will be
downloaded.)
To calculate the time and date-stamps, use these formulas: (hour is in 24 hour format, both of these
values are 2-byte values)
vantageDateStamp = day + month*32 + (year-2000)*512);
vantageTimeStamp = (100*hour + minute);
Use zero for both of these values (and the CRC) to force a full download.
If the CRC is correct, the console will send back another <ACK> the number of "pages" that will be
send (2 bytes), the location within the first page of the first record, and 2 Byte CRC.
If the CRC is not correct, the vantage will respond with 0x18. If you do not sent 6 bytes, it will respond
with 0x21.
Note that while the console tells you which record in the first page it sends contains the first new data
record, it does not tell you which record in the last page it sends is the last new data record. Records
after the most recent will either contain all 0xFF bytes (if the archive has never been completely filled),
or will contain old data records.
At this point you can either send an <ESC> = 0x1B to cancel the download, or an <ACK> to start the
download.
After receiving each page of data, calculate the CRC value. If the CRC was incorrect, send 0x21 (really
"!" but used as <NAK>) to have the Vantage send the page again.
Otherwise, send <ACK> to receive the next page (if there is one), or <ESC> to cancel the download
early.
Each "Page" is 267 bytes and contains 5 records of data. There are a total of 512 pages of archive
memory for a total of 2560 records. If a "DMPAFT" command results in downloading the entire archive,
513 pages will be downloaded. The first and last pages in this case are identical.
Page 35 of 59
The format of each page is:
1 Byte sequence number (starts at 0 and wraps from 255 back to 0)
52 Byte Data record
52 Byte Data record
52 Byte Data record
52 Byte Data record
52 Byte Data record
4 Byte unused bytes
2 Byte CRC
See section X.4 for details on the format of the archive data record.
Example (download records after June 6, 2003 9:30am [270 pages, the first valid record is 2]):
>"DMPAFT"<LF>
<<ACK>
-- Send the Date and Time stamp --
><0xC6><0xCE><0xA2><0x03>
-- Send the calculated CRC 0xE2B4 –
><0xE2><0xB4>
<<ACK>
-- Vantage responds with the number of pages it will send --
<<0x0E><0x01><0x02><0x00><2 Bytes of CRC Data>
-- Begin the download – Use <ESC> instead to cancel it
><ACK>
-- Block sequence number
<<0x00>
<<52 byte data record 0>
<<52 byte data record 1>
-- The next record is the first record with new data
<<52 byte data record 2>
<<52 byte data record 3>
<<52 byte data record 4>
<<4 unused bytes>
<<2 byte CRC>
-- At this point verify the CRC and send either <ACK>, <0x21>, or <ESC>
The CRC checking used by the WeatherLink is based on the CRC-CCITT standard. The heart of the
method involves a CRC-accumulator that uses the following formula on each successive data byte. After
all the data bytes have been "accumulated", there will be a two byte CRC checksum that will get
processed in the same manner as the data bytes. If there has been no transmission error, then the final
CRC-accumulator value will be 0 (assuming it was set to zero before accumulating data).
Page 36 of 59
In the following code, "crc" is the crc accumulator (16 bits or 2 bytes), "data" is the data or CRC
checksum byte to be accumulated, and "crc_table" is the table of CRC value found in the array below.
The operator "^" is an exclusive-or (XOR), ">> 8" shifts the data right by one byte (divides by 256), and
"<< 8" shifts the data left by one byte (multiplies by 256).
When sending a CRC to the console, always send the most significant byte first. This is the opposite of
how regular data values are sent where the least significant byte is sent first.
Page 37 of 59
If you continue processing the received CRC value of 0xE2B4 it will look like this:
Old CRC Data byte Table index Table Value New CRC
0xE2B4 0xE2 (0xE2^ 0xE2) = 0x00 0x0000 (0xB400 ^ 0x0000) = 0xB400
0xB400 0xB4 (0xB4^ 0xB4) = 0x00 0x0000 (0x0000^ 0x0000) = 0x0000
The final CRC of zero indicates that the "packet" passed its CRC check.
The commands "EEBRD" and "EEBWR" use similar hex strings to specify what data you want to read or
write, but the actual EEPROM data is send and received as binary bytes. You can read and write as
many bytes as you would like to in a single command.
Both read and written data includes a CRC code. A CRC is required for data written with the "EEBWR"
command.
There are several EEPROM data locations that should not be written with the "EEWR" or "EEBWR"
commands. These are either factory calibration values that should not be changed, or else they are values
that can be set from a different command. For example, use the "SETPER" command to set the
ARCHIVE_PERIOD value, and the "BAR=" command to set the BAR_CAL and ELEVATION values. It
is safe to read these EEPROM values.
The table below gives the addresses and sizes of the most useful EEPROM data values. The address of
each field is given both in decimal and in hex. Use the hex value in all "EE... " commands. There is a
supplemental list of the locations where the Vantage graph data is stored in section XV.
Page 38 of 59
Name Hex Dec Size Description
MANUAL_OR_AUTO 12 18 1 1 = manual daylight savings, 0 = automatic daylight
savings
DAYLIGHT_SAVINGS 13 19 1 This is the configuration bit for the day light savings mode
when it is set in manual mode. 1 = daylight savings is now
on, 0 = daylight savings is now off. When automatic
daylight savings mode is selected, this bit is ignored and it
does not indicate whether the daylight savings is on or not.
GMT_OFFSET 14 20 2 The time difference between GMT and local time (a 2-byte
signed number in hundredths of hours. For example, a
value of 850 would be +8.50 hours. Negative values in
2’s complements, represent western hemisphere.
GMT_OR_ZONE 16 22 1 1 = use the GMT_OFFSET value, 0 = use the TIME_ZONE
value
USETX 17 23 1 Bitmapped field that indicates which DavisTalk
transmitters to listen to. Bit 0 = ID 1.
RE_TRANSMIT_TX 18 24 1 ID number to use for retransmit. 0 = don't retransmit, 1 =
use ID 1.
STATION_LIST 19 25 16 2 bytes per transmitter ID. First byte is station type, second
byte is <temp sensor # | hum sensor #>. See section XIV.4
for more details.
UNIT_BITS 29 41 1 Barometer unit (bit 1:0):
0: 0.01 INCHES
1: 0.1 MM
2: 0.1 HPA
3: 0.1 MB
Temperature unit (Bit 3:2):
0: ◦F (Whole degrees)
1: ◦F (Tenths of a degree)
2: ◦C (Whole degrees)
3: ◦C (Tenths of a degree)
Elevation unit (Bit 4):
0: FEET
1: METERS
RAIN unit (Bit 5):
0: INCHES
1: MM
Wind unit (Bit 7:6):
0: MPH
1: M/S
2: Km/H
3: KNOTS
UNIT_BITS_COMP 2A 42 1 This should be the 1's complement of UNIT_BITS for
validation.
Page 39 of 59
Name Hex Dec Size Description
SETUP_BITS 2B 43 1 AM/PM Time Mode (Bit 0):
0: AM/PM Mode
1: 24-Hour Mode
Is AM or PM (Bit 1):
0: PM
1: AM
Month/Day Format (Bit 2):
0: Shown as Month/Day
1: Shown as Day/Month
Wind Cup Size (Bit 3):
0: Small Size
1: Large Size
Rain Collector Size (Bit 5:4):
0: 0.01 INCHES
1: 0.2 MM
2: 0.1 MM
Latitude (Bit 6):
0: South
1: North
Longitude (Bit 7):
0: West
1: East
RAIN_SEASON_START 2C 44 1 Month that the Yearly rain total is cleared. 1 = January, etc
ARCHIVE_PERIOD 2D 45 1 Number of minutes in the archive period.
Use "SETPER" to set this value.
Calibration values are 1 byte signed numbers that are offsets applied to the corresponding raw sensor value in the
native sensor units (either 0.1 °F or 1 %)
TEMP_IN_CAL 32 50 1 The setting range is from (-12.8 °F to 12.7 °F) with the
most significant byte as the sign bit.
TEMP_IN_COMP 33 51 1 1's compliment of TEMP_IN_CAL to validate calibration
data
TEMP_OUT_CAL 34 52 1 The setting range is from (-12.8 °F to 12.7 °F) with the
most significant byte as the sign bit.
TEMP_CAL 35 53 15 7 "extra" temperatures, 4 soil temperatures, and 4 leaf
temperatures
HUM_IN_CAL 44 68 1 The inside humidity calibration value is ranged from 0 to
100%.
HUM_CAL 45 69 8 The first entry is the currently selected outside humidity
sensor.
DIR_CAL 4D 77 2 2 byte wind direction calibration allows full 360°
calibration in both directions.
ALARM_START 52 82 94 Starting location for the Alarm threshold data. See section
XIV.5 for more details on setting alarm thresholds
BAR_RISE_ALARM 52 82 1 3 hour rising bar trend alarm. Units are in Hg * 1000
BAR_FALL_ALARM 53 83 1 3 hour falling bar trend alarm. Units are in Hg * 1000
TIME_ALARM 54 84 2 Time alarm. Hours * 100 + minutes
TIME_COMP_ALARM 56 86 2 1's compliment of TIME_ALARM to validate alarm entries
LOW_TEMP_IN_ALARM 58 88 1 Threshold is (data value – 90) °F
HIGH_TEMP_IN_ALARM 59 89 1 Threshold is (data value – 90) °F
Page 40 of 59
Name Hex Dec Size Description
LOW_TEMP_OUT_ALARM 5A 90 1 Threshold is (data value – 90) °F
HIGH_TEMP_OUT_ALARM 5B 91 1 Threshold is (data value – 90) °F
LOW_TEMP_ALARM 5C 92 15 7 extra temps, 4 soil temps, 4 leaf temps
HIGH_TEMP_ALARM 6B 107 15 7 extra temps, 4 soil temps, 4 leaf temps
LOW_HUM_IN_ALARM 7A 122 1 Low relative humidity alarm in %.
HIGH_HUM_IN_ALARM 7B 123 1 High relative humidity alarm in %.
LOW_HUM_ALARM 7C 124 8 First entry is the current Outside Humidity setting
HIGH_HUM_ALARM 84 132 8 First entry is the current Outside Humidity setting
LOW_DEW_ALARM 8C 140 1 Threshold is (data value – 120) °F
HIGH_DEW_ALARM 8D 141 1 Threshold is (data value – 120) °F
CHILL_ALARM 8E 142 1 Threshold is (data value – 120) °F
HEAT_ALARM 8F 143 1 Threshold is (data value – 90) °F
THSW_ALARM 90 144 1 Threshold is (data value – 90) °F
SPEED_ALARM 91 145 1 Current Wind Speed alarm. Units are MPH
SPEED_10MIN_ALARM 92 146 1 10 minute average Wind Speed alarm. Units are MPH
UV_ALARM 93 147 1 Current UV index alarm. Units are (UV Index * 10)
LOW_SOIL_ALARM 95 149 4 Low soil moisture alarm in centibar. It supports four soil
moisture sensors.
HIGH_SOIL_ALARM 99 153 4 High soil moisture alarm in centibar. It supports four soil
moisture sensors.
LOW_LEAF_ALARM 9D 157 4 Low leaf wetness alarm with index 0 to 15. 0 is very dry
and 15 is very wet.
HIGH_LEAF_ALARM A1 161 4 High leaf wetness alarm with index 0 to 15. 0 is very dry
and 15 is very wet.
SOLAR_ALARM A5 165 2 Solar energy alarm is set with watts/meter2.
RAIN_RATE_ALARM A7 167 2 Rate rain alarm is set with inches/hour
RAIN_15MIN_ALARM A9 169 2 15-minute alarm is set with 100th of an inch.
RAIN_24HR_ALARM AB 171 2 24-hour alarm is set with 100th of an inch.
RAIN_STORM_ALARM AD 173 2 Rain storm alarm is set with 100th of an inch.
ET_DAY_ALARM AF 175 1 Evapotranspiration alarm is set with 1000th of an inch.
Log Average Temperature FFC 4092 1 Set this value to zero to enable logging of average
temperature values. A non-zero value causes the
temperature at the end of the archive period to be logged.
Password CRC FFE 4094 2 WeatherLink uses these two bytes to hold the CRC of a
password in order to provide some protection from
unauthorized access. This is only enforced by software
implementation. The value 0xFFFF indicates that no
password is set.
Page 41 of 59
1. Setting Temperature and Humidity Calibration Values
The 28 EEPROM bytes starting at address 50 (0x32) contain the calibration offsets for temperature and
humidity values. Unfortunately, if you modify these values in the EEPROM, the new calibration value
will not take effect until the next time the Vantage receives a data packet containing that temperature or
humidity value. In order to update the Vantage display with the new calibration values, you have to
follow this procedure.
Create a data structure to hold all of the calibration values, and one to hold the results of the "CALED"
command.
You can use the "EERD 32 2B" command if you want to, but it is harder to process.
You do not have to set all of the calibration values, but you do have to send all of the sensor data values
in the "CALFIX" command.
Daylight Savings
To set up the automatic daylight savings mode (works for US, Europe, and Australia), use the command
"EEWR 12 00" (or its "EEBWR" equivilant). To use manual daylight savings mode (or if daylight savings
is not used at all) use the command "EEWR 12 01".
If you have selected manual daylight savings mode, use the command "EEWR 13 00" to set standard
time and "EEWR 13 01" to set daylight savings time.
Time Zone
You can either choose a time zone from the list of timezones shown on the console time zone setup
screen, or you can set the GMT offset directly.
To use a preset time zone, write the zone index number from the table below into the TIME_ZONE
EEPROM field (i.e. "EEWR 11 xx"), and also write a zero into the GMT_OR_ZONE field (i.e. "EEWR 16
00").
Page 42 of 59
To use a custom time zone, write the GMT offset – in (hours * 100 + minutes), to a 15 minute
resolution, with negative values for time zones west of GMT – to the 2 byte GMT_OFFSET field. Also
write a one to the GMT_OR_ZONE field (i.e. "EEWR 16 01").
Table of preset time zones on the Vantage and WeatherLink software.
Index GMT Offset Name
0 -1200 (GMT-12:00) Eniwetok, Kwajalein
1 -1100 (GMT-11:00) Midway Island, Samoa
2 -1000 (GMT-10:00) Hawaii
3 -900 (GMT-09:00) Alaska
4 -800 (GMT-08:00) Pacific Time, Tijuana
5 -700 (GMT-07:00) Mountain Time
6 -600 (GMT-06:00) Central Time
7 -600 (GMT-06:00) Mexico City
8 -600 (GMT-06:00) Central America
9 -500 (GMT-05.00) Bogota, Lima, Quito
10 -500 (GMT-05:00) Eastern Time
11 -400 (GMT-04:00) Atlantic Time
12 -400 (GMT-04.00) Caracas, La Paz, Santiago
13 -330 (GMT-03.30) Newfoundland
14 -300 (GMT-03.00) Brasilia
15 -300 (GMT-03.00) Buenos Aires, Georgetown, Greenland
16 -200 (GMT-02.00) Mid-Atlantic
17 -100 (GMT-01:00) Azores, Cape Verde Is.
18 0 (GMT) Greenwich Mean Time, Dublin, Edinburgh, Lisbon, London
19 0 (GMT) Monrovia, Casablanca
20 100 (GMT+01.00) Berlin, Rome, Amsterdam, Bern, Stockholm, Vienna
21 100 (GMT+01.00) Paris, Madrid, Brussels, Copenhagen, W Central Africa
22 100 (GMT+01.00) Prague, Belgrade, Bratislava, Budapest, Ljubljana
23 200 (GMT+02.00) Athens, Helsinki, Istanbul, Minsk, Riga, Tallinn
24 200 (GMT+02:00) Cairo
25 200 (GMT+02.00) Eastern Europe, Bucharest
26 200 (GMT+02:00) Harare, Pretoria
27 200 (GMT+02.00) Israel, Jerusalem
28 300 (GMT+03:00) Baghdad, Kuwait, Nairobi, Riyadh
29 300 (GMT+03.00) Moscow, St. Petersburg, Volgograd
30 330 (GMT+03:30) Tehran
31 400 (GMT+04:00) Abu Dhabi, Muscat, Baku, Tblisi, Yerevan, Kazan
32 430 (GMT+04:30) Kabul
33 500 (GMT+05:00) Islamabad, Karachi, Ekaterinburg, Tashkent
34 530 (GMT+05:30) Bombay, Calcutta, Madras, New Delhi, Chennai
35 600 (GMT+06:00) Almaty, Dhaka, Colombo, Novosibirsk, Astana
36 700 (GMT+07:00) Bangkok, Jakarta, Hanoi, Krasnoyarsk
37 800 (GMT+08:00) Beijing, Chongqing, Urumqi, Irkutsk, Ulaan Bataar
38 800 (GMT+08:00) Hong Kong, Perth, Singapore, Taipei, Kuala Lumpur
39 900 (GMT+09:00) Tokyo, Osaka, Sapporo, Seoul, Yakutsk
40 930 (GMT+09:30) Adelaide
41 930 (GMT+09:30) Darwin
42 1000 (GMT+10:00) Brisbane, Melbourne, Sydney, Canberra
43 1000 (GMT+10.00) Hobart, Guam, Port Moresby, Vladivostok
44 1100 (GMT+11:00) Magadan, Solomon Is, New Caledonia
45 1200 (GMT+12:00) Fiji, Kamchatka, Marshall Is.
46 1200 (GMT+12:00) Wellington, Auckland
Page 43 of 59
3. Setting the Rain Collector type
The rain collector type is stored in the SETUP_BITS EEPROM data byte.
Page 44 of 59
The Transmitter type field is taken from either the Rev A or Rev B station type tables below, depending
on the firmware version date (April 24, 2002 and later use Rev B format).
The Tx period field will have one of these values: 0 = station turned off, 1 = ISS normal or Temp/Hum
4x, 4 = ISS 0.25x or Temp/Hum normal. Note that Vantage Pro2 does not support different transmit
period. It only supports normal ISS period.
For example, a normal ISS would have the value (0x10 + 0x00) = 0x10. An ISS station being used as an
extra Temp Hum station would have the value (0x10 + 0x03) = 0x13, and a standard Temp Hum station
would have the value (0x40 + 0x03) = 0x43.
The humidity sensor number and temperature sensor number fields are only used if the transmitter type
is a Temperature-Humidity station or a Temperature only station. These fields determine how the extra
temperature and humidity data values are logged. These fields are ignored for other station types.
Starting with ID 1, the first transmitter with an extra Humidity sensor should be assigned the value 1, the
second should have the value 2, etc.
In the same maner, the first extra temperature sensor should be assigned the value ZERO, the second
should have the value 1, etc.
The USETX field holds bitmapped information on the transmitters that the Vantage will actively listen
to. Bit 0 corresponds with ID 1, Bit 1 with ID 2, etc. Set this value after you have made any
modifications to the STATION_LIST field.
IMPORTANT!! You must use the "NEWSETUP" command after changing the transmitter ID or
retransmit settings. This allows the console to use the new settings.
Set Transmitters example (Rev B and VantagePro 2):
Index Contents Description
0 1 0 0x10 ID 1 = ISS
1 F F 0xFF
2 4 3 0x43 ID 2 = Temp/Hum
3 1 0 0x10
4 1 3 0x13 ID 3 = Temp/Hum 4x
5 2 1 0x21
6 1 8 0x18 ID 4 = Leaf/Soil
7 F F 0xFF
8 1 4 0x14 ID 5 = Wireles anemometer
9 F F 0xFF
10 0 A 0x0A ID 6 = Not used
11 F F 0xFF
12 0 A 0x0A ID 6 = Not used
13 F F 0xFF
14 0 A 0x0A ID 6 = Not used
15 F F 0xFF
USETX 0x1F
Page 45 of 59
List of Station Types (Rev A):
Station Name Station Type (hex) "standard" period
ISS 0 1
Temperature Only Station 1 4
Humidity Only Station 2 4
Temperature/Humidity Station 3 4
Wireless Anemometer Station 4 1
Rain Station 5 1
Leaf Station 6 1
Soil Station 7 1
SensorLink Station 8 1
No station – OFF 9 0
* Vantage Pro2 and Vantage Vue do not support the SensorLink station type.
Page 46 of 59
* The only station types supported by the Vantage Vue are: "ISS – Vantage Vue", "ISS – VP2",
"Wireless Anemometer", and "No Station – OFF".
Retransmit feature
To activate the retransmit feature of the console, write the ID number (1-8) that you would like the
Vantage to transmit on into the RE_TRANSMIT_TX field. This ID can not also be used to receive data
from a remote sensor. Use the value 0 to turn retransmit off.
IMPORTANT!! You must use the "NEWSETUP" command after changing the transmitter ID or
retransmit settings. This allows the console to use the new settings.
Page 47 of 59
Field Offset Size Explanation
HIGH_TEMP_ALARM 25 15 The temperature alarm is in 1 unsigned byte in 1 °F resolution.
It has an offset of +90°F so every number is positive. For
example -32°F would be stored as 58°F (-32 + 90). If the
alarm is not set, a 255 is stored. Bytes 0 to 6 are for the extra
temperature stations, bytes 7 to 10 are for the soil station
temperature, and bytes 11 to 14 are for the leaf station
temperature.
LOW_HUM_IN_ALARM 40 1 The humidity alarm is stored in 1 unsigned byte in 1%
resolution. A value of 255 indicates the alarm is not set.
HIGH_HUM_IN_ALARM 41 1 The humidity alarm is stored in 1 unsigned byte in 1%
resolution. A value of 255 indicates the alarm is not set.
LOW_HUM_ALARM 42 8 The humidity alarm is stored in 1 unsigned byte in 1%
resolution. A value of 255 indicates the alarm is not set. Note
that the first byte is for the ISS outside humidity.
HIGH_HUM_ALARM 50 8 The humidity alarm is stored in 1 unsigned byte in 1%
resolution. A value of 255 indicates the alarm is not set. .
Note that the first byte is for the ISS outside humidity.
LOW_DEW_ALARM 58 1 The dew alarm is in 1 unsigned byte in 1 °F resolution. It has
an offset of +90°F so every number is positive. For example -
32 °F would be stored as 58 °F. If the alarm is not set, a 255 is
stored.
HIGH_DEW_ALARM 59 1 The dew alarm is in 1 unsigned byte in 1 °F resolution. It has
an offset of +90°F so every number is positive. For example -
32 °F would be stored as 58 °F. If the alarm is not set, a 255 is
stored.
CHILL_ALARM 60 1 The chill alarm is in 1 unsigned byte in 1 °F resolution. It has
an offset of +90°F so every number is positive. For example -
32 °F would be stored as 58 °F. If the alarm is not set, a 255 is
stored.
HEAT_ALARM 61 1 The heat alarm is in 1 unsigned byte in 1 °F resolution. It has
an offset of +90°F so every number is positive. For example
THSW_ALARM 62 1 The temperature alarm is in 1 unsigned byte in 1°F resolution.
It has an offset of +90°F so every number is positive. For
example, -32°F would be stored as -32 plus 90, which is 58°F.
SPEED_ALARM 63 1 Wind speed alarm is stored in 1 unsigned byte in 1 mph
resolution. A value of 255 indicates the alarm is not set.
SPEED_10MIN_ALARM 64 1 10 minute average Wind Speed alarm is stored in 1 unsigned
byte in 1 mph resolution. A value of 255 indicates the alarm is
not set.
UV_ALARM 65 1 The UV alarm is stored in 1 unsigned byte in the units of .1
index. A value of 255 indicats no alarm is set.
UV_DOSE_ALARM 66 1 The UV exposure alarm threshold is stored in the
UV_DOSE_A_X location. However, this is an internal alarm
that must be set throught he console.
LOW_SOIL_ALARM 67 4 The soil moisture alarm is stored in 1 byte unsigned values
with resolution of 1 cb. A value of 255 indicates the alarm is
not set. There are four bytes for the soil alarm, one for each of
the four sensors.
HIGH_SOIL_ALARM 71 4 The soil moisture alarm is stored in 1 byte unsigned values
with resolution of 1 cb. A value of 255 indicates the alarm is
not set. There are four bytes for the soil alarm, one for each of
the four sensors.
Page 48 of 59
Field Offset Size Explanation
LOW_LEAF_ALARM 75 4 The leaf wetness alarm is stored in 1 byte unsigned value.
Leaf wetness ranges from 0 to 15. A value of 255 indicates
the alarm is not set. There are four bytes for the leaf alarm,
one for each of the four sensors.
HIGH_LEAF_ALARM 79 4 The leaf wetness alarm is stored in 1 byte unsigned value.
Leaf wetness ranges from 0 to 15. A value of 255 indicates
the alarm is not set. There are four bytes for the leaf alarm, one
for each of the four sensors.
SOLAR_ALARM 83 2 The solar radiation alarm is a 2 byte value stored in 1 W/m^2
resolution. Valid range is from 0 to 1800. A value of 0xffff
(65535) indicates the alarm is not set.
RAIN_RATE_ALARM 85 2 The rain rate alarm is a 2 byte value stored in units of .01 inch.
A value of 0xffff (65535) indicates the alarm is not set.
RAIN_15MIN_ALARM 87 2 The rain total alarm is stored in 2 bytes in the resolution of .01
inches. A value of 0xffff (65535) means no alarm is set.
RAIN_24HR_ALARM 89 2 The rain total alarm is stored in 2 bytes in the resolution of .01
inches. A value of 0xffff (65535) means no alarm is set.
RAIN_STORM_ALARM 91 2 The rain total alarm is stored in 2 bytes in the resolution of .01
inches. A value of 0xffff (65535) means no alarm is set.
ET_DAY_ALARM 93 1 The ET day alarm is stored in 1 unsigned byte in the resolution
of .01 inches. A value of 255 means no alarm is set.
The formulas for determining the expected maximum number of packets containing wind speed are:
archive_interval_min * 60 archive_interval_min * 60
(for Vantage Pro)
ID 1 50.0 ( ID 1) *1.25
2.5
16.0
or
archive_interval_min * 60
(for Vantage Pro2 and Vantage Vue)
41 ID 1
16
Here archive_interval_min is the archive interval in minutes and ID is the transmitter ID number
between 1 and 8.
It is possible for the number of wind samples to be larger than the "expected" maximum value. This is
because the maximum value is a long term average, rounded to an integer. The WeatherLink program
displays 100% in these cases (i.e. not the 105% that the math would suggest).
Page 49 of 59
Page 50 of 59
XV. EEPROM Graph data locations for Vantage Pro
Please note that some of the pointer values stored in the EEPROM may not be updated immediately,
such as NEXT_10MIN_PTR and NEXT_15MIN_PTR. This is done to save EEPROM write cycles,
since the EEPROM is good for 100,000 times of write. Those data will only be saved into the EEPROM
at the beginning of each new month or when the console goes into setup mode.
GRAPH_START 176
NEXT_10MIN_PTR GRAPH_START+1
NEXT_15MIN_PTR GRAPH_START+2
NEXT_HOUR_PTR GRAPH_START+3
NEXT_DAY_PTR GRAPH_START+4
NEXT_MONTH_PTR GRAPH_START+5
NEXT_YEAR_PTR GRAPH_START+6
NEXT_RAIN_STORM_PTR GRAPH_START+7
NEXT_RAIN_YEAR_PTR GRAPH_START+8
START GRAPH_START+9 = 185
// NUMBER NUMBER
// OF OF
// ENTRYS BYTES
// --------------
TEMP_IN_HOUR START + 0 // 24 || 1
TEMP_IN_DAY_HIGHS START + 24 // 24 || 1
TEMP_IN_DAY_HIGH_TIMES START + 48 // 24 || 2
TEMP_IN_DAY_LOWS START + 96 // 24 || 1
TEMP_IN_DAY_LOW_TIMES START + 120 // 24 || 2
TEMP_IN_MONTH_HIGHS START + 168 // 25 || 1
TEMP_IN_MONTH_LOWS START + 193 // 25 || 1
TEMP_IN_YEAR_HIGHS START + 218 // 1 || 1
TEMP_IN_YEAR_LOWS START + 219 // 1 || 1
Page 51 of 59
HEAT_MONTH_HIGHS START + 1048 // 25 || 1
HEAT_YEAR_HIGHS START + 1073 // 1 || 1
Page 52 of 59
SOLAR_HOUR_AVG START + 3067 // 24 || 2
SOLAR_DAY_HIGHS START + 3115 // 24 || 2
SOLAR_DAY_HIGH_TIMES START + 3163 // 24 || 2
SOLAR_MONTH_HIGHS START + 3211 // 25 || 2
SOLAR_YEAR_HIGHS START + 3261 // 1 || 2
Page 53 of 59
XVI. EEPROM Graph data locations for VP2
Please note that some of the pointer values stored in the EEPROM may not be updated immediately,
such as NEXT_10MIN_PTR and NEXT_15MIN_PTR. This is done to save EEPROM write cycles,
since the EEPROM is good for 100,000 times of write. Those data will only be saved into the EEPROM
at the beginning of each new month or when the console goes into setup mode.
#define GRAPH_START 176
NEXT_10MIN_PTR GRAPH_START+1
NEXT_15MIN_PTR GRAPH_START+2
NEXT_HOUR_PTR GRAPH_START+3
NEXT_DAY_PTR GRAPH_START+4
NEXT_MONTH_PTR GRAPH_START+5
NEXT_YEAR_PTR GRAPH_START+6
NEXT_RAIN_STORM_PTR GRAPH_START+7
NEXT_RAIN_YEAR_PTR GRAPH_START+8
// NUMBER NUMBER
// OF OF
// ENTRYS BYTES
// --------------
TEMP_IN_HOUR START + 0 // 24 || 1
TEMP_IN_DAY_HIGHS START + 24 // 24 || 1
TEMP_IN_DAY_HIGH_TIMES START + 48 // 24 || 2
TEMP_IN_DAY_LOWS START + 96 // 24 || 1
TEMP_IN_DAY_LOW_TIMES START + 120 // 24 || 2
TEMP_IN_MONTH_HIGHS START + 168 // 25 || 1
TEMP_IN_MONTH_LOWS START + 193 // 25 || 1
TEMP_IN_YEAR_HIGHS START + 218 // 1 || 1
TEMP_IN_YEAR_LOWS START + 219 // 1 || 1
Page 54 of 59
HEAT_HOUR START + 952 // 24 || 1
HEAT_DAY_HIGHS START + 976 // 24 || 1
HEAT_DAY_HIGH_TIMES START + 1000 // 24 || 2
HEAT_MONTH_HIGHS START + 1048 // 25 || 1
HEAT_YEAR_HIGHS START + 1073 // 1 || 1
Page 55 of 59
ET_DAY_TOTAL START + 2966 // 25 || 1
ET_MONTH_TOTAL START + 2991 // 25 || 2
ET_YEAR_TOTAL START + 3041 // 25 || 2
SAVE_MIN RX_PERCENTAGE+25
SAVE_HOUR SAVE_MIN+1
SAVE_DAY SAVE_HOUR+1
SAVE_MONTH SAVE_HOUR+2
SAVE_YEAR SAVE_HOUR+3
SAVE_YEAR_COMP SAVE_HOUR+4
BAUD_RATE SAVE_HOUR+5
DEFAULT_RATE_GRAPH SAVE_HOUR+6
LCD_MODEL SAVE_HOUR+8
LCD_MODEL_COMP SAVE_HOUR+9
LOG_AVERAGE_TEMPS SAVE_HOUR+11 // MUST BE AT 4092
Page 56 of 59
XVII. EEPROM Graph data locations for Vue
NEXT_10MIN_PTR GRAPH_START+1
NEXT_15MIN_PTR GRAPH_START+2
NEXT_HOUR_PTR GRAPH_START+3
NEXT_DAY_PTR GRAPH_START+4
NEXT_MONTH_PTR GRAPH_START+5
NEXT_YEAR_PTR GRAPH_START+6
NEXT_RAIN_STORM_PTR GRAPH_START+7
NEXT_RAIN_YEAR_PTR GRAPH_START+8
// NUMBER NUMBER
// OF OF
// ENTRYS BYTES
// --------------
#define TEMP_OUT_HOUR START + 0 // 25 | 2
#define TEMP_OUT_DAY_HIGHS START + 50 // 25 | 2
#define TEMP_OUT_DAY_LOWS START + 100 // 25 | 2
#define TEMP_OUT_MONTH_HIGHS START + 150 // 26 | 2
#define TEMP_OUT_MONTH_LOWS START + 202 // 26 | 2
#define TEMP_OUT_YEAR_HIGHS START + 254 // 1 | 2
#define TEMP_OUT_YEAR_LOWS START + 256 // 1 | 2
#define TEMP_OUT_DAY_HIGH_TIMES START + 258 // 25 | 2
#define TEMP_OUT_DAY_LOW_TIMES START + 308 // 25 | 2
Page 57 of 59
#define HUM_IN_MONTH_LOWS START + 1272 // 26 | 1
#define HUM_IN_YEAR_HIGHS START + 1298 // 1 | 1
#define HUM_IN_YEAR_LOWS START + 1299 // 1 | 1
Page 58 of 59
#define COOLING_DD_BASE END_OF_GRAPHS
#define HEATING_DD_BASE END_OF_GRAPHS+2
#define COOLING_DD END_OF_GRAPHS+4
#define HEATING_DD END_OF_GRAPHS+8 // 4 bytes long
#define LCD_VOLUME_OFFSET END_OF_GRAPHS+12
#define LCD_VOLUME_OFFSET_COMP END_OF_GRAPHS+13
#define SAVE_TODAYS_HIGHS_LOWS END_OF_GRAPHS+14
#define END_OF_TODAYS_HIGHS_LOWS SAVE_TODAYS_HIGHS_LOWS+68 // Start 1 after this (3552)
#define WIND_CAL 4000
#define KEY_TEST_PASSED 4002
Page 59 of 59