14  Mobile Labs: Wi-Fi Spectrum Analysis

In 60 Seconds

A Wi-Fi site survey uses an ESP32 or similar scanner to measure per-channel network counts and RSSI at multiple locations, producing data that directly informs channel selection (typically 1, 6, or 11 in the 2.4 GHz band to avoid overlap). Comparing measured path loss against theoretical free-space values reveals the extra attenuation from walls, furniture, and interference, which is essential for realistic coverage planning.

14.1 Learning Objectives

By the end of this chapter, you will be able to:

  • Conduct an RF site survey: Execute Wi-Fi scans at multiple locations and classify interference sources by type and severity
  • Evaluate channel congestion: Analyse per-channel network counts and RSSI histograms to justify selecting a non-overlapping channel (1, 6, or 11)
  • Construct an ESP32 scanner: Build and flash firmware that inventories nearby networks and generates a channel-occupancy histogram
  • Compare measured vs theoretical path loss: Collect RSSI-vs-distance data and calculate the additional attenuation introduced by walls, furniture, and co-channel interference
  • Synthesise a site-survey report: Combine channel, RSSI, and path-loss data into actionable recommendations for AP placement, channel plan, and coexistence risks

14.2 Prerequisites

Before diving into this chapter, you should be familiar with:

  • Spectrum Analyzer: Tool (hardware or software like Wireshark/Kismet) measuring signal strength across a frequency range
  • Channel Utilization: Percentage of time a Wi-Fi channel is occupied by transmissions; above 50% causes significant performance degradation
  • Noise Floor: Background RF noise level in a channel; higher noise floor reduces effective range and throughput
  • Adjacent Channel Interference: Overlap between signals on adjacent Wi-Fi channels (e.g., 1 and 2 overlap); use non-overlapping channels (1, 6, 11)
  • Beacon Frame Analysis: Examining Wi-Fi management frames to identify all nearby APs, their SSIDs, channels, and security settings
  • RSSI vs Distance: Signal strength measurement used to estimate distance; not reliable for precise positioning due to multipath
  • Hidden Node Detection: Identifying devices that cannot hear each other but both transmit to a common AP; causes persistent collisions
  • Capture Effect: Strong signal at receiver suppresses weaker colliding signals; affects how collisions are resolved in Wi-Fi

“Time to be spectrum detectives!” announced Max the Microcontroller, holding up an ESP32 board. “We are going to scan all the Wi-Fi networks around us and figure out which channels are crowded and which are clear. It is like checking which lanes on a highway have the most traffic.”

Sammy the Sensor was excited. “How does the scanner work?” Max explained, “The ESP32 has a built-in Wi-Fi radio that can scan all 13 channels in the 2.4 GHz band. For each network it finds, it reports the channel, signal strength (RSSI), and network name. We collect this data at different locations to build a picture of the RF environment.”

“The golden rule,” said Lila the LED, “is to use channels 1, 6, or 11 in the 2.4 GHz band. These are the only three that do not overlap with each other. If your neighbor’s router is on channel 6 and yours is on channel 7, you are actually interfering with each other even though you picked different numbers!”

Bella the Battery shared a practical tip. “Walk around with your scanner and measure at different spots. Signal strength drops behind walls, near metal objects, and close to microwave ovens. Comparing your real measurements to the theoretical path loss formula shows you how much extra attenuation the building adds. That real-world data is what makes your coverage plan accurate.”

14.4 Getting Started (For Beginners)

These labs are about making the RF concepts from the fundamentals chapters visible in the real world.

  • If you have an ESP32 and can install tools:
    • Run the Wi-Fi scanner, collect RSSI measurements at different locations, and build a simple channel plan.
    • Use the exercises to connect what you see on the screen with ideas like channel congestion and path loss.
  • If you cannot run the code right now:
    • Read through the sketches and focus on the printed outputs and analysis questions.
    • Sketch simple “coverage maps” on paper based on the example outputs, then answer the Knowledge Check.

Key ideas to remember while working through this chapter:

Concept Plain explanation
Channel A slice of spectrum; multiple Wi-Fi networks share it
RSSI Received signal strength indicator (how loud the AP is)
Interference Other devices transmitting on the same/adjacent channel
Path loss How much signal power is lost as distance increases

If terms like RSSI, path loss, or channel overlap feel unfamiliar, skim Mobile Wireless Fundamentals again, then come back and treat these labs as concrete experiments that bring those graphs and formulas to life.

How It Works: Wi-Fi Channel Scanning

The ESP32 Wi-Fi radio scans all 13 channels (2.4 GHz band) sequentially by tuning to each center frequency (2412 MHz for channel 1, 2417 MHz for channel 2, etc.) and listening for beacon frames. Access points broadcast beacons every 100 ms containing SSID, channel, encryption type, and other capabilities. The scanner measures Received Signal Strength Indicator (RSSI) in dBm for each beacon it hears. After scanning all channels, you have a complete picture: how many networks are on each channel, their signal strengths, and which channels overlap. Channels 1, 6, and 11 are spaced 25 MHz apart (5 channels × 5 MHz spacing), making them the only three non-overlapping options for 20 MHz-wide Wi-Fi channels in the 1-11 range.

14.5 Hands-On Lab: RF Spectrum Analysis

14.5.1 Lab Objective

Use Wi-Fi scanner tools to analyze the wireless environment and identify interference sources.

14.5.2 Equipment Needed

  • ESP32 development board (built-in Wi-Fi)
  • Arduino IDE
  • Computer with USB connection
  • Optional: smartphone Wi-Fi analyzer app and/or an SDR (e.g., RTL-SDR) for broader spectrum viewing
Ethics and Safety

Run scans only in environments you own or have explicit permission to assess. This lab focuses on passive observations (SSID/channel/RSSI) and planning - not capturing traffic or accessing networks.

14.5.3 Wi-Fi Scanner Lab Workflow

Understanding the complete workflow from hardware setup to data analysis ensures successful lab implementation.

Wi-Fi scanner lab workflow flowchart showing complete process from hardware setup through code loading and compilation, upload success decision point, multiple scanning iterations at different locations, data analysis for channel congestion and path loss, visualization creation, recommendations generation, and final knowledge verification to lab completion
Figure 14.1: Wi-Fi scanner lab workflow from hardware setup through scanning to analysis.

14.6 Task 1: Wi-Fi Channel Scanner

Objective: Run the Wi-Fi channel scanner on ESP32 to discover nearby networks, analyze channel congestion, and determine the best channel for your IoT deployment.

Paste the code below into the simulator. The Wokwi virtual environment provides simulated Wi-Fi networks. Watch the Serial Monitor for the network scan results, channel congestion histogram, and channel recommendation. In a real environment, you would see all nearby access points with their actual signal strengths.

What to Observe:

  1. Each network shows SSID, signal strength (RSSI), channel number, and encryption type
  2. The channel congestion histogram shows how many networks are on each channel
  3. Channels 1, 6, and 11 are non-overlapping in 2.4 GHz – the scanner recommends the least congested of these three
  4. Try running this on real ESP32 hardware to see your actual RF environment

Create a tool to scan all 2.4 GHz Wi-Fi channels and identify the least congested channel. The scanner counts networks per channel, tracks RSSI, and recommends the clearest channel.

#include <WiFi.h>

void setup() {
    Serial.begin(115200);
    WiFi.mode(WIFI_STA);
    WiFi.disconnect();
    delay(100);
    Serial.println("\n\nWi-Fi Channel Scanner");
    Serial.println("=====================");
}

void loop() {
    Serial.println("\nScanning Wi-Fi networks...");

    // Scan for networks
    int n = WiFi.scanNetworks();

    // Create channel usage array
    int channelCount[15] = {0};  // index 1..13 (2.4 GHz); keep 14 safe for region-specific cases

    if (n == 0) {
        Serial.println("No networks found");
    } else {
        Serial.printf("Found %d networks:\n\n", n);
        Serial.println("SSID                             | RSSI | Ch | Encryption");
        Serial.println("-----------------------------------------------------------------");

        for (int i = 0; i < n; i++) {
            int channel = WiFi.channel(i);
            if (channel >= 1 && channel <= 14) {
                channelCount[channel]++;
            }

            Serial.printf("%-32s | %4d | %2d | %s\n",
                WiFi.SSID(i).c_str(),
                WiFi.RSSI(i),
                channel,
                getEncryptionType(WiFi.encryptionType(i)));
        }

        // Analyze channel congestion
        Serial.println("\n\nChannel Congestion Analysis:");
        Serial.println("============================");
        for (int ch = 1; ch <= 13; ch++) {
            Serial.printf("Channel %2d: ", ch);
            for (int i = 0; i < channelCount[ch]; i++) {
                Serial.print("█");
            }
            Serial.printf(" (%d networks)\n", channelCount[ch]);
        }

        // Find least congested channel (from 1, 6, 11)
        int channels[] = {1, 6, 11};
        int minCount = 999;
        int bestChannel = 1;

        for (int i = 0; i < 3; i++) {
            if (channelCount[channels[i]] < minCount) {
                minCount = channelCount[channels[i]];
                bestChannel = channels[i];
            }
        }

        Serial.printf("\nRecommended channel: %d (%d networks)\n",
                      bestChannel, minCount);
    }

    delay(10000);  // Scan every 10 seconds
}

String getEncryptionType(wifi_auth_mode_t encryptionType) {
    switch (encryptionType) {
        case WIFI_AUTH_OPEN:
            return "Open";
        case WIFI_AUTH_WEP:
            return "WEP";
        case WIFI_AUTH_WPA_PSK:
            return "WPA-PSK";
        case WIFI_AUTH_WPA2_PSK:
            return "WPA2-PSK";
        case WIFI_AUTH_WPA_WPA2_PSK:
            return "WPA/WPA2-PSK";
        case WIFI_AUTH_WPA2_ENTERPRISE:
            return "WPA2-Enterprise";
#ifdef WIFI_AUTH_WPA3_PSK
        case WIFI_AUTH_WPA3_PSK:
            return "WPA3-PSK";
#endif
#ifdef WIFI_AUTH_WPA2_WPA3_PSK
        case WIFI_AUTH_WPA2_WPA3_PSK:
            return "WPA2/WPA3-PSK";
#endif
        default:
            return "Unknown";
    }
}

14.6.1 Understanding Channel Selection

The 2.4 GHz Wi-Fi band has 14 channels (13 in most regions), but each channel is 20-22 MHz wide while channels are spaced only 5 MHz apart. This means channels overlap:

Diagram showing 2.4 GHz Wi-Fi channel overlap with channels 1, 6, and 11 highlighted as the three non-overlapping options for 20 MHz operation
Figure 14.2: 2.4 GHz Wi-Fi channel overlap showing non-overlapping channels 1, 6, and 11.

Why only 1, 6, and 11?

  • These channels are 25 MHz apart (5 channels × 5 MHz spacing)
  • With 20 MHz channel width, they don’t overlap
  • Using channel 3 would interfere with both 1 and 6

Calculate channel separation: Channel 1 center = 2.412 GHz, Channel 6 = 2.437 GHz

\[\Delta f = 2.437 - 2.412 = 0.025 \text{ GHz} = 25 \text{ MHz}\]

With 20 MHz channel width, channels 1 and 6 occupy: [2.402-2.422 GHz] and [2.427-2.447 GHz], with 5 MHz guard band. Channel 3 at 2.422 GHz overlaps both, causing co-channel interference. Only channels spaced \(\geq\) 5 apart (1, 6, 11) avoid overlap.

  • In regions allowing channels 12-13, alternative schemes like 1/5/9/13 are possible
Quick Check: Channel Selection

14.7 Task 2: Signal Strength Mapping

Modify the scanner to create a heat map of signal strength at different locations:

  1. Take measurements at 5-10 locations in your environment
  2. Record RSSI for each channel
  3. Create a simple visualization showing signal strength patterns
  4. Identify dead zones and interference sources

14.7.1 Data Collection Template

Location Distance (m) RSSI (dBm) Ch 1 Networks Ch 6 Networks Ch 11 Networks
Near AP 1 -35 2 3 1
Office 5 -55 2 4 1
Hallway 10 -68 3 5 2
Far room 20 -78 4 6 2
Basement 25 -85 5 7 3

14.8 Task 3: Path Loss Measurements

  1. Set up two ESP32 boards (one as AP, one as client)
  2. Measure RSSI at distances: 1m, 5m, 10m, 20m
  3. Calculate observed path loss
  4. Compare with theoretical free space path loss
  5. Identify factors causing deviation (walls, furniture, interference)

14.8.1 Path Loss Analysis Code

#include <WiFi.h>

// Target network to measure
const char* targetSSID = "YourTestAP";

void setup() {
    Serial.begin(115200);
    WiFi.mode(WIFI_STA);
    WiFi.disconnect();
    delay(100);

    Serial.println("\n\nPath Loss Measurement Tool");
    Serial.println("==========================");
    Serial.println("Move to different distances and press Enter to measure");
}

void loop() {
    if (Serial.available()) {
        Serial.read();  // Clear input

        Serial.println("\nScanning...");
        int n = WiFi.scanNetworks();

        bool found = false;
        for (int i = 0; i < n; i++) {
            if (WiFi.SSID(i) == targetSSID) {
                found = true;
                int rssi = WiFi.RSSI(i);

                Serial.printf("Network: %s\n", targetSSID);
                Serial.printf("RSSI: %d dBm\n", rssi);
                Serial.printf("Channel: %d\n", WiFi.channel(i));

                // Calculate path loss (assuming TX power of 20 dBm)
                int txPower = 20;  // Typical ESP32 TX power
                int pathLoss = txPower - rssi;
                Serial.printf("Observed Path Loss: %d dB\n", pathLoss);

                // Compare with FSPL at 2.4 GHz
                Serial.println("\nTheoretical FSPL at 2.4 GHz:");
                Serial.println("  1m:  40 dB");
                Serial.println("  5m:  54 dB");
                Serial.println(" 10m:  60 dB");
                Serial.println(" 20m:  66 dB");

                break;
            }
        }

        if (!found) {
            Serial.printf("Network '%s' not found\n", targetSSID);
        }
    }

    delay(100);
}

14.9 Analysis Questions

After completing the lab tasks, answer these questions:

  1. Which 2.4 GHz channels are most congested in your environment?
  2. What is the RSSI difference between 1m and 10m measurements?
  3. How does the observed path loss compare to the theoretical value?
  4. Can you identify specific interference sources (e.g., microwave ovens, Bluetooth devices)?

14.10 Deliverable: Mini Site-Survey Report

Report Template (1-2 pages)

Use this template to turn measurements into deployment decisions:

1. Environment Description

  • Location, obstacles, expected device density
  • Constraints (power, mounting, regulations)

2. Measurement Plan

  • Where you measured, tools used, time of day
  • Duration of measurements

3. Channel Occupancy

  • Top networks by RSSI
  • Channel histogram (2.4 GHz)
  • Recommended channel (1/6/11)

4. Coverage Notes

  • RSSI vs distance observations
  • Suspected blockers (walls, metal, etc.)
  • Dead zones identified

5. Recommendations

  • Channel selection justification
  • AP placement suggestions
  • Coexistence risks (Bluetooth/Zigbee/microwave)

6. Validation Plan

  • What to re-measure after changes
  • Latency, packet loss, RSSI stability metrics

14.11 Knowledge Check: RF Spectrum Analysis

Test your understanding of RF spectrum analysis and channel planning:

Question 4: Approximately how many dB less free-space path loss does 868 MHz have compared to 2.4 GHz at the same distance?

dB

Explanation: FSPL increases with frequency: FSPL = 20 log10(f2/f1). For 2.4 GHz vs 868 MHz, 20 log10(2.4/0.868) is approximately 8.8 dB (approximately 9 dB).

14.12 Understanding Check: Industrial Scenario

Scenario: An automotive factory needs to monitor 300 sensors across a 500m x 200m production floor with: overhead metal cranes, stamping presses (heavy RF noise), thick concrete support columns, and conveyor systems. Each sensor reports machine vibration, temperature, and throughput (combined 10 kbps data rate). Existing 2.4 GHz Wi-Fi network experiences 15-30% packet loss in metalworking areas. Factory operates 24/7 with zero downtime tolerance.

Think about:

  1. Why does free-space path loss at 500m differ by 9 dB between 868 MHz and 2.4 GHz?
  2. How do longer sub-GHz wavelengths (34 cm) diffract around metal machinery better than 2.4 GHz (12 cm)?
  3. What’s the link budget margin when your path loss approaches receiver sensitivity limits?

Key Insight: At the same distance, 868 MHz has ~9 dB less free-space path loss than 2.4 GHz. In cluttered industrial spaces, that difference can translate into meaningful link-margin headroom, but the actual margin depends on your radios and the environment.

Illustrative link budget at 500 m (replace these numbers with your datasheet + measurements):

Transmit EIRP: +10 dBm (example)
Receiver sensitivity: -110 dBm (example)
Link budget: 120 dB

Free-space path loss at 500 m:
- 868 MHz: ~85 dB
- 2.4 GHz: ~94 dB  (≈9 dB higher)

Assume additional losses (clutter + fading margin):
- 868 MHz: +26 dB → total loss ~111 dB → margin ~+9 dB ✓
- 2.4 GHz: +31 dB → total loss ~125 dB → margin ~-5 dB ✗

Why sub-GHz can help:

  • Lower FSPL at the same distance and often better diffraction in cluttered environments
  • More link margin for the same EIRP and receiver sensitivity (radio-dependent)
  • Trade-off: typically lower data rates; confirm your workload fits

Verify Your Understanding:

  • If you increased transmit power to +20 dBm, would 2.4 GHz become viable? Calculate the new link margin.
  • How would you use the Wi-Fi scanner lab to measure actual 2.4 GHz congestion in your factory deployment area?

Quick calculation: If the 2.4 GHz link margin is -5 dB at +10 dBm TX power, what is the new margin if you increase TX power to +20 dBm (all else equal)?

dB

Explanation: +10 dB TX power increases link margin by +10 dB. New margin = -5 dB + 10 dB = +5 dB (viable but still needs fade margin in practice).

When your Wi-Fi network suffers from interference or congestion, follow this systematic framework to diagnose and resolve issues.

14.12.1 Step 1: Conduct Site Survey

Tools Needed:

  • ESP32 Wi-Fi scanner (this chapter’s code) OR commercial tool (NetSpot, Ekahau)
  • Measurement plan: 8-12 locations across deployment area
  • Time windows: Peak hours (9am-5pm) and off-peak (evening/weekend)

Scan all locations and record:

Location Networks Ch1 Networks Ch6 Networks Ch11 Strongest RSSI Notes
Office A 2 5 3 -45 dBm (Ch6) High congestion
Hallway 3 4 2 -52 dBm (Ch1) Moderate
Conference 4 7 4 -38 dBm (Ch6) Very high
Kitchen 2 3 2 -58 dBm (Ch11) Acceptable

Key metrics to calculate:

  • Channel utilization: % of time channel is busy (< 40% good, > 70% problematic)
  • Co-channel interference: Number of networks on same channel
  • Adjacent-channel interference: Networks on overlapping channels (e.g., Ch3-Ch6)

14.12.2 Step 2: Identify Root Causes

Problem Type 1: Too Many APs on One Channel

Symptoms:

  • High network count on channels 6 or 11
  • Slow throughput despite good RSSI
  • Frequent disconnections during busy hours

Diagnosis:

Channel 6: 15 networks
Channel 1: 8 networks
Channel 11: 12 networks

Problem: Channel 6 overloaded (15 networks competing for airtime)

Solution: Move your AP to least-congested channel (Channel 1 in this case)

Problem Type 2: Overlapping Channel Configuration

Symptoms:

  • Networks on channels 3, 4, 5, 7, 8, 9 (between the non-overlapping set)
  • Poor performance even with good signal strength
  • Retransmission rates > 10%

Diagnosis:

Your AP: Channel 3 (2.422 GHz)
Neighbor 1: Channel 1 (2.412 GHz) - overlaps by ~10 MHz
Neighbor 2: Channel 6 (2.437 GHz) - overlaps by ~15 MHz

Problem: Your AP interferes with BOTH neighbors

Solution: Move to Channel 1, 6, or 11 (true non-overlapping channels)

Problem Type 3: Non-Wi-Fi Interference

Symptoms:

  • Performance degradation at specific times (lunch hour for microwave)
  • RSSI drops to -80 dBm periodically despite AP being 5 meters away
  • Packet loss spikes every 10-30 seconds

Diagnosis:

Microwave oven: Leaks 2.45 GHz noise (affects Ch 6-11 heavily)
Bluetooth devices: Frequency hopping across entire 2.4 GHz band
Zigbee network: Fixed on Channel 20 (2.450 GHz)

Problem: Non-Wi-Fi devices share the band

Solution: Move Wi-Fi to 5 GHz OR coordinate with Zigbee on different channels

14.12.3 Step 3: Apply Mitigation Strategies

Strategy 1: Channel Selection (Easy, Free)

Decision matrix:

Scan Result Action
Ch1: 3 networks, Ch6: 8, Ch11: 5 Choose Channel 1 (least congestion)
Ch1: 5, Ch6: 5, Ch11: 5 Choose Channel 11 (furthest from Zigbee Ch 15-20)
All channels heavily loaded Migrate to 5 GHz (more channels available)

Implementation:

  1. Change AP channel via web interface or CLI
  2. Wait 5 minutes for clients to reconnect
  3. Re-scan to verify improvement
  4. Monitor for 24 hours to confirm stability

Strategy 2: Transmit Power Reduction (Counterintuitive!)

When to use: Dense AP deployments where APs interfere with each other

Logic:

  • High TX power → larger coverage → more co-channel interference
  • Lower TX power → smaller cells → clients connect to nearest AP → less contention

Example:

Before: AP1 and AP2 both at 20 dBm (100 mW)
  - Clients 30m from AP1 see both APs at -60 dBm
  - Client randomly connects to AP2 (further away)
  - Traffic contends with nearby AP1

After: Both APs reduced to 14 dBm (25 mW)
  - Clients 30m from AP1 see AP1 at -66 dBm, AP2 at -75 dBm
  - Client connects to closer AP1
  - Less cross-AP interference

Guideline: Reduce TX power until edge clients see -75 dBm minimum

Strategy 3: Band Steering (Medium Effort)

Concept: Push dual-band clients (5 GHz capable) to 5 GHz, leave 2.4 GHz for IoT sensors

Configuration (on enterprise APs):

  • Enable 802.11k (neighbor reports)
  • Enable 802.11v (BSS transition)
  • Set 2.4 GHz minimum RSSI: -70 dBm (kick weak clients)
  • Set 5 GHz preferred: Yes

Result:

  • Laptops/phones use 5 GHz (less congested)
  • Legacy IoT devices stay on 2.4 GHz (only option)
  • Overall throughput improves for both

Strategy 4: Time-Domain Scheduling (Advanced)

For Zigbee/Thread coexistence with Wi-Fi:

Problem:

  • Zigbee uses Channel 20 (2.450 GHz)
  • Wi-Fi on Channel 6 (2.437 GHz) overlaps
  • Both networks suffer packet loss

Solution:

  • Wi-Fi moves to Channel 11 (2.462 GHz) - minimal overlap with Zigbee Ch20
  • OR Zigbee moves to Channel 25 (2.475 GHz) - above Wi-Fi
  • Verify with spectrum analyzer that chosen channels don’t overlap

Coordination:

Wi-Fi: Channels 1, 6, 11 (standard non-overlapping)
Zigbee: Channels 15, 20, 25 (5 MHz apart)

Best pairing:
  Wi-Fi Ch 1 (2.412 GHz) + Zigbee Ch 15 (2.425 GHz) = 13 MHz separation ✓
  Wi-Fi Ch 1 (2.412 GHz) + Zigbee Ch 20 (2.450 GHz) = 38 MHz separation ✓
  Wi-Fi Ch 11 (2.462 GHz) + Zigbee Ch 25 (2.475 GHz) = 13 MHz separation ✓

Worst pairing:
  Wi-Fi Ch 6 (2.437 GHz) + Zigbee Ch 20 (2.450 GHz) = 13 MHz BUT Ch6 is 22 MHz wide!

14.12.4 Step 4: Validate Improvements

Metrics to track:

Metric Before Target After
Packet loss 15% < 5% 3% ✓
Throughput 8 Mbps > 20 Mbps 24 Mbps ✓
Latency 120 ms < 50 ms 35 ms ✓
Retries 25% < 10% 7% ✓

Testing tools:

  • iperf3 for throughput (AP to client)
  • ping -c 100 <gateway> for latency
  • Wireshark for retry analysis
  • NetSpot heatmap for coverage validation

14.12.5 Real-World Example: Office Deployment

Initial State:

Office: 50m × 30m, 3 floors
Devices: 200 laptops, 50 IoT sensors (Zigbee)
Problem: Laptop users complain of slow Wi-Fi

Scan results:
  Channel 6: 18 APs (11 same building, 7 neighbors)
  Channel 1: 12 APs
  Channel 11: 15 APs
  Our AP: Channel 6 (auto-selected by AP)

Applied Solutions:

  1. Channel change: Ch6 → Ch1 (least congested)
    • Result: Throughput 8 → 15 Mbps (+87%)
  2. Zigbee coordination
    • Zigbee was on Channel 20 (overlapping with neighbor’s Wi-Fi Ch6)
    • Moved Zigbee to Channel 25 (above all Wi-Fi)
    • Result: Zigbee packet loss 22% → 4%
  3. Band steering enabled
    • 150 laptops moved to 5 GHz
    • 50 laptops + 50 sensors remain on 2.4 GHz
    • Result: 2.4 GHz load reduced 75%
  4. Power reduction: 20 dBm → 17 dBm
    • Reduced interference to neighboring offices
    • Clients still see -65 to -55 dBm (excellent)

Final State:

Throughput: 8 → 45 Mbps (462% improvement)
Latency: 95 ms → 22 ms
User complaints: 15/week → 0/week
Cost: $0 (configuration changes only)

14.12.6 Key Takeaways

  1. Always scan first - don’t guess at interference sources
  2. Use 1/6/11 only - adjacent channels create interference
  3. Coexistence requires coordination - Wi-Fi and Zigbee can share 2.4 GHz if planned correctly
  4. 5 GHz migration is often the best long-term solution for high-throughput devices
  5. Validate with metrics - RSSI alone doesn’t tell you about channel utilization

14.13 Concept Relationships

Concept Relationship to Other Concepts Practical Impact
Channel Overlap Wi-Fi channels are 20-22 MHz wide but spaced 5 MHz apart Using adjacent channels (e.g., 1 & 2) causes interference
Channels 1, 6, 11 Only non-overlapping channels in 2.4 GHz (1-11 range) Maximizes capacity: 3 independent networks vs 1
RSSI Received Signal Strength Indicator in dBm (negative values) -50 dBm excellent, -70 dBm fair, -90 dBm unusable
Path Loss Observed RSSI drop vs distance compared to theory Real-world 2-3x worse than free-space due to obstacles
Channel Congestion Number of active networks on each channel Pick least-congested channel from 1/6/11 for new AP
Site Survey Multi-location RSSI measurements documenting RF environment Identifies dead zones and interference before deployment

14.14 See Also

Common Pitfalls

Elevated noise floor indicates broadband interference (microwave ovens, non-802.11 devices). High channel utilization indicates heavy Wi-Fi traffic. Both degrade performance but require different solutions. Use both metrics together to diagnose the root cause correctly.

RSSI varies significantly with receiver position due to multipath. Single-point measurements miss coverage holes that appear a meter away. Walk the full area during site surveys and take measurements at multiple heights to capture the true coverage variation.

Many deployments assume 2.4 GHz interference comes only from other 2.4 GHz devices. However, 5 GHz APs in dual-band mode can affect device steering and roaming. Always analyze both bands simultaneously for complete interference characterization.

Network performance does not degrade linearly with channel utilization. At 50% utilization, collision probability becomes significant. At 70%+, throughput collapses non-linearly. Plan capacity to keep peak utilization below 40% for reliable IoT operations.

14.15 Summary

This chapter provided hands-on experience with Wi-Fi spectrum analysis:

  • Wi-Fi channel scanning turns spectrum congestion into actionable channel plans (1/6/11) for 2.4 GHz deployments
  • Channel overlap understanding helps you avoid interference from adjacent channels
  • RSSI measurements at multiple locations reveal coverage patterns and dead zones
  • Path loss comparison between theoretical and measured values identifies environmental obstacles
  • Site survey reports document findings and provide actionable deployment recommendations

14.16 What’s Next

With RF analysis skills established, continue your wireless IoT journey:

Topic Chapter Description
Coverage Planning Mobile Labs: Coverage Planning Python link-budget calculators and heatmap tools for deployment planning
Comprehensive Review Mobile Wireless: Comprehensive Review Technology comparison matrix and scenario-based decision exercises
Wi-Fi Standards Wi-Fi Fundamentals and Standards 802.11 amendment history, PHY/MAC details, and channel bonding
Wi-Fi IoT Wi-Fi IoT Implementations Practical Wi-Fi deployments for constrained devices and smart-home gateways
Simulations Simulations Hub Interactive RF propagation simulators and protocol visualisations