60-SIPT Bluetooth and WiFi Module

Recommended for New Design (RND)

Overview

Powered by the powerful NXP 88W8997 chipset, Laird Connectivity’s 60-SIPT WiFi + Bluetooth module achieve the best possible connectivity and performance in any RF environment. With industry-leading software, broad OS support, and multiple form factors, Laird Connectivity’s 60 Series offers flexibility to meet your needs. The 60 Series introduces 802.11ac, 2x2 MU-MIMO, and Bluetooth 5.1 on one lowpower module, delivering future-ready cutting edge technology for your product. Building on the security and robustness inherited from Laird Connectivity’s expertise in its 40, 45, and 50 Series modules means ultra-high data rates, improved performance, and the most reliable wireless in crucial applications such as medical and industrial.

Supports the latest WPA3-Personal and WPA3-Enterprise security standards

Available as the ST60-SIPT.

Laird Connectivity is an NXP Gold Partner

Laird Connectivity is honored to be approved as an NXP Gold Partner! We look forward to working with the NXP team to deliver the solutions our customers need in an ever changing wireless future. Please follow the link for more information.

Learn More

NXP Gold Partner badge

Specifications

Wi-Fi Spec
802.11 a/b/g/n/ac
Dimension (Length - mm)
13 mm
Dimension (Width - mm)
14 mm
Dimension (Height - mm)
1.87 mm
BT Capable
5.1
Android
Yes
BT Chipset
Combo
BT Dual Mode
Yes
BT Interfaces
UART/SDIO/USB
Data Rate
up to 866 Mbps
Line
Professional
Linux
Yes
Security
WEP, WPA, WPA2-Personal, WPA2-Enterprise, WPA3-Personal, WPA3-Enterprise
Spatial Streams
MU-MIMO
Supplicant
EAP
Temp Spec
-30C +85C
Wi-Fi Chipset
NXP 88w8997
Wi-Fi Interfaces
SDIO/USB/PCIE
Product Type Technology OS/Software System Architecture Chipset (Wireless) Antenna Type Logical Interfaces Frequency Range (Min) Frequency Range (Max) Frequency Range 2 (Min) Frequency Range 2 (Max) Development Kit Contents
DVK-ST60-SIPT Development Kit 802.11abgn, 802.11ac, Bluetooth 5.1, Dual Mode (Classic + BLE) Linux, Android Hosted NXP (Marvell) 88W8997 External Serial, SDIO, USB 2400 MHz 2495 MHz 5150 MHz 5825 MHz Development board, Power options, SDIO Extender, Ribbon Cable, Antennas (Two 2.4G/5GHz FlexPIFA antennas), Web link card
Product Type Technology OS/Software System Architecture Chipset (Wireless) Antenna Type Logical Interfaces Frequency Range (Min) Frequency Range (Max) Frequency Range 2 (Min) Frequency Range 2 (Max) Antenna Options Connector Dimension (Height - mm) Dimension (Length - mm) Dimension (Width - mm) Wi-Fi Interfaces
ST60-SIPT Embedded Module 802.11abgn, 802.11ac, Bluetooth 5.1, Dual Mode (Classic + BLE) Linux, Android Hosted NXP (Marvell) 88W8997 External Serial, SDIO, USB 2400 MHz 2495 MHz 5150 MHz 5825 MHz Pin access Surface mount (SMT) 1.87 mm 13 mm 14 mm SDIO/USB/PCIE

Certified Antennas

  • Nanoblade Series Antennas

    CAF94505

    Nanoblade Series Internal Antenna

    Vertically polarized, omnidirectional planar antenna with 2 dBi gain @2.24-2.5 GHz, 3.9 dBi gain @ 5.15-5.35 GHz, and 4 dBi gain @ 5.6 Ghz. 

    Learn More
  • EMF2471A3S

    MAF95310

    Mini Nanoblade Flex / Flex 6E Series Internal Antenna

    Flexible, onmidirectional PCB Mini NanoBlade. Vertically polarized, with 2.79 dBi gain @ 2.4 GHz and 3.38 dBi gain @ 5 GHz. 

    Learn More
  • FlexPIFA 6E - Wi-Fi 6E Antenna

    001-0016

    FlexPIFA / FlexPIFA 6E Flexible Adhesive-Backed PIFA Internal Antenna

    Industry-first, flexible, planar inverted-F antenna for curved surfaces 2.5-3 dBi gain. 2.4 GHz, dual-band 2.4/5 GHz and Wi-Fi 6E 2.4/5/6 GHz.

    Learn More
  • 001-0009

    001-0009

    2.4 / 5.5 GHz Dipole RF Antennas

    Pre-certified 2.4 and 5 GHz RF antennas, IP67-rated for dust and water protection.

    Learn More
  • FlexMIMO Dual-Band MIMO Antenna

    EFD2455A3S-10MHF1

    FlexMIMO Dual-Band MIMO Internal Antenna

    The world's first flexible PIFA antenna for Wi-Fi MIMO applications with gain of 2-3.5 dBi. 

    Learn More

Become a Laird Connectivity Customer and Gain Exclusive Access to Our Design Services Team

  • Antenna Scans
  • Antenna selection and placement
  • Custom antenna design
  • Worldwide EMC testing / certifications
  • Embedded RF hardware / firmware design
  • Cloud architecture and integration
  • Mobile application development
  • Product & Industrial Design

Talk to an Expert

Documentation

Name Part Type Last Updated
Product Brief - 60 Series.pdf All Product Brief 08/24/2021
Datasheet - 60-SIPT All Datasheet 08/24/2021
Application Note - Guidelines for Replacing Antennas v1.0 All Application Note 01/17/2019
Wake on WLAN Support.pdf All Application Note 01/17/2019
DVK-60-SIPT Schematic.pdf All Documentation 01/17/2019
User Guide - DVK-60-SIPT.pdf All Documentation 05/21/2020
Software Integration Guide - 60 Series.pdf All Documentation 01/17/2019
Sterling 60 Release Packages All Software 04/09/2021
Schematic - DVK-60-SIPT v1.0.pdf All Technical Drawings 05/21/2021
3D Models - 60-SIPT (STEP Files) All Technical Drawings 05/21/2021
Application Note - Backports Integration by Yocto Recipe All Application Note 07/08/2019
Application Note - Bluetooth Integration v1.1 All Application Note 12/04/2019
IC Certifications - ST60-SIPT All Certification 11/18/2020
Korea Certifications - ST60-SIPT All Certification 11/18/2020
MIC Certifications - ST60-SIPT All Certification 11/18/2020
AS/NZS Certifications - 60-SIPT and 60-2230C All Certification 03/05/2021
EU Certifications - 60-SIPT and 60-2230C All Certification 03/05/2021
FCC Certifications - 60-SIPT and 60-2230C All Certification 11/18/2020
Summit Stack Evaluation Request All Software 03/25/2020
Application Note - PetaLinux Software Integration - 60 Series and LWB Series All Application Note 08/13/2020
RoHS 3 Compliance - Wi-Fi Products All Certification 10/30/2020
Regulatory Information - 60-SIPT All Certification 01/22/2021

FAQ

Backports fails to compile with 'refcount_t {aka struct refcount_struct}' has no member named 'counter'

There are certain patch ranges within kernels 4.4 and 4.9 that need a modification so backports can build, the reason why we cannot fix it in backports is that we cannot track and differentiate between patch versions of the same 'major.minor' version of kernel. To fix this issue, move the function kobject_has_children from linux/kobject.h to drivers/base/core.c in your kernel source, rebuild the kernel and then rebuild backports.

What encryption methods are supported in ad-hoc mode with ST60/SU60 series radios and how do I enable them?

The ST60/SU60 modules supports either the open-none or WEP methods in ad hoc mode.

To enable ad hoc mode:

1. Set the interface type as ibss mode and bring it up.

# iw wlan0 set type ibss
# ip link set wlan0 up

2. run wpa_supplicant on all devices connected to the network with the following command:

# wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant_adhoc.conf -D nl80211

To configure open-none:

/etc/wpa_supplicant_adhoc.conf
ctrl_interface=/run/wpa_supplicant GROUP=wheel
ap_scan=2
network={
    ssid="Laird_adhoc"
    mode=1
    frequency=2432
    key_mgmt=NONE
}

To configure WEP:

/etc/wpa_supplicant_adhoc.conf
ctrl_interface=/run/wpa_supplicant GROUP=wheel
ap_scan=2
network={
    ssid="Laird_adhoc"
    mode=1
    frequency=2432
    key_mgmt=NONE
    wep_key0="11111"
   wep_key1="22222"
   wep_key2="33333"
   wep_key3="44444"
    wep_tx_keyidx=0
}

Does the ST60/SU60 support FIPS 140-2?

The 60 series radio itself is not FIPS certified and cannot be certified, since FIPS must be tied to an entire platform (host, OS, encryption mechanisms, etc..) and have a defined boundary within the platform (data at rest, data at motion, Ethernet, USB, Wi-Fi, etc..).

From a Wi-Fi radio perspective, the on-board encryption hardware accelerators on the Marvell silicon are not FIPS compliant. Therefore, a customer would need to disable the radio encryption accelerator on the 60 series radio and use a FIPS validated crypto-engine. This is similar to what Laird Connectivity did on our 60 Series SOM to achieve FIPS certification – from a high-level perspective we bypassed the silicon's encryption HW accelerators and forwarded all of the encryption functions to a FIPS validated crypto-module on the SOM60. Disabling the radio’s encryption functions can be done from the host.  The rest of the FIPS architecture will need to be determined by customer as FIPS is tied to more than just the radio.

Each implementation of FIPS is different and the radio is just one piece of a larger FIPS strategy. Laird Connectivity's implementation of FIPS was specifically designed for the SOM60 platform.

What are the requirements to be able to leverage "Modular Approval"?

In order to be able to leverage the Modular Approval of a wireless module the following requirements have to be met:

  • The RF circuitry must be shielded
  • The module must have buffered modulation/data inputs. Module must inherently ensure compliance under host fault (watch dog) conditions
  • The module must have a regulated power supply
  • An antenna needs to be attached permanently or a unique antenna connector must be mounted on the module
  • The module must be compliant with the regulations in a stand-alone configuration
  • The module must be labeled with its permanently affixed FCC ID label or use an electronic display
  • A user manual needs to provide comprehensive instructions to explain compliance requirements.
  • The module must comply with RF exposure requirements

How do I use hostapd to run AP mode on ST60 module?

1. Load backports driver. (Here is an example for the SDIO option.)

insmod compat/compat.ko
insmod net/wireless/cfg80211.ko
insmod net/mac80211/mac80211.ko
 insmod drivers/net/wireless/laird/lrdmwl/lrdmwl.ko
insmod drivers/net/wireless/laird/lrdmwl/lrdmwl_sdio.ko
Ifconfig wlan0 up

2. Set interface as AP mode

iw dev wlan0 interface add wlan1 type __ap

3. Use hostapd utility to load hostapd.conf to enable AP.

hostapd /etc/hostapd/hostapd.conf -B (Set interface=wlan1 in hostapd.conf)

What Bluetooth modules are necessary for the 60 series radio to run on Linux?

When using the 60 series raido you should leverage our latest backports package and documentation. If you do this, as a result, you should have bluetooth.ko and hci_uart.ko. These are the required kernel modules for Bluetooth.

Does the 60 series module support WoW (Wake on Wireless)?

Yes, WoW is supported on  WLAN. Please see our Wake on Wireless application note for more information. In future releases we will support WoBT.

How do I integrate an ST60 module into an Ubuntu system?

1. Add two modules in the list of blacklist.conf:

vi /etc/modprobe.d/blacklist.conf
blacklist cfg80211
blacklist mac80211

2. Export the kernel settings and build driver:

export KLIB_BUILD=/lib/modules/4.4.0-31-generic/build
export KLIB=/lib/modules/4.4.0-31-generic/kernel

tar xf backports-laird-7.0.0.242.tar.bz2  -C projects/
cd ~/projects/laird-backport-7.0.0.242/
make defconfig-sterling60
make

3. Copy firmware to host and add link file  (here is an example of the PCIE option):

sudo mkdir /lib/firmware/lrdmwl
sudo cp 88W8997_ST_pcie_uart_v5.4.24.1.bin /lib/firmware/lrdmwl/
sudo cp regulatory_sterling60.db /lib/firmware/
cd /lib/firmware/lrdmwl
sudo ln -s 88W8997_ST_pcie_uart_v5.4.24.1.bin 88W8997_pcie.bin
sudo ln -s  /lib/firmware/regulatory_sterling60.db /lib/firmware/regulatory.db

4. Load the drivers:

cd ~/projects/laird-backport-7.0.0.242/
sudo insmod compat/compat.ko
sudo insmod net/wireless/cfg80211.ko
sudo insmod net/mac80211/mac80211.ko
sudo insmod drivers/net/wireless/laird/lrdmwl/lrdmwl.ko
sudo insmod drivers/net/wireless/laird/lrdmwl/lrdmwl_pcie.ko

What kernel versions does the 60 series radio support?

It supports Linux kernel versions ranging from 3.18 to 4.9 using our backports package.

Can I use the Marvell driver that comes with my kernel?

We provide driver support via our fork of the backports package. Backports replaces the kernel-side Bluetooth stack and Wi-Fi stack including cfg80211, mac80211 and custom "lrdmwl" driver. We regularly perform a kernel rebase to keep up with LTS releases which provides the benefit of running a modern stack on a range of kernels. We perform build verification regression testing including popular silicon vendor kernels such as Xilinx, nVidia, ST Micro, TI and NXP. All releases are QA validated in our automated testing system.

We support our customers integrating backports in different Linux build environments including Yocto, Buildroot and PetaLinux. Please contact support if integration assistance is needed.

Does the 60 Series support boundary scanning?

Yes, the 60 Series supports boundary scanning via JTAG. Please contact our support portal and we will provide the BSDL file and a spreadsheet showing the mapping from the 88W8997 to the 60-SIPT pinout.

How do I manually cross-compile the Sterling supplicant from source?

It is best practice to include the source in your build system. If using Yocto, our external layer will do this for you.
Here is an example manually compiling using our SOM60 as a target in a Buildroot environment:

 

  1. Download and extract the Sterling supplicant source.
  2. Navigate to the "laird" directory.
  3. Edit the config_laird file:
  4. Find the following line, uncomment and change the path to your "openssl/include" directory:
    original line:
    #CFLAGS += -I/usr/local/openssl/include
    modified line:
    CFLAGS += -I/wb/buildroot/output/som60sd/build/host-libopenssl-1.1.1d/include
  5. Run make with the following flags
    set:
    CC="" for your cross-compile binary
    PKG_CONFIG="" for your pkg-config binary
    PKG_CONFIG_PATH="" for your pkgconfig directory
    OBJCOPY="" for your objcopy binary

 

Note the following example is a single line command:
make CC="/wb/buildroot/output/som60sd/host/bin/arm-buildroot-linux-gnueabihf-gcc" PKG_CONFIG="/wb/buildroot/output/som60sd/host/bin/pkg-config" OBJCOPY="/wb/buildroot/output/som60sd/host/arm-buildroot-linux-gnueabihf/bin/objcopy" PKG_CONFIG_PATH="/wb/buildroot/output/som60sd/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/pkgconfig"

Does Laird offer RTOS support for their modules?

Our only officially supported option for RTOS is the Sterling-LWB with Cypress? WICED stack. However, if you are interested in using our module with an RTOS please contact Laird support for more information and assistance.

Does the ST60-2230C support 3.3 VIO?

No, the ST60 SIPT module on the 2230C carrier board is strapped for 1.8 VIO operation only. Design for an embedded SDIO operation and does not allow 3.3 VIO even during card enumeration.

What key version does the M.2 60 series radio use?

The 60 series radio as well as the 50 support the the M.2 ?E? key.

Where do I find most relevant technical documents for the 60-series modules?

On Github where all software releases for the 60-series modules can be found 60 Releases amongst every release there is an archive called for example: "laird-sterling-60-docs-8.3.0.16.tar.bz2 In the archive there are technical documents like:

  • app_note_60_antenna_adjust
  • app_note_60_reset
  • app_note_60_siso
  • app_note_60_summit_awm
  • app_note_60_summit_supplicant
  • app_note_60_vendor
  • app_note_60_wow
  • sig_60_series_radio
  • user_guide_60_dvk_su60_sipt
  • user_guide_60_networkmanager

Most of them are very relevant for your development with the 60-series Wifi module.

 

Can a DVK-ST-60-SIPT be upgraded to run SUMMIT software?

No. Unfortunately there is no way to update the settings on the DVK-ST60-SIPT for use with the SUMMIT software. A different DVK would be required: DVK-SU60-SIPT.

How do I enable monitor mode in 60 series?

Only the SU60 version supports monitor mode.

1. Load backports driver, such as below for SDIO option.

insmod compat/compat.ko
insmod net/wireless/cfg80211.ko
insmod net/mac80211/mac80211.ko
insmod drivers/net/wireless/laird/lrdmwl/lrdmwl.ko
insmod drivers/net/wireless/laird/lrdmwl/lrdmwl_sdio.ko

2. Setup interface type as monitor mode and bring it up.

iw dev wlaninterface add wlan1 type monitor
ifconfig wlan1 up

3. Use tcpdump to capture the packet as the command below.

tcpdump -i wlan1  -n -w wireless.cap

How do I test running a GATT server in Linux?

Using the test scripts provided with BlueZ to setup a GATT server:

cd /lib/bluez/test/
./example-gatt-server &

Power on Bluetooth, start advertising and set to pairable:

# bluetoothctl
Agent registered
[bluetooth]# power on
Changing power on succeeded
[bluetooth]# advertise on
[bluetooth]# pairable on

Connect with Nordic's nRF smartphone app and read the fake battery level.

 

How many BSSIDs are supported for AP mode?

For Sterling supplicant it is limited to only 1, for the Summit supplicant it is a total of 3.

More information comparing the Summit vs Sterling stack can be found in the Summit stack product brief:

Is there a way to discover firmware version, country code or other information on a running system?

We provide a sysfs entry for this purpose:

cat /sys/class/net/wlan0/device/lrd/info
Driver name : lrdmwl
Chip type   : 88W8997-PCIE
HW  version : 7
FW  version : 5.4.29.5
DRV version : 8.1.0.11
OTP version : 1
OTP num mac : 2
Radio Type  : ST
MAC address : c0:ee:40:50:00:00
Region code : 0xff (0xff)
Country code: '00' ('00')
TX antenna  : 2
RX antenna  : 2

What are the differences between the Sterling-60 and a Summit-60?

There are no hardware differences between the two modules. However there are vast software differences. The Sterling-60 provides professional grade connectivity while the Summit-60 has more security and roaming features intended for Enterprise use.

What interfaces can be used with the M.2 E key version of the 60 series radio?

The interfaces for WiFi are USB, SDIO, and PCIE. The interfaces for Bluetooth are UART, SDIO, and USB.

Where do I access the tools used for certification testing with the 60 Series?

The LRU (Laird Regulatory Utility) and manufacturing firmware are used to exercise the 60 Series radios during certification testing. We do not publicly provide the LRU, however you can submit a ticket using our support portal and we will provide the pre-compiled binaries via a secure link. For more information regarding the use of the tool, please download the laird-sterling-60-docs-<ver>.tar.bz2 archive and read the vendor tools application note.

Can I use the Marvell firmware that comes with my kernel?

We provide custom "thinmac" firmware that not only includes optimizations and power tables but is designed to run on the 60 Series modules. Using firmware that is not provided by us will violate the modular certifications and may not work with our module.

How can I receive notifications of the latest updates to the driver and firmware?

Simply log into GitHub, go to the corresponding release packages page and click the "Watch" button (eye icon) in the top right of the page. Some radios (such as the LWB Series) requires you to download firmware separately from the product page; this firmware is updated on the product page in conjunction with GitHub releases.

Release Packages

How do I test connecting to a BLE peripheral in Linux?

To activate BT, list controller information and scan for BT/BLE devices:

# bluetoothctl
Agent registered
[bluetooth]# power on
Changing power on succeeded
[bluetooth]# list
Controller C0:EE:40:50:00:00 summit [default]
[bluetooth]# scan on

To connect to a device acting as a peripheral:

[bluetooth]# scan on
Discovery started
[CHG] Controller C0:EE:40:50:00:00 Discovering: yes
[NEW] Device 4C:90:DE:92:00:00 Pixel XL
[CHG] Device 4C:90:DE:92:00:00 RSSI: -68
[CHG] Device 4C:90:DE:92:00:00 RSSI: -58
...
[NEW] Device 4C:90:DE:92:00:00 Pixel XL
[bluetooth]# scan off
Discovery stopped
[CHG] Controller C0:EE:40:50:00:00 Discovering: no
[CHG] Device 4C:90:DE:92:00:00 TxPower is nil
[CHG] Device 4C:90:DE:92:00:00 RSSI is nil
[bluetooth]# pair 4C:90:DE:92:00:00
Attempting to pair with 4C:90:DE:92:00:00
[CHG] Device 4C:90:DE:92:00:00 Connected: yes
[NEW] Primary Service
        /org/bluez/hci0/dev_4C_90_DE_92_00_00/service0001
        00001801-0000-1000-8000-00805f9b34fb
        Generic Attribute Profile
[NEW] Characteristic
        /org/bluez/hci0/dev_4C_90_DE_92_00_00/service0001/char0002
        00002a05-0000-1000-8000-00805f9b34fb
...
[NEW] Characteristic
        /org/bluez/hci0/dev_4C_90_DE_92_00_00/service003a/char003b
        00002a8a-0000-1000-8000-00805f9b34fb
        First Name
[NEW] Characteristic
        /org/bluez/hci0/dev_4C_90_DE_92_00_00/service003a/char003d
        00002a90-0000-1000-8000-00805f9b34fb
        Last Name
[NEW] Characteristic
        /org/bluez/hci0/dev_4C_90_DE_92_00_00/service003a/char003f
        00002a8c-0000-1000-8000-00805f9b34fb
        Gender
...
[CHG] Device 4C:90:DE:92:00:00 UUIDs: 0000181c-0000-1000-8000-00805f9b34fb
[CHG] Device 4C:90:DE:92:00:00 UUIDs: 0000aaa0-0000-1000-8000-aabbccddeeff
[CHG] Device 4C:90:DE:92:00:00 ServicesResolved: yes
Request confirmation
[agent] Confirm passkey 210165 (yes/no): yes
[Pixel XL]# trust 4C:90:DE:92:00:00
[CHG] Device 4C:90:DE:92:00:00 Trusted: yes
Changing 4C:90:DE:92:00:00 trust succeeded

The peripheral device is a Google Pixel XL running Android 10 using Nordic’s nRF app with an advertising profile setup with dummy information. If you pair with a device that does not have some kind of service running, it will disconnect, as BT/BLE has nothing to do.

 

How do I use your precompiled dynamically linked binaries such as your supplicants or radio testing tools?

If the binary returns "not found" or does not work after confirming the executable bit is set with chmod +x <filename>, then you will need to create a symlink pointing to the system's interpreter. The file tool will show the expected interpreter and architecture of a binary, readelf is a lot more verbose and is used to discover the expected "sonames" of shared libraries. These utilities do not have to be used on the target system and is convenient to use on a common x86 Linux machine. These utilities can be installed on Ubuntu with sudo apt install binutils.

Example output from the file command:
sterling_supplicant-arm-7.0.0.139/usr/sbin$ file wpa_supplicant
wpa_supplicant: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.3, for GNU/Linux 3.0.0, stripped

Example output from the readelf command:
sterling_supplicant-arm-7.0.0.139/usr/sbin$ readelf -ld wpa_supplicant Elf file type is EXEC (Executable file)
Entry point 0xba28
There are 10 program headers, starting at offset 52 Program Headers:
...
<edited>
...
      [Requesting program interpreter: /lib/ld-linux.so.3]
...
<edited>
...
Dynamic section at offset 0x176ee8 contains 30 entries:
  Tag        Type                         Name/Value
 0x00000001 (NEEDED)                     Shared library: [librt.so.1]
 0x00000001 (NEEDED)                     Shared library: [libnl-3.so.200]
 0x00000001 (NEEDED)                     Shared library: [libnl-genl-3.so.200]
 0x00000001 (NEEDED)                     Shared library: [libdl.so.2]
 0x00000001 (NEEDED)                     Shared library: [libdbus-1.so.3]
 0x00000001 (NEEDED)                     Shared library: [libgcc_s.so.1]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]
...
<edited>
...

To use this binary, we will have to confirm this symlink exists or create a new symlink pointing to the interpreter on the target filesystem:
cd /lib/
ls -l ld-*
-rwxr-xr-x    1 root     root        158772 Dec  2  2019 /lib/ld-2.26.so
ln -sf ld-2.26.so ld-linux.so.3
ls -l ld-*
-rwxr-xr-x    1 root     root        158772 Dec  2  2019 /lib/ld-2.26.so
lrwxrwxrwx    1 root     root            10 Dec 21 18:55 /lib/ld-linux.so.3 -> ld-2.26.so

If the binary now reports that a library is not found when executed, repeat the steps shown above for creating a library symlink/soname pointing to it's real name. This may require you to use the find command to discover the location of the library. Example for libnl-genl-3:
find / -name 'libnl-genl-3*' -exec ls -l {} 2>/dev/null \;
-rwxr-xr-x    1 root     root         18524 Feb 14 23:42 /usr/lib/libnl-genl-3.so.200.26.0
cd /usr/lib/
ln -sf libnl-genl-3.so.200.26.0 libnl-genl-3.so.200
ls -l libnl-genl-3*
-rwxr-xr-x    1 root     root         18524 Feb 14 23:42 /usr/lib/libnl-genl-3.so.200.26.0
lrwxrwxrwx    1 root     root            24 Feb 14 23:37 /usr/lib/libnl-genl-3.so.200 -> libnl-genl-3.so.200.26.0

If the library does not exist, you will have to include that package in your build. For instance if the above example libnl was missing, include the libnl package when building your filesystem.

I am using a 60 series radio and my firmware is failing to download. What can I do?

You may not have enough space for the firmware. Verify the size of the specific firmware you are using and compare that to your available space. It is also possible that your firmware is not in the correct directory. Verify the location of the firmware file. If neither of these seem to be the issue, please contact Laird support and have the MAC address of your module handy.

What is my best chance to use an antenna that is not pre-certified for my wireless module?

To use an antenna that is not listed on your wireless modules datasheet, it must be of the same topology (e.g. dipole, PIFA, etc.), equal or lesser gain, and have the same in-band and out of band characteristics.

Note: Japan (MIC) lists applicable antennas on its certificates. If your antenna is not on the approved list, regardless of whether it is comparative, it must be added to the certificate before it can be used in Japan.

What is the difference between 802.11ac Wave 1 and Wave 2?

There are several differences. Wave 2 has or supports Multi User MIMO, higher PHY rates, larger channel width, an additional spatial stream, and higher MAC throughput.

How do I confirm WiFi connection status in Linux?

The iw tool can be used to read the status of the device:


# iw dev

phy#0
        Unnamed/non-netdev interface
                wdev 0x2
                addr 7e:4a:78:cc:85:77
                type P2P-device
                txpower 31.00 dBm
        Interface wlan0
                ifindex 7
                wdev 0x1
                addr aa:bb:cc:07:0c:b1
                ssid testAP
                type AP
                channel 11 (2462 MHz), width: 20 MHz, center1: 2462 MHz
                txpower 31.00 dBm

Managed/client mode link information:

# iw wlan0 link

Connected to aa:bb:cc:12:34:56 (on wlan0)
        SSID: testAP
        freq: 2462
        RX: 364 bytes (2 packets)
        TX: 3782 bytes (22 packets)
        signal: -31 dBm
        tx bitrate: 2.0 MBit/s
        bss flags:      short-slot-time
        dtim period:    2
        beacon int:     200

AP mode to read connected client information:

# iw wlan0 station dump

Station aa:bb:cc:8b:6c:fe (on wlan0)
        inactive time:  3000 ms
        rx bytes:       6479
        rx packets:     37
        tx bytes:       9706
        tx packets:     66
        tx failed:      0
        signal:         -44 [-44] dBm
        tx bitrate:     1.0 MBit/s
        rx bitrate:     65.0 MBit/s
        authorized:     yes
        authenticated:  yes
        associated:     yes
        WMM/WME:        yes
        TDLS peer:      no
        DTIM period:    2
        beacon interval:100
        short slot time:yes
        connected time: 20 seconds

 

How do I implement SDIO reset in ST60/SU60?

SDIO reset would rely on SDIO card detection function, which can be done by broken-cd setting in device tree.

1. Modify the dts file:

For example if you use NXP IMX6UL board, the dts file is located at “~/projects/fsl-release-bsp/build-imx6ul-fb/tmp/work-shared/imx6ulevk/kernel-source/arch/arm/boot/dts/imx6ul-14x14-evk.dts”. If you use mmc0, the setting will be in usdhc1.

Add broken-cd function in the setting of usdhc1 as below and also need to make sure there is no setting of “non-removable”.

&usdhc1 {

pinctrl-names = "default", "state_100mhz", "state_200mhz";

pinctrl-0 = <&pinctrl_usdhc1>;

pinctrl-1 = <&pinctrl_usdhc1_100mhz>;

pinctrl-2 = <&pinctrl_usdhc1_200mhz>;

cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;

keep-power-in-suspend;

broken-cd;

enable-sdio-wakeup;

vmmc-supply = <&reg_sd1_vmmc>;

status = "okay";

};

2. Rebuild kernel and then it will set MMC_CAP_NEEDS_POLL during mmc driver initialization.

int mmc_of_parse(struct mmc_host *host)

{



if (of_property_read_bool(np, "non-removable")) {

dev_warn(host->parent,"Parse Card Detection: non-removable\n");

host->caps |= MMC_CAP_NONREMOVABLE;

if (of_property_read_bool(np, "cd-post"))

host->caps2 |= MMC_CAP2_CD_POST;

} else {

cd_cap_invert = of_property_read_bool(np, "cd-inverted");

if (of_property_read_bool(np, "broken-cd"))

{

dev_info(host->parent,"Parse Card Detection: broken-cd\n");

host->caps |= MMC_CAP_NEEDS_POLL;

}



}



}

Then SDHC will check the SDIO bus per second and once there is any PMU_EN or PDN assert event, SDHC will detect the bus no longer available and will unload/reload the SDIO again automatically.

What is the default country code for the 60 and how to do I change it?

The country code is stored in one time programmable memory (OTP) on the 60 Series module. The default is worldwide mode. You can permanently change this in manufacturing using the LMU (Laird Manufacturing Utility). For access to this tool, please submit a ticket using our support portal and we can send you a link to the pre-compiled binaries. More information about using the tool, please download the laird-sterling-60-docs-<ver>.tar.bz2 archive and read the vendor tools application note available here.

What is the difference between the Sterling supplicant and open-source wpa_supplicant?

The Sterling supplicant is based on the open-source wpa_supplicant and is also provided as an open-source package.

We update the source and patch as needed to make sure we are up to date on the latest CVEs.

It also goes through our QA validation process with each production release of backports and firmware. For more information, see the release notes on GitHub:

What is the final decision of WoW pin defined in 60 series?

GPIO Pin on the 88w8997 Pins on SIP WOW Use GPIO 0 23 88W8997.WLAN->Host wake up GPIO 3 67   88W8997.BT->Host wake up PMU_EN 51 Host->88W8897 wake up  

When only using one antenna in my 60-series design, do I need termination for the unused antenna port?

Yes, the unused antenna port needs to be terminated with 50 Ohms.
Please also refer to the application note "app_note_60_siso" that can be found in the documentation archive on Github where you downloaded the Laird software for the module.

What do I need to consider when desinging in the chip-down/SIPT version so I can leverage your modular certifications?

In order to leverage our modular certifications, you must follow the RF design of the module associated with the chip/SIPT. Design files will be provided upon request so you can reproduce our design on your custom board. We highly suggest you to take advantage of our free design review to prevent any issues when going for certification testing.

Please submit a ticket using our support portal when you are ready to begin the process.

What is KNOB (Key Negotiation of Bluetooth) attack vulnerability and how is it addresses in the SU60/ST60?

The specification of Bluetooth includes an encryption key negotiation protocol that allows for the negotiate encryption keys with 1 Byte of entropy without protecting the integrity of the negotiation process.

A remote attacker can manipulate the entropy negotiation to let any standard compliant Bluetooth device negotiate encryption keys with 1 byte of entropy and then brute force the low entropy keys in real time.

With the 7.1.0.9 release for the ST60/SU60, all options including USB-USB have addressed and resolved the KNOB attack vulnerability.

Which Bluetooth 5 features does the 60 series radio support?

The 60 series radio supports every BT 5 feature with the exception of LE Long Range.

Which EAP types are tested with the supplicant for Sterling ST60-SIPT and ST60-2230?

We test our Sterling supplicant for all of the following EAP types: EAP-FAST LEAP PEAP-MSCHAP PEAP-GTC PEAP-TLS EAP-TLS EAP-TTLS

Can I upgrade from a Sterling-60 to a Summit-60?

Yes, the Sterling-60 can be upgraded to a Summit-60 with a software upgrade. There is a license agreement that needs to be in place before this can be done. Please contact us for information.

How do I enable a total of 3 BSSIDs for AP mode?

You must load Summit firmware for multi-BSSID support. After loading the driver and firmware, perform the following: Stop all software that may be managing the Wi-Fi interface including the supplicant, NetworkManager, connman, hostapd, etc.

List out the current virtual interfaces on the physical interface (phy):


# iw dev
phy#0
        Interface wlan0
                ifindex 7
                wdev 0x1
                addr c0:ee:40:50:00:00
                type managed
                txpower 20.00 dBm

 

Delete the virtual interface:


# iw wlan0 del

 

Add up to 3 virtual interfaces onto the phy using unique names per dev (note there are two underscores in __ap):


# iw phy0 interface add ap0 type __ap
# iw phy0 interface add ap1 type __ap
# iw phy0 interface add ap2 type __ap

 

Confirm the virtual interfaces exist:


# iw dev
phy#0
        Interface ap2
                ifindex 10
                wdev 0x4
                addr c0:ee:40:50:00:02
                type AP
                txpower 20.00 dBm
        Interface ap1
                ifindex 9
                wdev 0x3
                addr c0:ee:40:50:00:01
                type AP
                txpower 20.00 dBm
        Interface ap0
                ifindex 8
                wdev 0x2
                addr c0:ee:40:50:00:00
                type AP
                txpower 20.00 dBm

The MAC on the first interface will not change and each subsequent interface added will add 1 to the first MAC.

 

How do I know what CVEs/vulnerabilities have been addressed and in which version of code?

CVEs that have been addressed are referenced in our release notes. If there is a new CVE or one that is not listed in our release notes, please submit a ticket using our support portal and we will provide the status.

Radio-specific release notes can be found in the corresponding GitHub repo: https://github.com/LairdCP/Release-Packages

While loading 7.1.0.9 release in ST60/SU60, driver indicates "/lib/firmware/lrdmwl/regpwr.db not found." What does it mean and how to handle it?

While loading 7.1.0.9 release in ST60/SU60, driver indicates "/lib/firmware/lrdmwl/regpwr.db not found." What does it mean and how to handle it?

It’s the adaptive world mode component (awm) which implements 802.11d/WorldMode “roaming” for SU60, not for ST60.
Among other things it includes a daemon which runs and checks the geo-location of the radio and sets the regulatory domain accordingly.  
The message is just informational. It is not an error and will not cause any problems.

To integrate this part, if you build by yocto, you can add adaptive_ww in your recipe.

Can the 60 series radio operate in a 1x1 antenna configuration instead of a 2x2?

Yes, in our 2nd software release we will provide the capability to switch between a 1x1 and a 2x2 configuration.

 

Does the 60 series radio support the CCX (Cisco Compatible Extensions) feature?

Yes and no. The Sterling-60 module does not support CCX. The Summit-60 module does indeed support CCX.

How does worldwide mode differ from setting a country code?

For international use, we recommend leaving the 60 configured in the default static worldwide mode as this mode will not violate any of our modular certifications.

The 60 series in static WW mode:

  • 2.4GHz band
    • Limited to channels 1-11 for both client and AP mode
  • 5GHz band
    • Flagged for no-IR (no initiating radiation)
      • Initial passive scanning in client mode
      • Standalone AP mode will not be available
    • Restrictions are due to the lack of a radar detection engine used for master devices complying to DFS regulations and different DFS requirements per region
  • Assumes you are going for EN 300 440 which allows the 60 to operate as an SRD on UNII-3 in the ETSI region
  • Is limited to the lowest common denominator of transmit power levels per channel and channel set available of the currently supported modular certifications
    • This mode may only become more restricted; for instance we may add a new modular cert that introduces further restrictions

How to set radio to Soft AP mode?

If you don't want simultaneous ap/sta, you can run the commands:

nmcli conn add type wifi ifname wlan0 con-name softAP autoconnect no ssid softAP

nmcli conn modify softAP 802-11-wireless.mode ap 802-11-wireless.band bg 802-11d

nmcli conn up softAP

You can also do it via wpa_supplicant .conf files if you do not have nmcli.

 

 

When loading the drivers for ST60 is the message "lrdmwl_sdio mmc0:0001:1: Direct firmware load for mwlwifi/WlanCalData_ext.conf failed with error -22" harmful?

No, actually this message is only a warning and should only come up when the highest linux printk debug is set. Laird does not use this file within its software. Hende the warning as well as the file an be neglected.

Which Bluetooth 4.2 features does the 60 series radio support?

All of them.

Does the 60 series radio support all channel bandwidths?

No, the 60 series radio only supports 20, 40, and 80 MHz wide channels. It does not support 120 MHz channels.

Does the 60 series support coexistance features?

Yes. The 60 has coexistence arbitration for WLAN, Bluetooth, and LTE operation.

How do I test layer 2 Bluetooth stability without setting up a profile on a Linux platform?

In BlueZ, some commands such as l2test or l2ping are able to generate traffic on L2CAP layer. To test performance and reliability, you can use the l2test command:

On the server, run the command:

l2test -I 2000 -r

On the client side, run the command:

l2test -O 2000 -s XX:XX:XX:XX:XX:XX

What is the WoW power consumption in BT?

Attached power point file.  

What are some common wpa_supplicant network block profiles?

Open/unsecured Network:


network={
        ssid="myAP"
        key_mgmt=NONE
        scan_ssid=1
}

 

WPA2-PSK:


network={
        ssid="myAP"
        key_mgmt=WPA-PSK
        psk="password"
        pairwise=CCMP
        group=CCMP
        proto=RSN
        scan_ssid=1
}

 

WPA2-AES with EAP-TLS


network={
    scan_ssid=1
    ssid="myAP"
    pairwise=CCMP
    group=CCMP
    key_mgmt=WPA-EAP
    proto=RSN
    eap=TLS
    identity="user1"
    private_key="/etc/certs/user1.pem"
    private_key_passwd="user1"
    client_cert="/etc/certs/user1.pem"
}

 

WPA-TKIP with PEAP MSCHAPv2:


network={
    scan_ssid=1
    ssid="myAP"
    key_mgmt=WPA-EAP
    eap=PEAP
    identity="user1"
    phase1="peaplabel=auto peapver=0 "
    phase2="auth=MSCHAPV2"
    password="user1"
}

 

For the full documentation provided by the wpa_supplicant maintainers, please visit: https://w1.fi/cgit/hostap/plain/wpa_supplicant/wpa_supplicant.conf

What kernel config should be set for ST60?

CONFIG_ARCH_BERLIN  need to be disabled

Platform Selection  -->

[ ] Marvell Berlin SoC Family

Networking support --> Wireless

[ ] cfg80211

Device Driver -->

[*] LED support

<*> LED Class Support

<*> LED Support for GPIO connected LED

[*] LED support for LEDs on system controller

 -*-  LED Trigger support

<*> LED Heartbeat Trigger

[*] LED CPU trigger

Cryptographic API -->

<*> CCM support

<*> GCM/GMAC support

<*> CMAC support

<*> CRC32 CRC algorithm

<*> AES cipher algorithms

<*> ARC4 cipher algorithm

Kernel hacking

<*> Kernel debugging

 

If WiFi interface is PCIE, then need to check the following configuration as well.

Bus support -->

[*] PCI Support

[*] Message signaled Interrupt

[*] Root port Advance error reporting support

[*] PCI express ASPM control

 

For BT, need to have few more extra configuration.

Cryptographic API -->

<*> ECDH algorithm

Networking support -->

< > Bluetooth

Does the 60 series radio support the 802.11d specification?

Only the Summit-60 will support 802.11d. The Sterling-60 does not support 802.11d.

What is the WoW power consumption in WiFi?

Attached power point file.  

What WiFi kernel modules are necessary for the 60 series radio to run on Linux?

When using the 60 series radio you should leverage our latest backports package and documentation. If you do this, as a result, you should have the following kernel modules: compat.ko, cfg80211.ko, mac80211.ko, lrdmwl.ko, and lrdmwl_sdio.ko.

Does the 60 series radio support AP mode?

The 60 series supports a limited SoftAP mode. It is not certified or capable of being a full AP.

Does the 60 series radio support SDIO 3.0 for high throughput applications?

Yes, the 60 radio supports SDIO 3.0.

Performance difference for 802.11AC with only one antenna on the Sterling 60?

The Sterling 60 has connectors for two antennas. What is the performance difference for 802.11AC with only one antenna? That is, a single antenna firmware version was mentioned for the Sterling 60 at a later date. How would that performance compare to the two antenna 60?  - Regarding performance difference between 1x1 and 2x2 MIMO:  We haven?t tested it yet.  Theoretically, 1x1 has half the throughput of 2x2, but you will also lose out on some TX and RX performance.  Typically, with 2x2 MIMO, the TX power is amplified thanks to 2x2 MIMO phase shifting.  Using single antenna you can expect 3dB loss in TX power which equates to half the TX performance vs using two antennas.  For 1x1 RX; the radio will only have one chance to receive a packet, whereas 2x2 gives the radio 2 chances to receive a packet.  With that said, to achieve max performance we recommend two antennas.  However single antenna does offer benefits such as lower power consumption and allow for a smaller form factor product.      

Where can I find additional documentation for the 60 series radios?

Additional documentation can be located in the Sterling 60 GitHub repository

What is the difference between Thick MAC and Thin MAC firmware?

Generally speaking the difference is that a Thick MAC firmware will have most of the radios features and options built into the firmware. With a Thin MAC firmware many features are pulled out of the firmware and put into the driver and supplicant.

Can an 802.11ac Wave 2 device communicate with an 802.11ac Wave 1 access point?

Yes, but it?s capabilities and features will be limited to those of 802.11ac Wave 1.