Wi-Fi Power Modes

Introduction

This document provides details on the different Wi-Fi power modes which can be used by the host to optimize the power efficiency of its application. In addition to providing information on the different Wi-Fi power modes available, the document describes how they should be enabled using the WF(M)200 FMAC or LMAC APIs. To optimize even further the power consumption, the WF200 can make use of its different device power modes (i.e., active, sleep, reset and shutdown). The device power modes are documented here.

Low Power Wi-Fi Background

Wi-Fi power save mechanisms were implemented first in the 802.11 specification. However, at this time (1999) there was almost no battery powered Wi-Fi devices on market so Power Save (PS) was rarely used. Current day IoT devices have a set of specific, well-defined, low-power requirements:

  1. Power Save Mode (PSM) (1999)
  2. Automatic Power Save Delivery (APSD) as a part of WMM (Wi-Fi Multimedia) related to QoS (Quality-of-Service), with two modes:
    • Scheduled (S-APSD), targeting large data flow such as video and audio streaming. Rarely used as it is simpler to leave power save.
    • Un-scheduled (U-APSD), using a trigger frame sent by the Station, targeting less demanding bidirectional communication such as VoIP

The WF(M)200 provides everything required to save power by turning the RF and other parts of the chip off whenever possible (i.e., when not active or receiving beacons) while maintaining the connection to the AP, as well as allowing the host processor to enter suspend mode in the absence of relevant Wi-Fi traffic.

WF(M)200 Low Power Wi-Fi

Silicon Labs WF(M)200 allows applications to achieve optimal power consumption by providing a highly configurable Wi-Fi power mode selection API.

Wi-Fi Protocol Power Modes

The WF(M)200 supports four Wi-Fi power modes.

Below are cases for each mode where the station is connected to an Access Point and configured in the power mode.

To indicate that it will go to sleep, the Station sends a QoS NULL data frame with the Frame Control Field's 'P' (Power Management) bit set to 1.

Active Mode

This is the standard and default mode where the Station is not in power save.

Legacy 802.11 PS Mode (PS-Poll)

Fast-PS Mode

Fast-PS is not defined in the 802.11 specification but is a de-facto popular method to handle power save by having the STA indicate it enables/disables Power Management. When out of power save, less messages are required conpared to PS-Poll to retrieve all the buffered frames.

U-APSD Mode

Introduced with the WMM-PS specification (Wi-Fi Multimedia-Power Save), U-APSD (Un-scheduled Automatic Power Save Delivery) is part of the latest protocols introduced in the Wi-Fi specification.

Choosing the Most Efficient Wi-Fi Power Mode

You can refer to the table below to select the most appropriated Wi-Fi power mode for your application.

Wi-Fi power modeLow throughputHigh throughputInteroperabilityPower savings
Active
  • Efficient
  • Efficient
  • Maximum
  • non-existent
  • PS-Poll
  • Efficient
    Appropriated for "one packet per wake-up" application
  • Inefficient
    Requires additional protocol traffic for each packet
  • Good
  • sub-optimal
    Related to the additional traffic
  • Fast-PS
  • Inefficient
    Timeout after each communication
  • Efficient
    High throughput handled without power save mode enabled
  • Good
  • trade-off
    U-APSD
  • Efficient
  • Efficient
  • Limited
    Relies on the support and good implementation on the AP side
  • optimal
  • Configuring the Wi-Fi Power Mode in your Application

    FMAC Wi-Fi Power Mode API

    In sl_wfx_set_power_mode(), set strategy to the Wi-Fi power mode which fits your application the best.

    // Initialize the Wi-Fi FMAC driver
    sl_wfx_init(); 
    
    // Connect to a Wi-Fi access point
    sl_wfx_send_join_command(); 
    
    // Wait for the succesful connection indication
    
    /**************************************************************************//**
     * @brief Set the power mode used as a station. The Wi-Fi chip will enable the
     * Wi-Fi power mode feature.
     *
     * @param mode is the power mode to be used by the connection
     *   @arg         WFM_PM_MODE_ACTIVE
     *   @arg         WFM_PM_MODE_BEACON
     *   @arg         WFM_PM_MODE_DTIM
     * @param strategy is the device power save polling strategy
    *    @arg         WFM_PM_POLL_UAPSD
     *   @arg         WFM_PM_POLL_FAST_PS
     * @param interval is the number of beacons/DTIMs to skip while sleeping
     * @returns SL_STATUS_OK if the command has been sent correctly,
     * SL_STATUS_FAIL otherwise
     *
     * @note the power mode has to be set once the connection with the AP is
     * established
     *****************************************************************************/
    sl_wfx_set_power_mode(mode, strategy, interval); 

    The WF(M)200 firmware handles the power mode based on the host request and the AP capabilities.

    In addition to the power mode, the host can configured how many beacons/DTIMs should be skipped by the WF(M)200.

    The broadcast frames are sent right after a beacon with DTIM. If a Station uses DTIM skipping (The Station does not wake up for every DTIMs), it can miss part of the broadcast traffic. If the application relies on receving important broadcast messages, it is recommended to wake up on every DTIMs.

    LMAC Wi-Fi Power Mode API

    The Wi-Fi power save mode can be enabled on a Linux platform with the command below.

    # Activate Wi-Fi power save
    iw wlan0 set power_save on

    Not all Linux kernels allow U-APSD. To enable it, follow these intructions. The WF(M)200 handles the Wi-Fi power save mode based on the AP and MAC80211 settings:

    The LMAC API defaults to configuring the WF(M)200 to wake up on every DTIMs.