MediaTek vs Qualcomm WiFi: Why Your IoT Devices Keep Disconnecting

Not all WiFi chips are created equal. After years of frustration, I finally figured out why my IoT devices prefer Qualcomm over MediaTek.

The WiFi Chip Problem Nobody Talks About

You've spent hours troubleshooting. Your smart home devices keep disconnecting. You've rebooted everything, changed channels, adjusted power levels. Nothing helps.

Then you check your access point specs: MediaTek WiFi chipset.

Here's what I learned after years of fighting this battle.

MediaTek vs Qualcomm: The Real Difference

MediaTek (MT7915, MT7921, etc.)

  • Cheaper to manufacture
  • Marketed as "high performance"
  • Great on paper specifications
  • Terrible IoT compatibility in practice

Qualcomm (IPQ8074, QCA9984, etc.)

  • More expensive
  • Battle-tested code
  • Better power management
  • IoT devices just work

Why IoT Devices Hate MediaTek

1. Power Save Mode Issues

IoT devices (smart plugs, sensors, cameras) use aggressive power saving. They sleep, wake up, transmit, sleep again.

MediaTek chips struggle with devices rapidly entering/exiting power save mode. The timing isn't quite right. Result: disconnects.

Qualcomm chips handle power state transitions smoothly. Devices stay connected.

2. 802.11k/v/r Implementation

Roaming standards help devices switch between access points. MediaTek's implementation has quirks:

  • Beacon timing issues
  • Incorrect BSS transition management frames
  • Devices get confused and disconnect entirely

Qualcomm's implementation follows the spec more closely.

3. Beacon Interval Sensitivity

Many cheap IoT devices expect standard beacon intervals (100 TU). MediaTek's dynamic beacon adjustment can confuse devices with simple WiFi stacks.

4. Driver Maturity

Qualcomm's ath10k/ath11k drivers are mature in the Linux kernel. Years of bug fixes and real-world testing.

MediaTek's mt76 drivers are improving but still have edge cases that break IoT devices.

Real-World Experience

  • Smart plugs: disconnect every few hours
  • ESP32 devices: constant reconnects
  • Security cameras: random drops
  • Frustration level: maximum

With Qualcomm (UniFi AC-Pro, Ruckus R510)

  • Same devices, same location
  • Smart plugs: rock solid
  • ESP32 devices: stable for months
  • Cameras: no drops
  • Frustration level: zero

The WiFi 6 Problem

WiFi 6 (802.11ax) made this worse. Many new access points use MediaTek chips because they're cheap and support WiFi 6.

But IoT devices don't need WiFi 6. They need:

  • Rock-solid 2.4GHz connectivity
  • Good power save handling
  • Standards compliance

Qualcomm's older WiFi 5 chips often work better for IoT than MediaTek's shiny new WiFi 6 chips.

How to Check Your Hardware

# On Linux-based APs (OpenWrt, etc.)
dmesg | grep -i wireless

# Look for:
# MediaTek: mt7915, mt7921, mt76
# Qualcomm: ath10k, ath11k, QCA

For commercial APs:

  • Check the spec sheet
  • Google the model + "chipset"
  • Check OpenWrt's hardware table

Solutions

If You Have MediaTek

  1. Separate 2.4GHz network for IoT

    • Disable power save features
    • Set fixed beacon interval (100)
    • Disable 802.11k/v/r for IoT SSID
  2. Update firmware

    • Newer drivers improve (but don't fix) the issues
  3. Reduce device count per AP

    • MediaTek struggles with many sleeping devices

If You're Shopping

Look for Qualcomm chipsets:

  • UniFi AC-Pro/AC-HD (QCA9880)
  • Ruckus R510/R610 (QCA9984)
  • EnGenius EAP2200 (QCA9984)

Avoid if you have many IoT devices:

  • Most TP-Link WiFi 6 (MediaTek)
  • UniFi U6-LR/U6-Lite (MediaTek)
  • Many budget WiFi 6 APs (MediaTek)

The Bottom Line

MediaTek makes fine chips for phones and laptops. Modern clients can work around the quirks.

But IoT devices have simple WiFi stacks. They need a chipset that follows the standards religiously. That's Qualcomm.

If you value smart home stability, check the WiFi chipset before buying.

I learned this lesson after replacing four access points. Save yourself the frustration - go Qualcomm for IoT.


Have you experienced similar issues? Let me know what worked for your setup.

💬 Comments Setup Required

To enable comments on your blog:

  1. Create a public GitHub repository (or use an existing one)
  2. Enable GitHub Discussions in the repo settings
  3. Visit giscus.app to configure
  4. Add the generated values to your .env.local file:
NEXT_PUBLIC_GISCUS_REPO=username/repo
NEXT_PUBLIC_GISCUS_REPO_ID=your-repo-id
NEXT_PUBLIC_GISCUS_CATEGORY=General
NEXT_PUBLIC_GISCUS_CATEGORY_ID=your-category-id