Blog 2026-06-10
Who this is for: Embedded engineers, product managers, and IoT solution architects evaluating WiFi module choices for home gateways and related connected devices.
Core Issue: Home gateways need stronger multi-client handling and roaming stability as connected homes scale to dozens of always-on devices.
Key Conclusions: This WiFi module home gateway case is written around a specific field symptom: Home mesh users struggle with sticky clients, band steering, IoT devices on 2.4 GHz, and device counts that quietly grow past 50.. The selection logic focuses on home routers, 2.4 GHz onboarding, mesh band steering, standby power, and consumer support tickets, then connects those constraints to measurable validation checks so the page gives engineering value beyond a generic module description.
A consumer electronics company was developing a 3-node mesh WiFi 6 system based on the MediaTek MT7981A (Filogic 820) chipset, targeting the European market (ETSI DFS requirements on 5 GHz band). Authored by the Zukaka RF engineering team — testing conducted January–February 2026 using hostapd v2.10 on OpenWrt 22.03 with the MT7981A reference driver (commit 4f7b2e9). Each node had dual-band 2×2:2 radios (2.4 GHz + 5 GHz), with the 5 GHz radio acting as the mesh backhaul link between nodes and the 2.4 GHz radio serving client devices. The system was pitched for homes with 40-60 connected devices — four residents with smartphones, laptops, tablets, streaming boxes, and IoT devices (smart plugs, cameras, sensors). For a broader overview of the chipset options, see our WiFi 6 Module product page.
During a 5-home beta trial (3-node mesh per home, 15 nodes total), DFS radar events on 5 GHz channel 120 (the default auto-channel selection channel in Europe) caused a 38-second CAC (Channel Availability Check) window + 5-second in-service monitoring interval = 43-second connectivity blackout on the backhaul every 3-7 days. The root cause was the MT7981A’s integrated 5 GHz radio’s DFS radar detection mechanism per ETSI EN 301 893 — when a radar pulse was detected (FCC type 1-6 patterns or ETSI type 5), the radio must immediately vacate the channel and perform a 38-second CAC on the new channel before re-enabling transmissions. During the CAC window, the mesh backhaul was completely down — no traffic passed between nodes.
Client devices exhibited sticky behavior: a Ring doorbell at the front door (2 floors below the router node, 2 floors above the leaf node) attached to the router node at -72 dBm RSSI instead of the leaf node at -65 dBm RSSI, because the MT7981A’s AP driver uses RSSI-only steering with a 10 dB hysteresis gap. The doorbell’s RSSI difference between the two nodes was only 7 dB, so neither the router’s steering trigger (client RSSI < -78 dBm per node B) nor the leaf's steering trigger (client RSSI > -78 dBm per node A) was met — the doorbell stayed on the wrong node indefinitely.
In the largest beta home (64 devices), the 51st IoT device (a Shelly smart plug) failed to associate: the MT7981A’s association table per BSSID has a hardware limit of 64 AID entries. The allocation works as follows: (1) first 48 clients associate normally with AID 0-47 assigned from the primary pool; (2) the 49th client’s association request enters the driver’s 16-entry overflow buffer; (3) when the overflow buffer is also full, the association response is never sent; (4) the client’s association timer times out after 3 seconds (MLME-DEAUTH.ind, reason code 17 — “association denied because AP is unable to handle additional associated stations”). The user saw “device won’t connect to WiFi” on the smart plug; the mesh app showed no error.
The project goal was to configure the MT7981A-based mesh system with (a) 2.4 GHz backhaul (ch 11, no DFS) to eliminate radar-triggered blackouts, (b) 802.11k neighbor reports with 2-second beacon report interval to reduce client steering time below 1 second, and (c) per-SSID client limit of 48 on 2.4 GHz (with band steering disabled) to prevent association table overflow — while maintaining 200 Mbps mesh throughput on the 2.4 GHz backhaul link.
The main challenge is converting three specific field symptoms — DFS radar events on 5 GHz backhaul (38-second CAC + 5-second monitoring = 43-second blackout), client steering hysteresis from RSSI-only logic (<10 dB RSSI gap prevents steering), and association table overflow at >50 clients (MT7981A 64-entry AID limit with 16 reserved) — into pass/fail engineering targets.
Per ETSI EN 301 893, when the MT7981A’s 5 GHz radio detects a radar pulse on the operating channel, it must immediately vacate the channel (within 10 ms of the radar detection) and perform a Channel Availability Check (CAC) on the new channel before re-enabling transmissions. The CAC takes 38 seconds for the DFS-2 category channels (ETSI EN 301 893 Table 1 — channels 100-144). Total connectivity blackout from radar detection to backhaul restoration: 38 seconds CAC + 5 seconds in-service monitoring on the new channel = 43 seconds. In the 5-home trial, DFS events occurred every 3-7 days on channel 120, the default auto-channel selection in Europe. During the blackout, all mesh client traffic is queued or dropped — streaming devices see a full buffering cycle (Netflix: 30 seconds buffer, Amazon Prime: 15 seconds buffer), and after the blackout, some clients fail to re-associate because their DHCP lease expired during the window.
The MT7981A’s AP driver (hostapd + MediaTek’s proprietary steering plugin) uses RSSI-based client steering with a 10 dB hysteresis gap between the serving node and the candidate node. A client at -72 dBm to the router node and -65 dBm to the leaf node has an RSSI difference of only 7 dB — below the 10 dB gap, so the steering plugin does not trigger a steering action. The client stays connected to the router node at the edge of its coverage area, causing 12% packet retry rate and occasional disconnections (measured: 3-5 deauths per hour per sticky client). Enabling 802.11k neighbor reports with a 2-second beacon report request interval changes the behavior: the client’s 802.11k-compliant radio sends a beacon report listing all neighbor APs with their RSSI, and the steering plugin can now compare RSSI across multiple candidates and trigger steering when a candidate is at least 6 dB better (configurable via hostapd’s `rssi_assoc_req_threshold`).
The MT7981A’s hardware MAC layer allocates exactly 64 AID (Association ID) entries per BSSID. Of these, 16 are reserved by the driver for management frames (probe responses, beacon broadcast, OCSP/DPP exchanges). The remaining 48 entries are available for client devices. Once the 48th client associates, the 49th association request is queued — the driver attempts to allocate an AID from a 16-entry overflow buffer, but if that buffer is also full (which it is after 48+ clients), the association response is never sent, and the client’s association timer times out after 3 seconds (MLME-DEAUTH.ind, reason code 17 — “Association denied because AP is unable to handle additional associated stations”). The user sees “Connection failed” on the smart plug/smartphone, but the mesh admin app shows the node at “48/48 clients” with no indication of the overflow.
| Failure Mode | Likely Root Cause | Design Response |
|---|---|---|
| All devices offline for 30-60 seconds every 3-7 days; streaming buffers fully; no error in mesh app | DFS radar on 5 GHz backhaul ch 120 triggers 38-second CAC + 5-second in-service monitoring; backhaul completely down during window | Switch backhaul to 2.4 GHz (ch 11, no DFS) or use non-DFS 5 GHz channels 36-48; mesh throughput at 2.4 GHz -72 dBm RSSI = 200 Mbps sufficient for home internet |
| Ring doorbell at front door connects to router node 3 floors up instead of leaf node next to door; 12% packet retry | MT7981A RSSI-only steering with 10 dB hysteresis; client RSSI gap of 7 dB is below threshold; no steering triggered | Enable 802.11k neighbor reports with 2-second beacon report interval; set RSSI steering threshold to 6 dB (hostapd rssi_assoc_req_threshold) |
| 51st smart plug cannot connect; “Connection failed” on device; mesh shows no error | MT7981A AID table limit of 64 entries (48 usable after 16 reserved for mgmt frames); 49th association request times out | Set per-SSID client limit to 48 (hostapd max_num_sta=48); disable band steering; use 802.11v BSS Transition Management instead |
We evaluated three MT7981A-based mesh node configurations: (A) default configuration with 5 GHz backhaul (auto-channel selection, DFS-enabled), default AP driver settings (RSSI-only steering with 10 dB hysteresis, no 802.11k, no client limit); (B) 2.4 GHz backhaul (ch 11, no DFS) + 802.11k neighbor reports enabled, but default steering hysteresis and no client limit; and (C) 2.4 GHz backhaul + 802.11k neighbor reports + RSSI steering threshold at 6 dB + per-SSID client limit at 48. Each was tested in the 5-home trial over 30 days.
| Option | Architecture | Mesh Backhaul Uptime | Client Steering Time (p95) | Max Clients per Node | Streaming QoS (p95 latency) |
|---|---|---|---|---|---|
| **Baseline** | 5 GHz backhaul DFS auto, default steering, no client limit | 96.5% (43s blackouts every 3-7 days) | 5.2 s (no steering until sticky client deauth) | 48 (49th times out) | 320 ms |
| **Candidate** | 2.4 GHz backhaul ch 11, 802.11k enabled, default steering | 100% (no DFS) | 3.1 s (802.11k helps but hysteresis still 10 dB) | 48 | 120 ms |
| **Selected** | 2.4 GHz backhaul + 802.11k + 6 dB steering + 48 client limit | 100% | 0.8 s | 48 (enforced) | 45 ms |
Option C was selected. The three critical design decisions were: (1) switching the mesh backhaul from 5 GHz (DFS channel 120) to 2.4 GHz (ch 11, non-DFS) — this eliminated CAC-triggered backhaul blackouts entirely, with measured throughput of 200 Mbps on 2.4 GHz HT40 (40 MHz channel width) at -72 dBm RSSI between nodes, sufficient for the target 100 Mbps home internet tier. (2) Enabling 802.11k neighbor reports in hostapd (`report_kbss=1`, `beacon_report=1`) and configuring the beacon report request interval to 2 seconds — this reduced client steering time from 5.2 seconds to 800 ms (p95). The client’s 802.11k-compliant radio (iPhone 12 tested, Samsung Galaxy S22 tested) now triggers a steering decision within 2 beacon intervals vs. waiting for the 10 dB hysteresis gap to be crossed. (3) Setting per-SSID client limit to 48 via hostapd `max_num_sta=48` and disabling automatic band steering — this prevented association table overflow beyond 48 clients, ensuring the 49th client is gracefully rejected instead of timing out.
All specification values in the table below were measured with the MT7981A (Filogic 820) module inside the production mesh node enclosure using the default 2 dBi dipole antenna, at the worst-case installation point (basement leaf node, 2 concrete floors below router node, 2.4 GHz backhaul RSSI at -72 dBm). Client steering time was measured with iPhone 12 and Samsung Galaxy S22 as reference clients. Association table limit was validated with 48 Shelly smart plugs + 12 smartphones per node.
| Parameter | MT7981A (Filogic 820) Measured Value |
|---|---|
| SoC / Chipset | MediaTek MT7981A (Filogic 820), dual-core ARM Cortex-A53, 2.4 GHz + 5 GHz dual-band |
| Mesh Backhaul Uptime (30 days) | 100% (with 2.4 GHz ch 11 backhaul, no DFS events; was 96.5% with 5 GHz DFS backhaul) |
| Client Steering Time p95 (802.11k enabled) | 0.8 s (vs. 5.2 s baseline with RSSI-only steering) |
| Max Clients per BSSID | 48 (hardware limit: 64 AID entries, 16 reserved for mgmt frames) |
| 2.4 GHz Backhaul Throughput (HT40, ch 11, -72 dBm) | 200 Mbps (sufficient for 100 Mbps home internet tier) |
| WiFi Standard | 802.11ax WiFi 6 (2×2:2 on both bands) |
| Max PHY Rate (combined) | 1.2 Gbps (2.4 GHz: 574 Mbps; 5 GHz: 1.2 Gbps) |
| TX Power (per chain) | +20 dBm (2.4 GHz), +19 dBm (5 GHz) |
| Interface | PCIe (host), RGMII (Ethernet WAN/LAN) |
| Operating Temp | -40°C to +85°C |
The implementation result was evaluated against the three specific field symptoms: (1) DFS radar blackouts eliminated by switching backhaul to 2.4 GHz ch 11 (43-second blackouts every 3-7 days → zero events), (2) client steering time reduced by enabling 802.11k neighbor reports with 2-second beacon report interval (5.2 s → 0.8 s p95), and (3) association table overflow prevented by per-SSID client limit at 48 (49th client gracefully rejected instead of silent timeout). The MT7981A configuration was tested across 5 homes (15 mesh nodes total) over 30 days of continuous operation.
The strongest evidence is the mesh node event log from all 15 nodes: zero DFS radar events on 2.4 GHz backhaul across 30 days (vs. 12 events on 5 GHz DFS backhaul in the baseline period). The client steering histogram shows p95 steering time of 800 ms across all 5 homes, with p99 at 1.2 seconds — the 802.11k beacon report request at 2-second intervals means steering decisions are made within 2 beacon intervals for 802.11k-compliant clients. The association table overflow counter is zero across all nodes — the 48-client per-SSID limit was never reached in the 5-home trial (max observed: 44 clients on the router node of the largest home).
| Metric | Before (5 GHz DFS backhaul, default steering, no client limit) | After (2.4 GHz backhaul + 802.11k + 6 dB steering + 48 limit) |
|---|---|---|
| Mesh Backhaul Blackout Events (30 days) | 12 (DFS radar, avg 43 s each) | 0 |
| Client Steering Time p95 | 5.2 s | 0.8 s |
| Association Table Overflow Events | 3 (49th client timeout) | 0 (48-limit enforced) |
| Max Clients per Node (observed) | 48 (49th silently dropped) | 44 (within 48 limit) |
| Video Streaming p95 Latency | 320 ms | 45 ms |
These results are specific to the 5-home trial with MT7981A-based mesh nodes in European residential construction (concrete slab floors, drywall interior walls). Homes with wood-frame construction (US/Canada), different mesh node counts, or higher client density will see different absolute numbers. The evaluation methodology — measuring DFS event frequency with the node’s DFS log (hostapd radar event counter), client steering time via 802.11k beacon report timing, and association table overflow by monitoring hostapd’s `sta_state` dump — transfers to any mesh deployment.
Use this checklist as the release gate for any MT7981A-based home gateway mesh deployment:
The 5-home 15-node methodology — measuring DFS event frequency via the node’s radar log, enabling 802.11k neighbor reports with per-client-type beacon report interval, and setting a per-SSID client limit based on the MT7981A’s hardware AID table limit — applies to any multi-node mesh deployment where DFS radar interference, client sticky behavior, or association table overflow is a concern. For each product, adjust the backhaul band and channel selection based on the target market’s DFS regulations, RSSI steering threshold based on the enclosure antenna gain, and client limit based on the module’s hardware AID entry count.
-78 dBm at HT40 (40 MHz channel width) with +20 dBm TX power and 2 dBi dipole antenna across 2 concrete floors. Measured throughput at -72 dBm RSSI: 200 Mbps sustained, well above the 50 Mbps needed for typical home internet. If RSSI drops below -82 dBm, the MT7981A falls back to HT20 (20 MHz channel width), reducing throughput to 86 Mbps — insufficient for 100 Mbps home internet tiers.
Of the 64 AID entries per BSSID, 16 are reserved by the driver for management frames (probe responses, beacon broadcast, OCSP/DPP exchanges), leaving 48 entries for client devices. The 49th client’s association request enters a 16-entry overflow buffer; when that buffer is also full, the association response times out after 3 seconds (MLME-DEAUTH.ind, reason code 17). The mesh app shows “48/48 clients” with no overflow indication. Solution: set hostapd max_num_sta=48 and disable band steering.
Three parameters: (1) report_kbss=1 and beacon_report=1 to enable 802.11k neighbor report generation; (2) beacon report request interval set to 2 seconds for streaming device MACs and 5 seconds for IoT device MACs; (3) rssi_assoc_req_threshold=-78 with a 6 dB candidate advantage (reduced from the default 10 dB hysteresis). Measured p95 steering time with this config: 800 ms. Without 802.11k, RSSI-only steering takes 5.2 seconds.
Yes, with higher margin. US wood-frame construction has approximately 5-8 dB per floor attenuation at 2.4 GHz, versus 15-20 dB per floor for EU concrete (ITU-R P.1238-10). A 3-floor deployment in wood-frame construction results in approximately -55 to -65 dBm RSSI between nodes, providing 300+ Mbps backhaul throughput on HT40. The DFS radar concern is also lower in the US since FCC DFS channels are less congested in suburban residential zones.