WF(M)200 Concurrent Mode (SoftAP + Station)

Naming Convention

The 'SoftAP' terminology is used to indicate that the WF(M)200 is not a full-featured Wi-Fi access point. It only supports up to 8 stations simultaneously and has limited capabilities.

Introduction

As demonstrated in the LMAC Quick Start Guide Examples and FMAC Quick Start Guide Examples, the WF(M)200 can support both a SoftAP and a Station interface concurrently.

This mode should be used in applications requiring a temporary access for configuration. A perfect fit for this feature is a Wi-Fi device commissioning process. During this phase, a user wants to connect a Wi-Fi device to his home network. To do so, the SoftAP interface can be used to enter the Wi-Fi access point name, security information and confirm the connection has been successful.

Concurrent Mode Considerations

While using the WF(M)200 concurrent mode, keep in mind the following considerations:

Concurrent Mode using the Full-MAC Driver

Using the FMAC API, the WF(M)200 can be configured in concurrent mode by calling the two APIs below:

Concurrent Mode using the Low-MAC Driver

Under Linux this is achieved via 2 logical wlan interfaces: wlan0 and wlan1, sharing a single WF(M)200.

Please see below specifics related to starting Station on wlan1 before starting SoftAP on wlan0.

It is possible to check nl80211 support of the AP mode using:

iw list
[...]
        Supported interface modes:
                 * IBSS
                 * managed
                 * AP
                 * AP/VLAN
                 * monitor
[...]

where

Support for concurrent STA/SoftAP is also indicated:

[...]
        valid interface combinations:
                 * #{ managed } <= 1, #{ AP } <= 1,
                   total <= 2, #channels <= 2
[...]

Configuration Details

Adding 'wlan1' Interface to 'wlan0'

To get two interfaces at the same time, run:

sudo iw dev wlan0 interface add wlan1 type managed

In case you are starting Station on wlan1 before starting SoftAP on wlan0, also execute:

  sudo ip link set dev wlan0 down

Important Note: sudo ip link set dev wlan0 down is only needed when starting the Station on wlan1 before starting the SoftAP on wlan0, to avoid this error:

Failed to connect to non-global ctrl_ifname: wlan1 error: No such file or directory

This happens because we are starting the Station on wlan1 first. It looks like a bug in the network layers, since 'sudo ip link show' indicates that wlan0 is already DOWN.

Example Scripts

Example scripts for all 4 cases are available in GitHub.

These scripts use the following packages to configure the interfaces: