Monday 13 March 2023

Setting Receive Sensitivity and Transmit Power on Impinj Readers using LLRP

 When configuring the Impinj RAIN RFID readers, one of the most common questions is how to set the Receive Sensitivity and Transmit Power settings. This article describes how to set those settings using LLRP, such as in the Octane LTK.

These settings are configured in the C# code sample below using the SET_READER_CONFIG class of the AntennaConfiguration message. You can override these settings in each antenna AI Spec using the AddROSpec code via SET_READER_CONFIG message.

For both Receive Sensitivity and Transmit Power settings, you will use the index (not the literal Receive Sensitivity/Transmit Power value) to configure those settings in LLRP. Therefore, it is important that you identify the correct index first.

Note: In the Octane SDK, you will use the literal value when configuring the Receive Sensitivity/Transmit Power settings.

If you want to jump to the Index-Value tables and quickly look up the correct index for the Receive Sensitivity and Transmit Power settings, click here.

Although the Receive Sensitivity and Transmit Power can be set independently on each antenna port of the reader, this example configures all of them the same by using the antenna Id value zero (0).

Setting Receive Sensitivity

If you want to set Receive Sensitivity, you have to identify the correct Index to input.

If we query the capabilities of the reader using the RShell command ">show rfid llrp capabilities", we can see the Receive Sensitivity Table, part of which is shown here:

<ReceiveSensitivityTableEntry>
<Index>1</Index>
<ReceiveSensitivityValue>0</ReceiveSensitivityValue>
</ReceiveSensitivityTableEntry>
<ReceiveSensitivityTableEntry>
<Index>2</Index>
<ReceiveSensitivityValue>10</ReceiveSensitivityValue>
</ReceiveSensitivityTableEntry>
<ReceiveSensitivityTableEntry>
<Index>3</Index>
<ReceiveSensitivityValue>11</ReceiveSensitivityValue>
</ReceiveSensitivityTableEntry>

Each Index is associated with a ReceiveSensitivityValue, which you can use to help you find the correct index.

The ReceiveSensitivityValue is the offset in dB that the reader will implement from its lowest (i.e. most sensitive) receive sensitivity to filter out tag reads if their RSSI is too low. The ReceiveSensitivityValue is 0 by default, which means that the reader is at its lowest receive sensitivity and won’t filter out tag reads.

Translating the ReceiveSensitivityValue to the true receive sensitivity setting in dBm requires that the user know the reader’s lowest possible sensitivity value. The basic equation is as follows:

  • Receive Sensitivity = ReceiveSensitivityValue + Reader Lowest Receive Sensitivity

(Note: the Reader Lowest Receive Sensitivity is always a negative number.)

For Impinj Speedway RAIN RFID readers, the lowest receive sensitivity is -80 dBm, and for Impinj R700 RAIN RFID readers, the lowest receive sensitivity is -90 dBm. For each index, you can calculate the actual sensitivity setting on the reader as follows:

Impinj Speedway readers (R120, R220, R420)

Receive Sensitivity = ReceiveSensitivityValue + (-80 dBm)

<Example>
Index 1 -> ReceiveSensitivityValue 0 -> 0 + (-80) = -80 dBm
Index 2 -> ReceiveSensitivityValue 10 -> 10 + (-80) = -70 dBm
Index 3 -> ReceiveSensitivityValue 11 -> 11 + (-80) = -69 dBm
Index 4 -> ReceiveSensitivityValue 12 -> 12 + (-80) = -68 dBm
(Continues on in 1dB steps up to Index 42)
Index 42 -> ReceiveSensitivityValue 50 = 50 + (-80) = -30dBm (the highest, least sensitive setting)

For Impinj Speedway readers, Index 1 is associated with the lowest receive sensitivity, ReceiveSensitivityValue 0, or -80 dBm. The next lowest receive sensitivity, Index 2, is associated with ReceiveSensitivityValue 10, or -70 dBm, a 10 dB jump higher in receive sensitivity.

(Note: There are no selectable receive sensitivity values between -80 dBm and -70 dBm.)

Each index following Index 2 increases by 1 dB until the user reaches Index 42, associated with ReceiveSensitivityValue 50, or -30 dBm, the highest, least sensitive reader sensitivity setting.

Impinj R700 readers

Receive Sensitivity = ReceiveSensitivityValue + (-90 dB)

<Example>
Index 1 -> ReceiveSensitivityValue 0 -> 0 + (-90) = -90 dB
Index 2 -> ReceiveSensitivityValue 10 -> 10 + (-90) = -80 dB
Index 3 -> ReceiveSensitivityValue 11 -> 11 + (-90) = -79 dB
Index 4 -> ReceiveSensitivityValue 12 -> 12 + (-90) = -78 dB
(Continues on in 1dB steps up to Index 52)
Index 52 -> ReceiveSensitivityValue 60 = 60 + (-90) = -30dB (the highest, least sensitive setting)

For Impinj R700 readers, Index 1 is associated with the lowest receive sensitivity, ReceiveSensitivityValue 0, or -90 dBm. The next lowest receive sensitivity, Index 2, is associated with ReceiveSensitivityValue 10, or -80 dBm, a 10 dB jump higher in receive sensitivity.

(Note: There are no selectable receive sensitivity values between -90 dBm and -80 dBm.)

Each Index following Index 2 increases by 1 dB until the user reaches Index 52, associated with ReceiveSensitivityValue 50, or -30 dBm, the highest, least sensitive reader sensitivity setting.

Setting Transmit Power

Transmit power is a little more straightforward. Each Index is associated with a TransmitPowerValue, which is equal to the Transmit Power in dBm multiplied by 100.

<TransmitPowerLevelTableEntry>
<Index>1</Index>
<TransmitPowerValue>1000</TransmitPowerValue>
</TransmitPowerLevelTableEntry>
<TransmitPowerLevelTableEntry>
<Index>2</Index>
<TransmitPowerValue>1025</TransmitPowerValue>
</TransmitPowerLevelTableEntry>
<TransmitPowerLevelTableEntry>
<Index>3</Index>
<TransmitPowerValue>1050</TransmitPowerValue>
</TransmitPowerLevelTableEntry>

<Example>
An Index of ‘1’ is associated with TransmitPowerValue of 1000 or +10.00 dBm (the lowest transmit power on both the Impinj R700 readers and the Impinj Speedway readers). Each step in the index table increases the transmit power value by 0.25dB up to the maximum power, according to the following tables:

Note: The following tables show only the reader's maximum hardware capabilities. For the actual implementation in each country/region, please make sure to comply with the local RFID regulations for the maximum allowed transmit power.

If you want to jump to the Index-Value tables and quickly look up the correct index for the Transmit Power settings, click here.

Impinj Speeday R420 and R220 (dBm)

 FCC, GX1, 2, 3EU1EU2JP2
HLA 1.x

AC: 32.5

PoE: 30.0

AC: 31.5

PoE: 30.0

N/A

AC: 30.0

PoE: 30.0

HLA 2.x

AC: 32.5

PoE: 31.5

AC: 31.5

PoE: 30.0

N/A

AC: 30.0

PoE: 30.0

HLA 3.x

AC: 32.5

PoE: 31.5

AC: 31.5

PoE: 30.0

AC: 33.0

PoE: 33.0

AC: 30.0

PoE: 30.0

Note: HLA - High Level Assembly. Refer to the sticker attached to the side of the reader.

Impinj Speedway R120 (dBm)

 FCC, GX1, 2, 3EU1EU2JP2
Without Antenna Hub

AC: 30.0

PoE: 30.0

AC: 30.0

PoE: 30.0

N/A

AC: 30.0

PoE: 30.0

With Antenna Hub

AC: 32.5

PoE: 31.5

AC: 31.5

PoE: 30.0

N/A

AC: 30.0

PoE: 30.0

 

Impinj R700 (dBm)

 FCCEU1EU2JP
PoE30.030.030.030.0
PoE+33.031.533.030.0

 

Below is an example of configuring both Receive Sensitivity and Transmit Power in the Octane LTK.

msg.AntennaConfiguration = new PARAM_AntennaConfiguration[1];
msg.AntennaConfiguration[0] = new PARAM_AntennaConfiguration();
msg.AntennaConfiguration[0].AirProtocolInventoryCommandSettings = new
UNION_AirProtocolInventoryCommandSettings();
 
msg.AntennaConfiguration[0].AirProtocolInventoryCommandSettings.Add(cmd);
msg.AntennaConfiguration[0].AntennaID = 0;
 
msg.AntennaConfiguration[0].RFReceiver = new PARAM_RFReceiver();
// Receiver sensitivity
msg.AntennaConfiguration[0].RFReceiver.ReceiverSensitivity = 1;
 
msg.AntennaConfiguration[0].RFTransmitter = new PARAM_RFTransmitter();
msg.AntennaConfiguration[0].RFTransmitter.ChannelIndex = 1;
msg.AntennaConfiguration[0].RFTransmitter.HopTableID = 1;
// Transmit power
msg.AntennaConfiguration[0].RFTransmitter.TransmitPower = 61;

No comments:

Post a Comment