How to Use an Impinj R700 Reader with a USB WiFi Adapter

This article will walk you through how to configure an Impinj R700 reader to use a USB WiFi Adapter. In this case, we will walk through an example using the Panda PAU06 USB WiFi Adapter unit to provide networking to an Impinj R700 Reader.

The Impinj R700 currently supports WiFi devices using the following chipsets: Ralink RT2870, and Realtek 8821CU. Impinj has tested the following models of WiFi adapters and confirmed they work properly with the Impinj R700 reader.

1. Panda PAU06 (Link for reference, not endorsed or sponsored)
2. EDUP HOME USB Wireless Adapter (Link for reference, not endorsed or sponsored) 
3. Odroid WiFi Module 5BK USB (Requires Octane 8.2.2 Firmware to be installed. Link for reference, not endorsed or sponsored)


Once you have a compatible USB WiFi device, configuration of the USB WiFi device can be achieved through the Impinj R700 Web Interface, Impinj IOT Device Interface, or via the reader's RShell Interface.

Configuring via HTTPS Web Interface

1. Ensure the Impinj R700 has HTTPS Enabled

When using the Impinj IOT Device Interface, it is required to enable HTTPS on the Impinj R700. To do this, please see the steps in the following article

2. Connect the Supported USB WiFi Adapter

The Impinj R700 Reader features three type A host USB 2.1 ports on the back side of the unit. You will want to ensure your USB WiFi adapter uses the above-mentioned chipset, and physically plug into one of USB ports on the back of the Impinj R700 Reader.

 

3. Ensure the Impinj R700 Reader is Running Compatible Firmware

To use the USB WiFi adapters mentioned in the beginning of the article, the Impinj R700 Reader will need to be running at least Impinj R700 firmware version 7.6.0, but to configure via the Web Interface, you will need to be running at least Impinj R700 Firmware version 8.1.0. The firmware version can be checked through the Web Interface’s “Home” page, under the “Firmware and CAP” section, as shown below:

WebUI_Firmware_Version.png

 

4. Ensure the Reader is Configured to use PoE+ Power

The Impinj R700 will need to be configured to use PoE+ Power, in order to use the WiFi adapter. This can be configured/verified through the Web Interface’s “Home” page, under the “Power Source” section, as shown below:

 

WebUI_Power.png


5. Navigate to the WLAN Interface Configuration

To configure the WLAN Interface, you will need to go to the “Network” tab, where you should see the following:

 

WebUI_NetworkingTab.png

 

You will then click on the link for the “wlan0” interface, as this will be the interface we are configuring, where you will see:

WebUI_Network_Summary.png

Please note that in this guide, we will be configuring the WLAN Configuration as 'Dynamic' rather than 'Static'. There are fields available in the "IPV4 Configuration" and "IPV6 Configuration" sections for static configurations.

 

6. Select a WLAN Access Point

In the section “WLAN Access Points”, you should see a list of available SSIDs. Select the access point you intend to use and it will expand to show more details about the network and a “Connect” option:

 

WebUI_AP_Summary.png


Click “Connect” and you will be prompted for a password, in which you can input and then click “Connect” again:

WebUI_Connecting.png


7. Enable the WLAN Interface

Now that the WLAN Interface has been configured, you will need to enable it. This can be done from the “Interface Information” section of this page, by clicking the “Enable Interface” button:

WebUI_Enabling.png


Enabling the interface will require a reboot, and you will be prompted via the Web Interface:

 

WebUI_Rebooting.png


8. Verifying the Connection

After rebooting, you will be brought back to the Web Interface’s home page. You will then want to verify the network connection is using the WLAN interface by checking the “Networking” tab and confirming the WLAN0 interface is “connected”, while the ETH0 interface is “disconnected”:

WebUI_Completed.png

Please note that if you had been accessing the web interface via IP Address rather than hostname, that the IP address may have changed upon switching to this new interface/access point (especially if they operate on different subnets). In this case, the web interface may not resolve and it may be necessary to update the URL with the new IP address (this may require checking your router's assigned IP's or via a nslookup test from a host on the same network) or hostname.

The WLAN Interface should now be configured as the active and primary interface and available for connection via WiFi.


Additional Notes

After following the steps in this guide, you can use the "Change Enabled Interface" button under the "Network" tab to switch from the WLAN interface to the Eth interface, see example below:

WebUI_Back_To_Eth.png

 

 

Configuring via IoT Device Interface

1. Ensure the Impinj R700 has HTTPS Enabled

When using the Impinj IOT Device Interface, it is required to enable HTTPS on the Impinj R700. To do this, please see the steps in the following article

2. Connect the Supported USB WiFi Adapter

The Impinj R700 Reader features three type A host USB 2.1 ports on the back side of the unit. You will want to ensure your USB WiFi adapter uses the above-mentioned chipset, and physically plug into one of USB ports on the back of the Impinj R700 Reader.

 

3. Ensure the Impinj R700 Reader is Running Compatible Firmware

To use the USB WiFi adapters mentioned in the beginning of the article, the Impinj R700 Reader will need to be running at least Impinj R700 firmware version 7.6.0.

You can check the current installed firmware version by issuing the following CuRL command:

curl -u root:impinj -k GET https://<hostname or IP address>/api/v1/system/image


and checking the ‘primaryFirmware’ image reported:

{
  "primaryFirmware": "7.6.0.240",
  "secondaryFirmware": "7.6.0.240",
  "scmRevision": "372d2dc7bc32c611b2e412af7dc687507db9cbb4",
  "buildDate": "2021-07-09T17:19:35Z",
  "buildPlan": "SKYR-BROOT-R700OCP-1993",
  "devBuild": true
}

 

The firmware version can also be checked under the ‘Software Version’ parameter that is shown on the reader’s HTTP Interface at:

https://<hostname or IP address>

WebUI.png

 

For Impinj Readers running Octane 8.0 Firmware or greater, the firmware version is listed under the "Firmware Version" field as shown below:

8.0interface.png

 

4. Ensure the Reader is Configured to use PoE+ Power

The Impinj R700 will need to be configured to use PoE+ Power, in order to use the WiFi adapter. To check the current configuration you can check the following endpoint with the following CuRL command:

curl -u root:impinj -k GET https://<hostname or IP address>/api/v1/system/power


When the reader is configured for PoE+, it will report the following output:

{"powerSource": "poeplus"}

If the reader is not configured for PoE+ power, you can configure the endpoint by using an HTTP PUT call, as shown below:

curl -u root:impinj -k -X PUT https://<hostname or IP address>/api/v1/system/power -H 'Content-Type: application/json' -d "{\"powerSource\”: \“poeplus\”}"


5. Check Network Interface ID

You can check which network interface is active by issuing the following CuRL command:

curl -u root:impinj -k -X GET https://<hostname or IP address>/api/v1/system/network/interfaces


This will retrieve a list of network interfaces, as shown in the .json output below:

 {
    "interfaceId": 1,
    "interfaceName": "eth0",
    "interfaceType": "eth",
    "status": "connected",
    "enabled": true,
    "hardwareAddress": "00:16:25:13:F9:20",
    "networkAddress": [
      {
        "protocol": "ipv4",
        "address": "192.168.1.5",
        "prefix": 24,
        "gateway": "192.168.1.1"
      },
      {
        "protocol": "ipv6",
        "address": "fe80::4a9d:4518:e962:b921",
        "prefix": 64,
        "gateway": ""
      }
    ]
  },
  {
    "interfaceId": 2,
    "interfaceName": "wlan0",
    "interfaceType": "wlan",
    "status": "connected",
    "enabled": false,
    "hardwareAddress": "9C:EF:D5:FB:EB:1C",
    "networkAddress": [
      {
        "protocol": "ipv4",
        "address": "192.168.1.2",
        "prefix": 24,
        "gateway": "192.168.1.1"
      },
      {
        "protocol": "ipv6",
        "address": "fe80::a378:9581:9842:b8b8",
        "prefix": 64,
        "gateway": ""
      }
    ]
  }

This example shows that the interface ‘eth0’ is currently configured as the active interface.

 

6. List All Available Access Points

To list all the available access points, you can check the endpoint with the following CuRL example:

curl -u root:impinj -k -X GET  https://<hostname or IP address>/api/v1/system/network/interfaces/{interfaceId}/wlan/access-points


This call will return a list of the 10 strongest Access Points, available to the reader. An example of one of the access point listings is shown below:

  {
    "ssid": "test_wifi",
    "hardwareAddress": "B0:38:56:09:7C:71",
    "mode": "infra",
    "securityType": "WPA2",
    "strength": 100,
    "frequency": 2452,
    "maxBitrate": 540000
  }


7. Attempt Connection to Access Point

Now that we are able to view all the available access points, we will want to try connecting to a specific one. To do this, we can issue an HTTP PUT call to the endpoint shown below:

PUT https://<hostname or IP address>/api/v1/system/network/interfaces/{interfaceId}/wlan/connection
Body: “ssid”, “password”


An example of doing this with Curl is shown below, for a reader with default login credentials:

curl -u root:impinj -k https://impinj-XX-YY-ZZ/api/v1/system/network/interfaces/2/wlan/connection -X PUT -d ”{\”ssid\”:\”<Wifi_SSID>\”, \”password\”:\”<Wifi_PSK>\”}”

where <Wifi_SSID> and <Wifi_PSK> are replaced with the actual SSID and PSK of the network you are attempting to connect to. 

After issuing this PUT command, the reader will respond with:

{“message”: “Operation in progress.”}

8. Check Connection to Access Point

Now that we have configured the reader to use the specified access point, we want to check the connection status. To do this, we can check the endpoint shown below:

curl -u root:impinj -k -X GET - https://<hostname or IP address>/api/v1/system/network/interfaces/{interfaceId}/wlan/connection

A successful connection will show output similar to the example below:

{
  "ssid": "test_wifi",
  "status": "connected"
}


9. Enabling the WLAN Interface on Boot

We now will want to enable the WLAN interface to be the primary interface used on reader boot-up. To do this, we can issue the following HTTP PUT call to the endpoint below:

PUT - https://<hostname or IP address>/ api/v1/system/network/interface/{interfaceId}
Body: “enabled”:true

An example of doing this with Curl is shown below, for a reader with default login credentials:

curl -u root:impinj -k  https://impinj-XX-YY-ZZ/api/v1/system/network/interfaces/2 -X PUT -d “{\”enabled\”:true}”


Using this operation will then require a reader reboot for the changes to take effect. This is also prompted after issuing the above HTTP PUT call, when the reader responds:

{“message”: System reboot is required for the new configuration to take effect.”}

10. Rebooting the Reader

The final step will be to issue a HTTP POST call to reboot the reader, for the changes in the previous step to take effect. To do this, we can use an HTTP POST call. An example of issuing this HTTP POST call with Curl is shown below:

curl -u root:impinj  -k -X POST https://impinj-XX-YY-ZZ/api/v1/system/reboot


After issuing this, the reader will reboot and should start with the primary network interface configured to WLAN.

Additional Notes

  1. After following the steps in this guide, you can use the following processes to change the networking interface back to Ethernet:

    Issue the following HTTP PUT call, followed by a reboot, as shown below:
    curl -u root:impinj -k
    https://impinj-XX-YY-ZZ/api/v1/system/network/interfaces/1 -X PUT -d “{\”enabled\”:true}”

    curl -u root:impinj  -k -X POST https://impinj-XX-YY-ZZ/api/v1/system/reboot
  •  
Configuring via RShell

1. Connect the Supported USB WiFi Adapter:

The Impinj R700 Reader features three type A host USB 2.1 ports on the back side of the unit. You will want to ensure your USB WiFi adapter uses the above-mentioned chipset, and physically plug into one of USB ports on the back of the Impinj R700 Reader.

2. Ensure the Impinj R700 Reader is Running Compatible Firmware:

In order to use the USB WiFi adapters mentioned above, the Impinj R700 Reader will need to be running at least Impinj R700 firmware version 7.6.0. You can check the current installed firmware version by issuing the following RShell command and checking the 'PrimaryImageSystemVersion':

> show image summary
Status='0,Success'
UpgradeStatus='Ready'
PrimaryImageType='10'
PrimaryImageState='Active'
PrimaryImageSystemVersion='7.6.0.240'
PrimaryImageConfigVersion='255.255.255.255'
SecondaryImageType='10'
SecondaryImageState='Active'
SecondaryImageSystemVersion='7.6.0.240'
SecondaryImageConfigVersion='255.255.255.255'

Note: If running a version prior to 7.4.0, you will see the following error in RShell when attempting to configure:

> config network interface primary wlan
Status='15,Incompatible-With-Enabled-Feature'

The firmware version can also be checked under the ‘Software Version’ parameter that is shown on the reader’s HTTP Interface at:

http(s)://<hostname or IP address>

WebUI.png

For Impinj Readers running Octane 8.0 Firmware or greater, the firmware version is listed under the "Firmware Version" field as shown below:

8.0interface.png

3. Connect to the Impinj R700 Reader's RShell Interface

In order to configure the reader to use this USB WiFi device, you will need to make some changes through the reader's RShell interface. The RShell interface can be accessed by either connecting to the reader via SSH (with Ethernet cable connected either to PC or shared router), or directly connecting to the reader through the microUSB connection on the backside of the reader and using a serial connection.

As we will be changing the active networking configuration from Ethernet to WLAN, and need to maintain consistent access to RShell, we only support using a serial connection when configuring these network settings.

When connecting to the reader's RShell interface, it will ask for a username and password. By default, these values should be set to the following:

User: root
Password: impinj


4. Ensure the Reader is Configured to use PoE+ Power:

In order to use the WLAN functionality on the reader, you will need to ensure the reader is configured to use PoE+ as a power source, rather than just PoE. It is also possible to have the power source configured to 'Auto' rather than PoE+, as long as the PoE+ network switch the reader is connected to supports auto negotiation for PoE+. The main requirement is that the reader is using PoE+ power, in order to use a USB WiFi adapter.

To configure the reader to use PoE+ (in the case auto-negotiation isn't supported on your network switch), you can issue the following RShell command, which will then require a reboot after for changes to take affect:

> config system power source PoE+
Status='0,Success'

> reboot
Status='0,Success'

After rebooting the reader, you should be able to confirm it is using the PoE+ source by checking the RShell command:

> show system power
Status='0,Success'
ServiceEnabled='False'
NegotiationTimeout='20000'
PoePlusRequired='False'
NegotiationState='Unknown'
RequiredPowerAvailable='AssumedTrue'
RequestedPower='0'
AllocatedPower='0'
PowerSource='PoE+'\

Note: If you try applying newly configured WLAN settings while running on PoE instead of PoE+, you will receive the following errors:

> config network wlan commit
Status='8,Permission-Denied'
FeatureStatus='NotSupportedOnPoE'

Note: The reader requires POE+ power, and you should enable POE+ in RShell to use WiFi features, including scans. The host config interface currently permits WiFi operations even with POE+ disabled, but this scenario should be avoided because it might cause spontaneous reboots from excessive power consumption.

 

5. Configure the Active Network Interface to WLAN:

In order to make any changes to the WLAN interface, you will first need to set the active network interface to WLAN. By default, the active network interface will be set to Ethernet, so in order to change it, issue the following RShell command:

 > config network interface active wlan
Status='0,Success'

You can then confirm it has been set correctly by viewing the output of the command:

> show network summary
Status='0,Success'
PrimaryInterface='eth:eth0'
ActiveInterface='wlan:wlan0'
Hostname='impinj-13-f9-20'
connectionStatus='AdminDown'
ipAddressMode='Dynamic'
HTTPService='active'
HTTPSService='inactive'

Note: As the WLAN is not configured with the correct settings, the connection is not able to resolve, prompting the AdminDown ConnectionStatus. This will be resolved once you configure the proper WLAN settings.

If the active network interface is not set to WLAN when attempting to configure the adapter settings, you will see an error pointing to the interface status being set to inactive:

> config network wlan ssid "test"
Status='8,Permission-Denied'
InterfaceStatus='inactive'

 

6. Configure the WLAN Settings:

You will now need to provide the proper settings and credentials to the reader's WLAN configuration. Please configure the following two fields: ssid and psk.

These parameters are explained in our RShell Reference Manual with the following information:

Command Argument Format Description
ssid <ssid> string Set the WiFi SSID, up to 32 characters
psk <preshared-key> string Set the preshared key used for WPA/WPA2 secured connection. Must be between 8 and 32 characters inclusive
commit NA NA Save the parameters entered into persistent storage without applying them
quit NA NA Discard the parameters entered.


More information on the WLAN configuration can be found in the RShell Reference Manual available here.

To help with configuring these parameters, it can be useful to see a list of available SSIDs. To get a list with reachable SSIDs, we can use the "show network wlan scanlist" command. An example of the output response when three different networks are scanned is shown below:

> show network wlan scanlist
Status='0,Success'
NetType0='infra'
SSID0= 'test_wifi_1'
BSSID0='84:17:EF:01:CB:CE'
Security0='WPA2'
NetType1='infra'
SSID1= 'test_wifi_2'
BSSID1='48:F8:B3:DB:28:4C'
Security1='WPA2'
NetType2='infra'
SSID2= ‘test_wifi_3’
BSSID2='54:A4:5C:9B:92:21'
Security2='WPA2'
NetType3='infra'

You would want to configure these in RShell, with the following commands:

>config network wlan ssid <WiFi SSID>
>config network wlan psk <WiFi password/key>

In my case, I am using the WPA2 network with an SSID of 'test_wifi1', from the output above. In the example below, I configure my reader to use this test network:

> config network wlan ssid "test_wifi1"
Status='0,Success'
SSID='test_wifi1'
PSK='******'

> config network wlan psk "my_password"
Status='0,Success'
SSID='test_wifi1'
PSK='******'

Note: When running a reader with Octane Firmware 7.4.0/7.4.1, the RShell configuration will list two additional parameters, "keymgmt" and "encrypt". These parameters do not need to be configured manually during this step of the configuration, as they are now configured automatically.  These two parameters have been removed in future firmware releases, as to reduce confusion. On all firmware versions, only the "SSID" and "PSK" parameters are needed to be specified when configuring the WLAN settings.

Now that these settings are input, we will need to complete the process by applying the reader settings. This is shown in the next step.

7. Apply the WLAN Configuration

To use these newly applied settings, you will need to update the applied WLAN configuration. To do this, run the RShell command:

> config network wlan commit
Status='0,Success'
SSID='test_wifi1'
PSK='******'

You can then confirm that the connection is successful by ensuring a successful status return from the RShell command:

> show network wlan summary
Status='0,Success'
connectionStatus='Connected'
SSID='test_wifi1'
PSK='XXXXXXXX'
MyMACAddress='2C:6E:81:F1:EC:97'

It is crucial to use the above-mentioned commit command in order for the newly configured WLAN settings to take affect.

8. Set WLAN Interface to Primary

If you would like to always use the WLAN interface at boot-up, rather than Ethernet, please change the primary interface with RShell command:

> config network interface primary wlan
Status='0,Success'

You can then confirm the settings are applied correctly by checking the following RShell command:

> show network summary
Status='0,Success'
PrimaryInterface='wlan:wlan0'
ActiveInterface='wlan:wlan0'
Hostname='impinj-13-f9-20'
connectionStatus='Connected'
ipAddressMode='Dynamic'
ipAddress='192.168.1.17'
ipMask='255.255.255.0'
broadcastAddress='192.168.1.255'
gatewayAddress='192.168.1.1'
MACAddress='9C:EF:D5:FB:EB:1C'
Connectivity='FULL'
HTTPService='active'
HTTPSService='inactive'

This should complete the configuration process for your USB WiFi Adapter via RShell

Additional Notes

  1. After following the steps in this guide, you can use the following processes to change the networking interface back to Ethernet:
    • Through the RShell interface, issue the following commands:
      • >config network interface active eth
        >config network interface primary eth
        >reboot
  2. After changing back to the Ethernet connection, the WLAN settings previously configured (SSID and PSK) will stay set, but not used as the WLAN interface is inactive. You can change the interface (while using a microUSB connection) back to WLAN and see these settings persist, but it will require both changing the active interface and reissuing the commit command.
    • If switching the active interface back to the WLAN interface, you will need to use the following two commands:
      >config network interface active wlan
      >config network wlan commit
Was this article helpful?
1 out of 1 found this helpful

Comments

0 comments

Article is closed for comments.