This document provides guidance for the installation and usage of IW416 Labtool
application. The Labtool is a software test tool used to control and run various RF and
regulatory compliance tests.
1.1 Purpose and scope
This document explains how to set up the IW416 Labtool test environment including the
installation of IW416 driver, loading manufacturing firmware, and using Labtool software
application. The Wi-Fi and Bluetooth radio Labtool commands are detailed along with
some RF test examples.
1.2 References
Table 1 lists the references.
Table 1. References
Reference typeReference title
DatasheetDS - IW416 - Dual-band 1x1 Wi-Fi 4 and Bluetooth 5.1 Combo SoC
Design packageRD-IW416-QFN-WIB3-1A-V2: design package for IW416 reference design
Design packageRD-IW416-QFN-WIB3-2A-V2: design package for IW416 reference design
Design packageRD-IW416-CSP-WIB3-1A-V1: design package for IW416 reference design
Design packageRD-W8978-CSP-WIB3-2A-V1: design package for IW416 reference design
User manualUM11350 - IW416 Reference Design Kit User Guide
The Labtool is a test tool that enables RF testing for IW416 device. The Labtool is used
for the following:
• Measurement of RF parameters such as transmit power, EVM, and receiver sensitivity
• Regulatory compliance testing (EMC/EMI)
The Labtool is part of the Manufacturing Software (MFG SW) package which includes the
following components:
• Labtool application: this tool runs on a Windows PC
• IW416 device driver for Ubuntu Linux
• IW416 manufacturing (MFG) firmware: specialized firmware build that enables the
manufacturing test mode on IW416 device.
• Manufacturing bridge application: this application runs on the device under test (DUT).
The bridge application enables Labtool application running on the Windows PC to
communicate with the DUT over an ethernet interface.
Figure 1 shows a block diagram of a test setup running the Labtool. The test setup
includes:
UM11434
IW416 Labtool User Guide
1. Device Under Test (DUT): The DUT is a system that includes IW416 device. The DUT
needs the following software components:
• IW416 device driver and manufacturing firmware
• Manufacturing bridge application
If you are testing IW416 evaluation board using SDIO/UART interface or an IW416based wireless module, then connect the board or module to a PC/platform running
Linux.
2. Windows PC: The Labtool application runs on a Windows PC
The host system provides the means for the Labtool to communicate with the DUT that
runs on Linux Ubuntu.
This section details the installation of Linux Ubuntu on the (Linux) Bridge computer and
the configuration setup prior to the download and build of the driver and firmware.
3.1 Linux Ubuntu installation
Install the Linux Ubuntu 16.04 along with the required tools and applications packages
on the (Linux) Bridge computer. Perform this initial setup once. Subsequent releases will
only require to copy IW416 firmware and driver files to their respective locations on the
Bridge computer.
The procedure to set up a Bridge computer is as follows:
Step 1: Install Linux Ubuntu 16.04 system. The following command installs the 64-bit
Linux Ubuntu system and is given as an example. You can also install the 32-bit Linux
Ubuntu.:
UM11434
IW416 Labtool User Guide
$ Ubuntu-16.04.-desktop-amd64.iso
Step 2: Set up the environment.
Create a super-user or root administrator with the following command:
$ sudo bash # <user password>
Update the kernel and install the related patch with the following commands:
Ask your local NXP FAE for the kernel update package (Ubuntu_16.tgz) or download the
4.8.0 kernel from the internet.
Note: In case of a new requirement for the kernel or patch with the new release driver
package, check the driver release notes included in the driver release package available
on IW416 Tools and Software tab on NXP website.
$ tar -zxvf Ubuntu_16.tar
$ cd Ubuntu_16
$ bash install.sh
$ reboot
Step 3 - Check the kernel version and install the Ubuntu packages:
Step 1 - Disable the Linux firewall temporarily with the following command:
$ service iptables stop
Step 2 – Disable the open-source driver (mwifiex) to avoid a mutual conflict with NXP
driver.
Execute the following commands to disable the open-source driver:
$ cd /lib/modules/`uname -r`/kernel/drivers/net/wireless/marvell/
mwifiex
$ for f in `find -name '*mwifi*'`;do mv "$f" `echo "$f" | sed s/.ko/
_none/`;done
$ cd /lib/modules/`uname -r`/kernel/drivers/BT
$ for f in `find -name '*mrvl*'`;do mv "$f" `echo "$f" | sed s/.ko/
_none/`;done
3.3 Software download
UM11434
IW416 Labtool User Guide
The software packages are available for download on IW416 Tools and Software tab on
NXP website.
Make sure to download the two software packages:
• IW416 production software release package
• IW416 MFG software release package
Note: Ask your local NXP FAE for specific software packages.
3.3.1 Production software release package
The production software release package includes the Wi-Fi and Bluetooth driver source
code. Both the Wi-Fi and Bluetooth drivers are needed for Labtool testing.
IW416 production software is available for download on IW416 Tools and Software tab on
NXP website.
Note: Ask your local NXP FAE for specific software packages.
3.3.2 MFG software release package
The MFG software release package includes the MFG firmware, the Labtool executable
(.exe file), and the MFG bridge application. All three software items are needed for
Labtool testing.
The MFG software release is published on IW416 Tools and Software Tab on NXP
website.
This section explains how to build both the Wi-Fi and Bluetooth drivers once you have
downloaded the production software package published on IW416 Tools and Software
tab).
Note: IW416 device was formerly named 88W8978. The firmware and driver still refer to
8978 or 88W8978.
Step 1 – Open a terminal window on the (Linux) Host PC and use the cd command to
the folder where the software is downloaded.
Step 2: Unzip the driver release package and all other files in it with the following
commands:
$ tar -xvf SD-WLAN-SD-BT-8978-U16-MMC...pxx-GPL.tar
$ tar -xzvf SD-BT-8978-U16-MMC-...-GPL-src.tgz
$ tar -xzvf SD-BT-CHAR-8978-U16-MMC-...-GPL-src.tgz
$ tar -xzvf SD-UAPSTA-8978-U16-MMC-...-mlan-src.tgz
$ tar -xzvf SD-UAPSTA-8978-U16-MMC-...-app-src.tgz
$ tar -xzvf SD-UAPSTA-8978-U16-MMC-...-GPL-src.tgz
The folder named SD-UAPSTA-UART-BT-8978-U16-MMC-...-GPL includes the WiFi and
Bluetooth driver source code.
UM11434
IW416 Labtool User Guide
Step 3: Navigate to wlan_src directory and run the following commands to compile the
driver for Wi-Fi:
$ cd wlan_src
$ make clean
$ make build
After the compilation, the folder bin_sd8978 is created. It includes the Wi-Fi driver files
mlan.ko and sd8xxx.ko.
Step 4: Navigate to mbt_src directory and run the following commands to compile the
Bluetooth driver:
$ mbt_src
$ make clean
$ make build
After the compilation, the folder bin_sd8978_bt is created and includes the Bluetooth
driver file bt8xxx.ko.
3.5 Building MFG bridge application and copying MFG firmware
This section provides the steps for the installation of the MFG firmware and the build of
the Bridge application.
Step 1: Navigate to the directory where the MFG software release package was
downloaded and use the following command to extract the file:
$ cd <path-to-folder-with-mfg-software-release-package>
$ unzip MFG-W8978-MF-WiFi-BT-BRG-FC-...-bin.zip
The extracted release package includes the following:
• The FwImage directory which includes the MFG Firmware
• The Bridge directory with the source code for the bridge application
• The release directory containing the Labtool executable for the Windows computer
Figure 2 shows the content of FwImage directory.
UM11434
IW416 Labtool User Guide
Figure 2. FwImage directory content
Step 2: Navigate to the FwImage directory and select the MFG firmware bin file that
matches the host interface type and copy it to the Linux firmware path /lib/firmware/nxp/.
For example, the firmware binary file sdio8978_sdio_combo.bin supports both Wi-Fi and
Bluetooth over an SDIO interface. Run the commands to copy the bin file:
$ cd MFG_W8978...pxx/bin/FwImage
$ cp sdio8978_sdio_combo.bin /lib/firmware/nxp/
If there is no folder with the name nxp under /lib/firmware/ path, run the commands to
create the folder:
$ cd /lib/firmware/
$ mkdir nxp
Step 3: Go to the Bridge folder and compile the bridge application:
$ cd MFG_W8xxx...pxx/Bridge
$ tar -xzvf bridge_linux_xx.xx.xx.xx-src.tgz
$ cd bridge_linux_xx.xx.xx.xx/bridge
$ make build
The mfgbridge application executable is created in the bin_mfgbridge directory.
Use the dmesg command to check the driver and firmware load status. If the status
is correct the command output is as shown below. No message returns if either the
firmware or driver did not load correctly.
WLAN FW is active
wlan: Driver loaded successfully
UM11434
IW416 Labtool User Guide
Use the iwconfig command to confirm that the Wi-Fi device is defined as the mlan0
interface with the following messages:
mlan0 IEEE 802.11-DS ESSID:””
Mode:Auto channel=0 Access Point:Not-Associated
Bit Rate:0 kb/s Tx_Power=off
Retry limit:0 RTS thr=0 Fragment thr:off
Power Management:off
Link Quality=0/5 Signal level=0 dBm Noise level=0 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Similarly, navigate to the folder which includes the Bluetooth driver file (bt8xxx.ko) and
execute the following commands:
$ insmod bt8xxx.ko
$ dmesg
$ hciconfig
If the status is correct the command output is as shown below. No message returns if
either the firmware or driver did not load correctly.
BT FW is active (0)
BT: Driver loaded successfully
Use the hciconfig command to confirm that the Bluetooth device is defined as the
hci0 interface with the following messages:
We use the following IP addresses as examples in the commands shown for this step:
• (Linux) Bridge computer IP address: 192.168.0.10
• (Windows) Host computer IP address: 192.168.0.58
In the Linux system, configure the Ethernet IP address with the following command:
>ifconfig -a
Check the Ethernet name. The following command assumes the Ethernet name is ethx :
>ifconfig ethx 192.168.0.10
UM11434
IW416 Labtool User Guide
Check the Ethernet connection state between the (Windows) Host computer and the
(Linux) Bridge computer using the ping command.
In the Windows Terminal window, execute the following command:
>ping 192.168.0.10
In the Linux platform terminal execute the following command:
>ping 192.168.0.58
Ensure that both the (Windows) Host computer and (Linux) Bridge computer IP
addresses are under the same subnet.
Step 3: Run the bridge application.
Go to the bridge folder under the MFG release package where the bridge application was
compiled previously, and run the bridge application with the following command:
$./mfgbridge
To terminate the bridge application, type CTRL+C in the bridge window.
To restart the bridge application, execute the ./mfgbridge command again.
The Host computer runs on Windows operating system (64 bit and 32 bit). The procedure
to set up the environment is as follows:
Step 1: Download the MFG software release package MFG-W8xxx...pax.bin published
on IW416 Tools and Software tab on NXP website. The MFG software release package
includes the MFG firmware, the Labtool executable (.exe file), and the MFG bridge
application. All three software items are needed for Labtool testing.
Step 2: Unzip the MFG firmware software release.
Step 3 - Copy the ...bin/release/labtool folder to the Host computer and make sure the
path length has less than 255 characters. Figure 3 shows the labtool repository content:
UM11434
IW416 Labtool User Guide
Figure 3. Labtool Repository Content
Step 4: Disable the Windows firewall.
Step 5: Open the Network and Sharing Center on the Windows PC. Change the network
address of the Ethernet port to the same subnet as the (Linux) Bridge computer. The
following IP addresses are used in this document:
Step 7: In the SetUp.ini file, the parameter NO_EEPROM is used to specify the calibration
data storage option. The default value is 1 (Use calibration data from the external
configuration file).
For general RF evaluation and test, set the file option to 1 to use the calibration data
from an external file. If the calibration data is already stored in the OTP memory of IW416
device, set the value to 2.
[DutInitSet]
0 = EEPROM support
1 = No_EEPROM support
2 = OTP support
NO_EEPROM = 1
NoEepromBtFlexFileName = WlanCalData_ext.conf
NoEepromWlanFlexFileName = WlanCalData_ext.conf
UM11434
IW416 Labtool User Guide
Note: No_EEPROM support refers to the calibration data from the external configuration
file.
Step 8: Save the “SetUp.ini” file after making the changes.
The DUT requires calibration data for optimal performance. The calibration data is
included in the .conf file or programmed into the on-chip OTP memory of IW416 device.
The .conf file is included in the reference design package for the WLCSP and QFN
packages available on IW416 Tools and Software tab. See Figure 4.
Before launching the Labtool, copy the .conf file into the Labtool working directory and
rename the file as WlanCalData_ext.conf (see Figure 5).
Figure 4. Calibration data file (.conf)
UM11434
IW416 Labtool User Guide
Figure 5. WlanCalData_Ext.conf in Labtool directory
Each time a Labtool command is executed, the console returns a status byte. A
successful command execution is indicated by a status byte with all 0s (Figure 8).
Figure 8. Status – Successful command execution
A failed command returns invalid data and is indicated by a non-0 status byte
(0x00000001 to 0xFFFFFFFF). This could indicate a problem with the communication to
the DUT, incorrect firmware, no firmware download, wrong version of Labtool/firmware,
and so on.
UM11434
IW416 Labtool User Guide
Figure 9. Status – Failed command execution
When using the transmit commands (25, 33, 35), note that all the Very High Throughput
(VHT) rates are not available for all bandwidth and antenna path combinations. An error
code in the returned status byte of 0xE indicates that the rate is not supported by the
DUT. Enter a “?” at the Labtool prompt to list all the available commands.
5.3 Closing Labtool
To close Labtool, issue Command 99 once.
To quit Labtool, issue command 99 twice.
5.4 Getting help
The Labtool application realizes its functions (such as enable Tx/Rx tests) through the
related Labtool commands. Labtool commands are listed in the Command Line Interface
(CLI) menu.
Enter ? at the command prompt in the main window to get the CLI menu.
Enter <command number>? for the detailed usage and help menu for the respective
command.
For example, enter 10?.to get the detailed Command 10 usage (including the command
options) and related help file are shown in the main window.