Clifton Laboratories 7236 Clifton Road  Clifton VA 20124 tel: (703) 830 0368 fax: (703) 830 0711

E-mail: Jack.Smith@cliftonlaboratories.com
 

 

To search within the Clifton Laboratories site, enter your search term below.
 

 


Home
Up
Updates
Current Products
Prior Products - no longer available
Documents
Book
Software Updates
Softrock Lite 6.2
Adventures in Electronics and Radio
Elecraft K2 and K3 Transceivers

 

Radio Intelligence Example

Having access to Mike, W4XN's, Watkins Johnson 8617B surveillance receiver, I  thought it might be interesting to show what one might do with the 8617B and perhaps indicate why these receivers are made.

We'll use a mundane example, the wireless data system used  by Davis Instruments in its Vantage Pro (not the Vantage Pro II, but the out-of-production original Vantage Pro) weather station that I own.

Our analysis will be based on the published information released by Davis, supplemented with our off-the-air analysis.

The Vantage Pro manual says that the wireless link operates on 916.5 MHz at an output power of 1 mw maximum. Setting the 8617B to 916.5 MHz, AM mode, 100 KHz bandwidth reveals data bursts occurring every couple seconds. Based on the published frequency and signal strength, this signal is, with high probability, originating from my weather station. (I've set up the weather station to enable the indoors console as a repeater. Hence we expect two digital packets, one direct from the outdoor sensor unit, or the ISS (integrated sensor suite) in Davis's terminology, and a second packet from the console, repeating  the ISS data.

To obtain a quick view of the pulse waveform, I tuned the Advantest R3463 spectrum analyzer to 916.5 MHz, added a broadband preamplifier and connected it to the discone antenna. By operating the spectrum analyzer in zero span mode, we obtain a plot of signal amplitude versus time.  Unfortunately, the choice of sweep speeds is limited, and the fastest speed is 5 ms/division or 50 ms for the entire 10 division sweep.

A typical data burst is shown below.

Even this preliminary view of the signal is useful. First, the visible databurst is about 11.4 ms long. (Marker 1 is at the trailing edge of  the burst.)  The modulation mode appears to be OOK or ASK or "on/off keying" or "amplitude shift keying" which are fancy  terms for keying the 916.5 MHz carrier on/off to transmit data.

The shortest data elements look to be on the order of a few hundred microseconds

 
For a better look at the data, we can use the 8716B's video output port and a digital oscilloscope, in this case a Tektronix TDS430A.

The image below shows the video output. Note that the video is, following tradition, negative, with no signal represented by 0 volts and signal represented by a negative voltage. (The video polarity is switch selectable between positive and negative, and later in the analysis, I switched to positive video for reasons discussed later.) Compared with the spectrum analyzer's display, the 8617B and digital oscilloscope provide a much better analysis starting point. The 8617B is set for AM reception, AGC to off, bandwidth at 100 KHz.

 


Measuring the pulse width shows 204 microseconds. The designer probably made the pulse with 200 us nominal width. A careful measurement of pulse width and packet repetition frequency might, for example, help us differentiate between multiple  transmitters of otherwise similar characteristics.
 
I made a single data capture, expanded into two overlapping screens for a more detailed examination.
 
I printed these two images oversize, and cut and taped the two into a single large image of the data packet for manual analysis.

The manual analysis shows 58 data bits as the tentative packet length. This assumes that the trailing 0 is actually a single bit. At this point, my working assumptions include:
  • Zero signal corresponds to logic 0. (No way to confirm this, but the analysis works either way)
  • The receiver has to know when a data packet begins. This can be done synchronously, where the transmitter and receiver have synchronized clocks, or asynchronously, where there is a defined start symbol. For a moderately priced consumer weather station, we can immediately discard the synchronous transmission possibility. The most logical design uses a logic 1 or high transmitter output to indicate start of data transmission.
  • I count 57 bits with the start bit as no. 1. The 58th bit is the start of the no signal indication that continues until the next packet.
  • We cannot distinguish between a packet length of 57 or some greater number where the data sample just happens  to end in a sequential string of 0s. We need more samples for this determination.

Information on the transmitting ISS is  that it has the following sensors:

  • Temperature
  • Humidity
  • Wind speed
  • Wind direction
  • Rain bucket

Davis has several optional sensors that plug into the ISS, such as ultraviolet sun intensity, leaf moisture, soil moisture and the like. These inputs are open in my ISS.

One final point is that the ISS has a transmitter ID switch, selectable from 1...8. My ISS is set for ID = 1.

Rather than continue the manual capture and hand analysis of the data, I decided to automate the process. I first adjusted the 8617B's video polarity switch to positive for better compatibility with the digital world. I  then connected the video output, which runs 0...7 volts or so, to an input pin on a Microchip 18F4620 PIC, taking care to use a series resistance of 2.7K to prevent over-voltage damage to the PIC's input. (The PIC is built with diode clamps to Vdd and Vss on every pin, so a series  resistor is sufficient to limit the current to a safe value.)

I then wrote, using Swordfish BASIC, a capture and analysis program. The program has several outputs, including one that samples the data input state every 50 microseconds, and one that reads the data and converts it to  bytes, based upon the measured bit length.

The data sampler, for example, can have the output put into Excel, where a semi-automated version of the paper and pencil analysis shown above can be implemented. The sample below shows the first 1000 microseconds of input. With a 200 microsecond  bit length and 50 microsecond sampling, the data corresponds to 11110.

     
Sample No Value Consecutive  
0 1 16  
1 1  
2 1  
3 1  
4 1  
5 1  
6 1  
7 1  
8 1  
9 1  
10 1  
11 1  
12 1  
13 1  
14 1  
15 1  
16 0 4  
17 0  
18 0  
19 0  

The decoding program is based on 64 bit packets, or 8 bytes. This is usable although the data suggests the packet length is perhaps 57 or 58 bits in length because at most the 64 bit assumption means the last byte has extra trailing zeros. These will not get in the way of the analysis.

As I've mentioned, there are two packets sharing the channel, one directly from the ISS and one from the indoor console repeating the ISS data. The console is set to repeat as "channel 2" and the ISS is "channel 1" but in fact both share the same RF channel. The difference between channels 1 and 2 is in the identification transmitted within the packet and the packet repetition rate (more about the later to follow.)

The data is organized in the  table below so that packets on the same line are roughly contemporaneous.

There's a  great deal of information that may be discerned from the hex dump, but most of it would  take more work than I care to put into it. A few things jump out, however.

  • Source A packets always start with the leading nibble as a hex B.
  • The second nibble has a repeating pattern (not perfectly)
  • The second byte is always 3F
  • The  third byte is (one exception) always 5D.
  • Source B packets always start with F leading nibble
  • The second nibble has a repeating pattern 8,5,x,E where x is not always the same character.
  • Like Source A, the 2nd and 3rd bytes are 3F and F6.
  • The 4th byte is more or less common between Source A and B with some chronological offset.
  • The 5th and 6th bytes do not show much commonality between Source A and Source B.

It's very likely that the leading nibble is tied to the channel ID. With 8 potential channels, three bits would be enough. There might be, in addition, a leading "1" used as a starting pulse, to mark the start of  transmisison. In this case, we would expect the channel numbers  to run from 1000 to 1111 or in hex 8 to F. With channels 1 and 2, the first nibble would thus be 1001 and 1010, or hex 9 and A. This simplistic coding example seems not to be the case here, however.

Packets from Source A

B6 3F F6 5D FF BD E9 6C
BE 3F F6 5D C B8 6F 90
B8 3F F6 5D FE A5 AE 4
B5 3F F6 5D 0 32 2C 9C
BC 3F F6 5D FF AE AB F4
BE 3F F6 5D C B8 6F 90
B8 3F F6 5D FE A5 AE 4
B5 3F F6 5D 0 32 2C 9C
BA 3F F6 5D 33 AB 28 94
BE 3F F6 5D C BB 69 10
B3 3F F5 41 BF B4 D 8
B1 3F F6 5D CD 31 6D 4
B4 3F F7 DD 7 B3 E9 98
BE 3F F6 5D C BB 69 10
BE 3F F6 5D C BB 69 10
B5 3F F6 5D 0 32 2C 9C
BD 3F F6 5D 0 38 28 0
BE 3F F6 5D C BB 69 30
B8 3F F6 5D FE A5 AE 4
B6 3F F6 5D FF BD E9 6C
B8 3F F6 5D FE A5 AE 4
B5 3F F6 5D 0 32 2C 9C
BC 3F F6 5D FF AE AB F4
BE 3F F6 5D C BB 69 10
B8 3F F6 5D FE A5 AE 4
B5 3F F6 5D 0 32 2C DC
BA 3F F6 5D 63 A3 28 98
BE 3F F6 5D C BB 69 10
B2 3F F6 81 68 A9 AC 84
B3 3F F5 41 BF B4 D 8
B1 3F F6 5D ED 31 6D 4
BE 3F F6 5D C BB 69 30
B8 3F F6 5D FE A5 AE 4
B5 3F F6 5D 0 32 2C 9C
BD 3F F6 5D 0 38 28 0
BE 3F F6 5D C BA EA 70
B8 3F F6 5D FE A5 AE 4
B5 3F F6 5D 0 32 2C 9C
B6 3F F6 5D FF BD E9 6C
BE 3F F6 5D C BA EA 70
B8 3F F6 5D FE A5 AE 4
B5 3F F6 5D 0 32 2C DC
BC 3F F6 5D FF AE AB F4
BE 3F F6 5D C BA EA 70
B8 3F F6 5D FE A5 AE 4
B5 3F F6 5D 0 32 2C DC
BA 3F F6 5D E3 A1 2C 74
BE 3F F6 5D C BA EA 70
B4 3F F7 DD 7 B3 E9 98
B2 3F F6 81 68 A9 AC C4
B3 3F F5 41 BF B4 D 8
BE 3F F6 5D C BA EA 70
B8 3F F6 5D FE A5 AE 4

 

Packets from Source B

F8 3F F6 5D FE A7 A8 EC
F5 3F F6 5D 0 30 2A 74
FC 3F F6 5D FF AC AD 1C
FE 3F F6 5D C BA 69 78
F8 3F F6 5D FE A7 A8 EC
F5 3F F6 5D 0 30 2A 74
FA 3F F6 5D 33 A9 2E 7C
FE 3F F6 5D C B9 6F F8
F8 3F F6 5D FE A7 A8 EC
F5 3F F6 5D 0 30 2A 74
F9 3F F6 5D 0 2E 6E 74
FE 3F F6 5D C B9 6F F8
F8 3F F6 5D FE A7 A8 EC
F5 3F F6 5D 0 30 2A 74
FD 3F F6 5D 0 3A 2E E8
FE 3F F6 5D C B9 6F F8
F8 3F F6 5D FE A7 A8 EC
F5 3F F6 5D 0 30 2A 74
F6 3F F7 DD FF AD EB 98
F8 3F F6 5D FE A7 A8 EC
FE 3F F6 5D C B9 6F F8
F5 3F F6 5D 0 30 2A 74
FC 3F F6 5D FF AC AD 1C
FE 3F F6 5D C B9 6F F8
F8 3F F6 5D FE A7 A8 EC
F5 3F F6 5D 0 30 2A 74
FA 3F F6 5D 43 A1 2E 70
FE 3F F6 5D C B9 6F F8
F8 3F F6 5D FE A7 A8 EC
F5 3F F6 5D 0 30 2A 74
F9 3F F6 5D 0 2E 6E 74
FE 3F F6 5D C B9 6F F8
F8 3F F6 5D FE A7 A8 EC
F5 3F F6 5D 0 30 2A 74
FD 3F F6 5D 0 3A 2E E8
FE 3F F6 5D C B8 EC B8
F8 3F F6 5D FE A7 A8 EC
F5 3F F6 5D 0 30 2A 74
F6 3F F7 DD FF AD EB 98
FE 3F F6 5D C B8 EC 98
F8 3F F6 5D FE A7 A8 EC
F5 3F F6 5D 0 30 2A 74
FC 3F F6 5D FF AC AD 1C
FE 3F F6 5D C B8 EC 98
F8 3F F6 5D FE A7 A8 EC
F5 3F F6 5D 0 30 2A 74
FA 3F F6 5D C3 A3 2A 9C
FE 3F F6 5D C B8 EC 98
F8 3F F6 5D FE A7 A8 EC
F5 3F F6 5D 0 30 2A 74
F9 3F F6 5D 0 2E 6E 74
FE 3F F6 5D C B8 EC 98
F8 3F F6 5D FE A7 A8 EC

 

From observing the weather station reports, the following seems true.
  • The rain bucket uses some sort of cumulative reporting, i.e., the radio packets do not just  report 0.01 inches of rain recorded in this packet (0.01 inches represents one tip of the tipping bucket measuring mechanism.) This is the case because otherwise a single lost packet would cause a perpetual error. I've seen the radio link be lost for some minutes during rain and the data is not lost. I assume, therefore, that what is reported is the total number of bucket tips in, for example, a 16 bit format with rollover. The receiving console or Weather Envoy then reports the increment in total bucket tips since the last valid reception.
  • Some data seems is  reported more frequently than others. Wind speed, for example, is updated much more frequently than seem to be updated more frequently than rainfall and temperature, as shown in the table below. It seems, therefore that there are perhaps three different data payloads  transmitted: wind, rain/temperature and humidity/UV/solar.
  • Temperature data is in 0.1 degree F intervals, and humidity is in 1% steps.

Since the basic packet transmission rate is approximately 2.5 seconds, one out of four packets should carry rainfall and temperature data. The weather conditions for the data presented above were zero rainfall and relatively steady temperature.

ISS Weather Variable Update Intervals

Wind speed: . . . . . . . . . . . . . . . . 2.5 to 3 seconds

Wind direction: . . . . . . . . . . . . . . . 2.5 to 3 seconds

Accumulated rainfall: . . . . . . . . . . 10 to 12 seconds

Rain rate: . . . . . . . . . . . . . . . . . . . 10 to 12 seconds

Outside temperature: . . . . . . . . . . 10 to 12 seconds

Outside humidity: . . . . . . . . . . . . . 50 seconds to 1 minute

Ultraviolet radiation: . . . . . . . . . . . 50 seconds to 1 minute

Solar radiation: . . . . . . . . . . . . . . 50 seconds to 1 minute

The hex data was collected at approximately 9:30 - 10 AM on July 2nd 2008. The  graph below shows the outdoor temperature during this period. Barometric pressure is collected from an indoor sensor.
 

 

I'll leave it as an exercise to the interested reader to see if the temperature and humidity data can be teased out of  the hex dump.

 

Finally, we can look at the packet repetition interval and inter-packet interference.

Davis provides a table relating the number of wind speed packets to the channel ID

Expected number of Wind Speed packets

VantagePro 1

Archive Interval (min)

Tx ID 1   5    10   15   30   60  120
1     23  114  228  342  684 1368 2736
2     22  111  222  333  667 1335 2670
3     22  108  218  326  652 1302 2606
4     21  106  212  318  637 1273 2545
5     21  104  207  311  622 1244 2487
6     20  102  202  304  608 1216 2432
7     20   99  199  297  595 1189 2379
8     19   97  194  291  582 1165 2328

 

In 120 minutes, channel 1 will have 2736 transmissions whilst channel 2 will have 2670 transmissions. This corresponds to an inter-packet transmission period of 2.6316 seconds (Ch. 1) and 2.6967 seconds (Ch. 2), with a differential between the two of 65.0 milliseconds.

Two free running packet systems with these parameters will have a collision (packets from the two sources overlap) approximately 2.6 sec / 0.065 seconds or once every 40 transmissions, or once every 104 seconds.

The following three images show this. The three consecutive images show the ISS and repeater packets getting closer in time and, in the third image, interfering with each other.

Timing the interval between packet collisions with a stop watch produced the expected 104 second period within small margin of error.

 

The reason for making each packet channel operate with a slightly different repetition rate is to statistically distribute interference. (The Vantage Pro II uses frequency hopping as an additional interference control measure.)

Since the older Vantage Pro equipment I have uses a single RF channel, sharing amongst multiple weather stations uses a different approach. (The ISS transmitter has a "channel set" DIP switch, whilst the console and Weather Envoy set channels via software. These are logical channels, as all the gear operates on a single frequency, 916.5 MHz.) With a short burst transmission, 12 ms or so every 2.6 seconds, there's a good chance that transmissions from two ISS units will not overlap. However, Davis has added an additional anti-interference measure. Each logical channel has a slightly different frame rate, i.e., the data bursts are transmitted at slightly different intervals. Logical Channel 1 bursts are, say, 2.6 seconds apart, whilst logical channel 2's bursts are 2.7 seconds apart. (close to the actual values). This avoids the statistical chance that if two Vantage Pros are nearby, and both have the same burst rate, they could be in perfect synchronization so that every data burst from one transmitter interfered with the second. Given component tolerance and temperature drift, that's not likely, but it does mean that there could be longish periods where the two were close enough in synchronization to have the bursts overlap, at least in part. If the two transmitters, in contrast, start in synchronization but with intentionally slightly different burst periods, they will drift in and out of mutual interference. If the burst periods are selected with sufficient care, this may provide quite useful periods of interference free operation compared with the "all transmitters use the same burst rate" approach.