Usage Guidelines#

Configuration Parameters for Driver Package#

  1. Download the RPI OS image from the below link : SiWx917_RCP_image_with_RPI4.img.

  2. Download the RPI Imager tool: RPI-Imager.

  3. Connect the empty SD card (atleast 32 GB size) to the Windows machine via the SD memory card slot/SD card reader/SD card adapter.

  4. Launch the RPI imager. It will pop up the window as shown below.

    RPI image homepageRPI image homepage

  5. Choose the OS and select Use custom icon.

    Choose OSChoose OS

  6. Select the RPI-4B image from the directory where the image is downloaded. Select the Choose Storage button and it will pop up the SD card partition.

    Choose StorageChoose Storage

  7. Now click on the Write button.

    Write to SD cardWrite to SD card

  8. It will prompt for confirmation. Click, Yes.

    Confirm format the existing imageConfirm format the existing image

  9. The image will start flashing onto the selected SD card partition. Wait until the card flashing is done.

    Start FlashingStart Flashing

  10. Once the flashing is complete. A window will pop up showing that the write was successful.

    Write successfulWrite successful

  11. Remove the SD card from the SD card reader and insert it on RPI-4B Pi.

Connecting SiWT917 to Raspberry Pi 4 and Accessing Console#

Connect the SiWT917_BRD8045B and radioboard to the 40 pin header of Raspberry Pi 4, as shown below.

Setup diagramSetup diagram

  1. Connect the 5V power adapter/power up through USB to the Type C USB port of the RPi4 board.

  2. Connect the ethernet cable from the ethernet port on RPi to the Windows/Linux PC.

  3. Static IP is assigned to RPI and the IP of the RPi4 is 192.168.30.10

  4. Give the IP address for the Linux/Windows PC in the same subnet of 192.168.30.X

    For example:

    • If Linux PC: ifconfig eth0 192.168.30.15

    • If Windows PC: Configure the network settings with 192.168.30.15

  5. Check the ping to RPi4 board IP 192.168.30.10(Exp: ping 192.168.30.10).

  6. Log in to the RPi4 Console using ssh/putty (By default, the IP address of the RPi4 is 192.168.30.10). or

  7. User can access the RPi4 using the HDMI connector cable connected to the HDMI supported monitor.

  8. After powering up, it will ask for username and password.

    • Username: pi

    • Password: test123

Steps to Bring up in STA Mode#

  1. Download the si91x-rcp-driver.

  2. Place the driver in any local path of the RPi4 home directory.

    Example: <system_path> : cd /home/pi/

    Note: "<system_path>" is the location where the user has downloaded/placed the SiWT917 driver in the system.

  3. Unzip the driver using the following command.

    # unzip SiWT917.x.x.x.x.zip
  4. Now user needs to enter super user mode by giving the following command and providing the correct username and password.

    # sudo su

The subsection below provides the steps to configure Wi-Fi STA using startup script or manual commands. User can choose any method.

Using Startup Scripts#

User can use the script at path “<system_path>/SiWT917.x.x.x.x/release/” to run Wi-Fi concurrent mode.

Example: ./start_SiWT917.sh STA

For more details about the startup script file, refer to the Startup Script section of SiWT917 RCP Developer’s Guide.

Using Manual Steps#

  1. Compile the driver using the following commands at path <system_path>/SiWT917.x.x.x.x/

    #make clean; make

    Note: For compiling from kernel source or for other embedded platforms like iMX6 platform, the user can refer to the section Compilation Steps of the SiWT917 RCP Getting Started Guide.

    Before installing the driver, install the dependencies using the following commands :

    # modprobe mac80211
    # modprobe bluetooth
    # modprobe rfcomm
  2. Before installation, the user needs to stop the existing network manager and unblock WLAN from rfkill. The commands below are used to stop the network-manager on different Linux distributions.

    • For Ubuntu, use the following command:

      # service network-manager stop
    • For Fedora/Raspberry Pi, use the following command:

      # service NetworkManager stop
    • To stop rfkill blocking WLAN, use the following command:

      #rfkill unblock wlan (or) # rfkill unblock all
  3. Go to the driver package and copy all the files present in the <system_path>/SiWT917.x.x.x.x/ Firmware folder to /lib/firmware by following the commands below.

    # cd <system_path>/SiWT917.x.x.x.x/
    # cp Firmware/* /lib/firmware
  4. After compiling the driver go to the <system_path>/ SiWT917.x.x.x.x/release folder and give the following commands:

    # insmod rsi_91x.ko dev_oper_mode = 1 rsi_zone_enabled = 0x601
    # insmod sdio.ko sdio_clock = 50
  5. Check for the interface created using the command below:

    # ifconfig -a
  6. For example, if the driver is loaded successfully and wireless interface is created, then the user will see the following output:

    wlan0: flags = 4098<BROADCAST,MULTICAST> mtu 1500
    ether 94:b2:16:98:ac:dc txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 0 bytes 0 (0.0 B)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    Note: In this test case, the wireless interface created after loading of a driver is wlan0. The interface name may vary across the systems.

  7. Bring up the third-party access point in the desired channel and security. For this test case setup, the TP-Link AX1500 Wi-Fi 6 Router is configured with the following credentials, as shown in the figure below.

    AP configurationAP configuration

  8. Edit the network block present in the <system_path>/SiWT917.x.x.x.x/release/ sta_settings.conf file which is present in the <system_path>/ SiWT917.x.x.x.x/release folder with the credentials of the third-party WLAN access point. For this test case, the network block is updated in the following manner:

    ctrl_interface=/var/run/wpa_supplicant
    update_config=1
    #Enable this network block for CCMP/TKIP mode
    network={
    ssid="Tplink"
    pairwise=CCMP TKIP
    group=CCMP TKIP
    key_mgmt=WPA-PSK
    psk="12345678"
    # bgscan="simple:15:-45:20"
    proto=WPA2 WPA
    }
  9. For more details regarding how to update the network block for other security modes in system_path>/ SiWT917.x.x.x.x/release/sta_settings.conf file, the user needs to follow the section Configure station mode using wpa_supplicant.

  10. Run wpa_supplicant to connect SiWT917-STA to the TAP.

    #wpa_supplicant -i <interface name> -D nl80211 -c 
    <system_path>/SiWT917.x.x.x.x/release/sta_settings.conf -dddt > log &
    **Example : wpa_supplicant -i wlan0 -D nl80211 -c /home/ 
    SiWT917.x.x.x.x/release/sta_settings.conf -dddt &gt; supp.log &amp;**
  11. To check whether the connection is successful or not use the following command:

    # iwconfig
  12. If the connection is successful, then the connected Access point SSID along with the MAC address is displayed as shown below.

    wlan0 IEEE 802.11 ESSID:"Tplink"
    Mode:Managed Frequency:2.412 GHz Access Point: B0:A7:B9:C4:52:CA
    Bit Rate=39 Mb/s Tx-Power=16 dBm
    Retry short limit:7 RTS thr=2353 B Fragment thr=2352 B
    Encryption key:off
    Power Management:off
    Link Quality=80/80 Signal level=-28 dBm
    Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
    Tx excessive retries:0 Invalid misc:18 Missed beacon:0
  13. If it is not connected to an Access point, a message "Not Associated" is displayed as shown below.

    wlan0 IEEE 802.11 ESSID:off/any
    Mode: Managed Access Point: Not-Associated
    Tx-Power=0 dBm Retry short limit:7 RTS thr:off Fragment thr:off
    Encryption key:off
    Power Management:off
  14. After successful connection check the IP address using the below commands

    # dhclient wlan0 -r
    # dhclient wlan0 -v
  15. To check if the SiWT917-STA has been assigned with an IP address from the third-party WLAN access point , the user can give the following command:

    #ping <IP_adrress of TAP>
    Example: ping 192.168.0.1
  16. For example, if SiWT917-STA has successfully got IP, we will see the following output.

    PING 192.168.0.1 (192.168.0.1) from 192.168.0.228 wlan0: 56(84) bytes of data.
    64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=26.8 ms
    64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=10.8 ms
    64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=4.00 ms
    64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=6.25 ms
    64 bytes from 192.168.0.1: icmp_seq=5 ttl=64 time=1.77 ms
    64 bytes from 192.168.0.1: icmp_seq=6 ttl=64 time=5.05 ms
    64 bytes from 192.168.0.1: icmp_seq=7 ttl=64 time=2.18 ms
    64 bytes from 192.168.0.1: icmp_seq=8 ttl=64 time=5.63 ms
    64 bytes from 192.168.0.1: icmp_seq=9 ttl=64 time=2.72 ms
    64 bytes from 192.168.0.1: icmp_seq=10 ttl=64 time=3.01 ms
    64 bytes from 192.168.0.1: icmp_seq=11 ttl=64 time=2.32 ms
    64 bytes from 192.168.0.1: icmp_seq=12 ttl=64 time=3.14 ms
    --- 192.168.0.1 ping statistics ---
    12 packets transmitted, 12 received, 0 % packet loss, time 11019 ms
    rtt min/avg/max/mdev = 1.766/6.133/26.773/6.665 ms
  17. For example, if SiWT917-STA has not assigned with an IP address, we will see below output for the ping command.

    # ping: connect: Network is unreachable