Reading the ARSSI pin on the Si4221/HopeRF 12B

The Si4221 has a digital received signal strength indicator (RSSI). You can set a threshold in the configuration and the pin will go low when that threshold has been broken. It is handy but not as useful as an analog signal. Luckily, the Si4221 also has an analog signal.

There has been a bunch written about this signal. You can read about it here (German, with photo), here and here. There is work to translate this signal to an OOK scheme.

You need to attach a small capacitor to PIN 15. The datasheet recommends a value of 1nF or larger. I contacted Silicon Labs’ tech support and they recommend a 10nF for a 1ms sampling time. They also said that the signal will be relatively noisy as the cap charges/discharges (~10/15 mV) so it is best to smooth the readings over several samples. They said you could use as small as a 1nF cap, for faster sampling, but the noise will be greater. Just to make it clear, the HopeRF datasheet recommends a 4.7nF cap.

The ARSSI value will change from chip to chip so for absolute measurements, you’ll need to do some characterization. For relative signal strength, it should be fine as the signal stays linear.

I was sent the following graph:

As you can see, the voltage is going to range between 300-1300mV. Interestingly, the graph in the datasheet is slightly different:


where the range is 450-1150mV over the same -100dbm to -65dbm.

I connected a wire to the side of the 4.7uF cap that is on the RF12B module to an analog pin. I got around the range expected when receiving packets (I had the node set as 31 so it was looking for all packets for its group). I seems not to be so useful as you would need to poll it constantly when receiving packets and who knows, it might get in the way of getting that packet or ACK.

Tags: , ,