|
Home Updates Prior Products - no longer available Documents Book Modulation Loads Lattice Crystal Filter IMD Measurements Using LP100 Coupler Prototyping Software Updates K2 Measurements Oscillator Noise Measurements Bypassing Capacitor Voltage Change K2 Freq Stability Cohn Crystal Filter Receiver AGC Curves K2 RX Sensitivity Canned Osc Phase Noise K2 Interface K2 Filter Surface Mount Assembly TL750L Low Dropout Regulator Swordfish DDS Swordfish GLCD Module Bessel Nulls AM Modulation Z10000 with FT-920 Z100 Tuning Aid Dayton 2007 Softrock Lite 6.2 Header Adapter Carbon Composition Resistors Thermometers Hakko FT-800 Thermal Wire Stripper Heat Sinks Diode Turn-On Time Bill Hewlett and his Magic Lamp Tektronix P6022 Current Probe 1N400x Diode Family Forward Voltage Temperature Chamber Diode Vf vs If Ferrite Transformers 6 dB Hybrid Combiner Type 43 Ferrite B-H Curve K3 IF Bandpass Filter Estimating Q of Ferrite Cores Z10000 Buffer Amp Z10010 Bandpass Filter Using Softrock as a Panadapter for the K2 Signal Generator Phase Noise & Elecraft K2 Audio Transformer Data and Modeling Measuring 60 Hz Frequency Compact Fluorescent Lamp Z10000-U Buffer Amp and FT-1000MP WJ-8617B Receiver Impressions Weather in Clifton VA Radio Intelligence Example Diodes for RF Probes PIC Development Boards and Programmers Elecraft K3 and Panadapters Elecraft K3 AGC and S-Meter Elecraft K3 Noise Blanker and Crystal/DSP Filtering Jackson Harbor Press VLF Converter Elecraft K3 Receive Audio Headphone Impedance
| |
|
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 |
| | |