• Increase font size
  • Default font size
  • Decrease font size
Home Publications

Calibrating RSSI values reported by CC2420 radios

E-mail Print PDF

The IEEE 802.15.4 standard specifies that a radio's PHY layer must provide an 8-bit integer value as an estimate of the received signal power. This value is commonly known as the Received Signal Strength Indication (RSSI) in the wireless sensor networks (WSN) community. While many protocols directly use the measurements that the radios provide, the standard only requires that the reported RSSI values should be linear and within ±6 dB of the actual RSSI values. However, ±6 dB is a wide error margin. For example, Packet Reception Ratio (PRR) can decrease from 100% to 0% with a 2 or 3 dB difference in the received signal strength. We examined two 802.15.4 compliant radios, the widely used TI CC2420 and Atmel AT86RF230, and discovered that they indeed introduce systematic errors when providing the RSSI readings. Therefore, we also developed a calibration scheme to effectively minimize the adverse effects associated with inaccurate RSSI values.


0. Brief Introduction

This page is dedicated to illustrate the calibration technique proposed in our EWSN'10 paper. The paper lists the results of applying the calibration technique in several areas such as PRR-SNR modeling, PRR-SINR modeling, WSN simulation, radio propagation model parameters estimation and RF-based localization.

Click here to download the RSSI data points that we used to draw the CC2420 reference curve. In the txt file, the first column is the calibrated RSSI and the second column is the RSSI reported by the CC2420 radio. They correspond to the x-axis and y-axis of the reference curve respectively.

The slides are available here.

1. RSSI Response Curves

A RSSI response curve is derived by recording the RSSI values output by the radio chip at various input radio powers. In specific, the X-axis shows the actual radio power and the Y-axis shows the corresponding RSSI readings output by the radio chip. The CC2420 datasheet includes a coarse RSSI response curve as follows. The datasheet concludes that the RSSI readings are very linear.

We tested the RSSI response curves for 12 Tmote Sky motes and 2 MICAz motes. All the curves are very similar and we derived a single reference curve for CC2420 radio which is shown below. This curve gives the mapping from raw RSSI values (Y-axis) to calibrated RSSI values (X-axis).

Click here to download the RSSI data points that we used to draw the reference curve. Specifically, the txt file contains two columns. The first column is the calibrated RSSI and the second column is the RSSI reported by the CC2420 radio. They correspond to the x-axis and y-axis on the figure respectively.

2. Calibrating RSSI

The CC2420 reference curve can directly be used to calibrate RSSI values. Suppose CC2420 tells us the RSSI value is b, then we can plot a point (0,b) on the Y-axis, as shown in the figure below. Next, we can find the correponding point on the reference curve, and in turn find the corresponding point on the X-axis, say (a,0). Now, the calibrated RSSI is a. In this particular example, a=-50dBm. When using the data points that we provide, one can do interpolation to compute the corresponding X-axis value.

The problem with the above approach is that there are two non-monotonic regions on the reference curve. As a result, when we try to find a corresponding X-axis value for a given y value, there could be multiple candidates. The following graph labels these two non-monotonic regions.

In order to find the true X-axis value, the receiver now needs the sender to cooperate, such that the multipoint calibration process as shown below would be possible.

1) Sender puts the transmission power info in a packet. 3 bits are needed when using CC2420 due to 8 transmission power levels.

2) After receiving several packets that were transmitted at different power levels from the same sender, the receiver can start calibrating in the following three steps.

(a) Plot 8 points on the graph where each point represents a packet that was transmitted at a given power level.
(b) Put the 8 points on the reference graph, while keeping the relative locations among those points unchanged. Note that the raw RSSI values of those packets determine the locations of those points along the Y-axis direction on both graphs.
(c) Move along the X-axis to find the best fit, and the corresponding X-axis values would be the calibrated RSSI for those packets.

3. Brief Discussion

  • The multipoint calibration is needed due to the non-monotonic regions of CC2420. Therefore, it is not necessary for other radio chips that do not have such non-monotonic regions, such as AT86RF230. Nevertheless, multipoint calibration can still be used to increase the calibration accuracy.
  • A minimum of 2 points should usually be sufficient to do the multipoint calibration. More points would lead to higher accuracy.
  • RSSI is an 8-bit integer, but we can get sub-integer RSSI value by averaging multiple RSSI readings.

4. Reference

  • Yin Chen, Andreas Terzis, On the Mechanisms and Effects of Calibrating RSSI Measurements for 802.15.4 Radios. Appeared in the proceedings of the 7th European Conference on Wireless Sensor Networks (EWSN 2010). PDF Slides BibTex