Regular intermittent low and high 2.4 WiFi speed

Hi,
I'm having some issues on my 2.4GHz band (5GHz band works perfectly): it constantly switches between full throughput and a somewhat limited throughput, intermittently, affecting all connected devices simultaneously on the 2.4GHz band.

Switches seem to happen at constant rates, like ~13 seconds at low throughput and then ~7 seconds at high throughput, repeating infinitely.

I already tried to troubleshoot it, without any luck... Maybe someone have suggestions on what can be checked or tried.

My setup is the following:

  • Router: AVM FRITZ!Box 7530
  • OpenWRT: tried both latest 24 SNAPSHOT (r28200-c857145e03) and 23.05.3 versions
  • Wireless firmware: tried NON CT, CT and CT FULL HTT firmwares (on both OpenWRT versions above)

This is a screenshot while running an iperf3 test, between PC and router running latest OpenWRT snapshot, with just a single WiFi interface configured on the 2.4GHz band, with a MAC filter to allow only PC connection and with 5GHz band disabled:

This is the router iperf3 output, from which it can be seen that the speed changes at regular intervals:

[  5] local 192.168.1.1 port 5201 connected to 192.168.1.189 port 64890
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  2.12 MBytes  17.8 Mbits/sec
[  5]   1.00-2.00   sec   896 KBytes  7.34 Mbits/sec
[  5]   2.00-3.00   sec  1.38 MBytes  11.5 Mbits/sec
[  5]   3.00-4.00   sec  6.38 MBytes  53.5 Mbits/sec
[  5]   4.00-5.00   sec  8.25 MBytes  69.2 Mbits/sec
[  5]   5.00-6.00   sec  9.75 MBytes  81.8 Mbits/sec
[  5]   6.00-7.00   sec  8.62 MBytes  72.4 Mbits/sec
[  5]   7.00-8.00   sec  9.38 MBytes  78.6 Mbits/sec
[  5]   8.00-9.00   sec  10.8 MBytes  90.2 Mbits/sec
[  5]   9.00-10.00  sec  10.0 MBytes  83.9 Mbits/sec
[  5]  10.00-11.00  sec  1.38 MBytes  11.5 Mbits/sec
[  5]  11.00-12.00  sec  1.25 MBytes  10.5 Mbits/sec
[  5]  12.00-13.00  sec  1.25 MBytes  10.5 Mbits/sec
[  5]  13.00-14.00  sec  1.38 MBytes  11.5 Mbits/sec
[  5]  14.00-15.00  sec   512 KBytes  4.19 Mbits/sec
[  5]  15.00-16.00  sec  1.00 MBytes  8.39 Mbits/sec
[  5]  16.00-17.00  sec  1.50 MBytes  12.6 Mbits/sec
[  5]  17.00-18.00  sec   896 KBytes  7.34 Mbits/sec
[  5]  18.00-19.00  sec  1.50 MBytes  12.6 Mbits/sec
[  5]  19.00-20.00  sec  1.25 MBytes  10.5 Mbits/sec
[  5]  20.00-21.00  sec  1.38 MBytes  11.5 Mbits/sec
[  5]  21.00-22.00  sec  1.12 MBytes  9.44 Mbits/sec
[  5]  22.00-23.00  sec  3.12 MBytes  26.2 Mbits/sec
[  5]  23.00-24.00  sec  10.9 MBytes  91.2 Mbits/sec
[  5]  24.00-25.00  sec  8.62 MBytes  72.4 Mbits/sec
[  5]  25.00-26.00  sec  9.00 MBytes  75.5 Mbits/sec
[  5]  26.00-27.00  sec  9.12 MBytes  76.5 Mbits/sec
[  5]  27.00-28.00  sec  8.12 MBytes  68.2 Mbits/sec
[  5]  28.00-29.00  sec  8.88 MBytes  74.4 Mbits/sec
[  5]  29.00-30.00  sec  7.50 MBytes  62.9 Mbits/sec
[  5]  30.00-31.00  sec  1.62 MBytes  13.6 Mbits/sec
[  5]  31.00-32.00  sec  1.38 MBytes  11.5 Mbits/sec
[  5]  32.00-33.00  sec  1.50 MBytes  12.6 Mbits/sec
[  5]  33.00-34.00  sec  1.38 MBytes  11.5 Mbits/sec
[  5]  34.00-35.00  sec  1.25 MBytes  10.5 Mbits/sec
[  5]  35.00-36.00  sec  1.25 MBytes  10.5 Mbits/sec
[  5]  36.00-37.00  sec  1.62 MBytes  13.6 Mbits/sec
[  5]  37.00-38.00  sec  1.38 MBytes  11.5 Mbits/sec
[  5]  38.00-39.00  sec  1.50 MBytes  12.6 Mbits/sec
[  5]  39.00-40.00  sec  1.50 MBytes  12.6 Mbits/sec
[  5]  40.00-41.00  sec  1.38 MBytes  11.5 Mbits/sec
[  5]  41.00-42.00  sec  0.00 Bytes  0.00 bits/sec
[  5]  42.00-43.00  sec  2.00 MBytes  16.8 Mbits/sec
[  5]  43.00-44.00  sec  2.25 MBytes  18.9 Mbits/sec
[  5]  44.00-45.00  sec  4.88 MBytes  40.9 Mbits/sec
[  5]  45.00-46.00  sec  10.2 MBytes  86.0 Mbits/sec
[  5]  46.00-47.00  sec  5.38 MBytes  45.1 Mbits/sec
[  5]  47.00-48.00  sec  7.88 MBytes  66.1 Mbits/sec
[  5]  48.00-49.00  sec  7.00 MBytes  58.7 Mbits/sec
[  5]  49.00-50.00  sec  9.88 MBytes  82.8 Mbits/sec
[  5]  50.00-51.00  sec  3.88 MBytes  32.5 Mbits/sec
[  5]  51.00-52.00  sec  1.62 MBytes  13.6 Mbits/sec
[  5]  52.00-53.00  sec  1.38 MBytes  11.5 Mbits/sec
[  5]  53.00-54.00  sec  1.50 MBytes  12.6 Mbits/sec
[  5]  54.00-55.00  sec  1.12 MBytes  9.43 Mbits/sec
[  5]  55.00-56.00  sec  1.62 MBytes  13.6 Mbits/sec
[  5]  56.00-57.00  sec  1.38 MBytes  11.5 Mbits/sec
[  5]  57.00-58.00  sec  1.50 MBytes  12.6 Mbits/sec
[  5]  58.00-59.00  sec  0.00 Bytes  0.00 bits/sec
[  5]  59.00-60.00  sec  2.00 MBytes  16.8 Mbits/sec
[  5]  60.00-61.00  sec  1.25 MBytes  10.5 Mbits/sec
[  5]  61.00-62.00  sec   384 KBytes  3.15 Mbits/sec
[  5]  62.00-63.00  sec  1.62 MBytes  13.6 Mbits/sec
[  5]  63.00-64.00  sec  8.62 MBytes  72.4 Mbits/sec
[  5]  64.00-65.00  sec  10.5 MBytes  88.1 Mbits/sec
[  5]  65.00-66.00  sec  9.12 MBytes  76.6 Mbits/sec
[  5]  66.00-67.00  sec  9.62 MBytes  80.7 Mbits/sec
[  5]  67.00-68.00  sec  10.2 MBytes  86.0 Mbits/sec
[  5]  68.00-69.00  sec  9.00 MBytes  75.5 Mbits/sec
[  5]  69.00-70.00  sec  9.88 MBytes  82.8 Mbits/sec
[  5]  70.00-71.00  sec  2.62 MBytes  22.0 Mbits/sec
[  5]  71.00-72.00  sec  1.00 MBytes  8.39 Mbits/sec
[  5]  72.00-73.00  sec  1.25 MBytes  10.5 Mbits/sec
[  5]  73.00-74.00  sec  1.00 MBytes  8.39 Mbits/sec
[  5]  74.00-75.00  sec  1.12 MBytes  9.44 Mbits/sec
[  5]  75.00-76.00  sec  1.62 MBytes  13.6 Mbits/sec
[  5]  76.00-77.00  sec  1.12 MBytes  9.43 Mbits/sec
[  5]  77.00-78.00  sec  1.50 MBytes  12.6 Mbits/sec
[  5]  78.00-79.00  sec  1.38 MBytes  11.5 Mbits/sec
[  5]  79.00-80.00  sec  1.50 MBytes  12.6 Mbits/sec
[  5]  80.00-81.00  sec  1.25 MBytes  10.5 Mbits/sec
[  5]  81.00-82.00  sec   128 KBytes  1.05 Mbits/sec
[  5]  82.00-83.00  sec  1.00 MBytes  8.39 Mbits/sec
[  5]  83.00-84.00  sec  6.50 MBytes  54.5 Mbits/sec
[  5]  84.00-85.00  sec  6.38 MBytes  53.5 Mbits/sec
[  5]  85.00-86.00  sec  4.88 MBytes  40.9 Mbits/sec
[  5]  86.00-87.00  sec  6.00 MBytes  50.3 Mbits/sec
[  5]  87.00-88.00  sec  4.50 MBytes  37.7 Mbits/sec
[  5]  88.00-89.00  sec  5.50 MBytes  46.1 Mbits/sec
[  5]  89.00-90.00  sec  9.50 MBytes  79.7 Mbits/sec
[  5]  90.00-91.00  sec  10.0 MBytes  83.9 Mbits/sec
[  5]  91.00-92.00  sec  1.50 MBytes  12.6 Mbits/sec
[  5]  92.00-93.00  sec  1.00 MBytes  8.39 Mbits/sec
[  5]  93.00-94.00  sec   896 KBytes  7.34 Mbits/sec
[  5]  94.00-95.00  sec  1.38 MBytes  11.5 Mbits/sec
[  5]  95.00-96.00  sec  1.12 MBytes  9.44 Mbits/sec
[  5]  96.00-97.00  sec  1.00 MBytes  8.39 Mbits/sec
[  5]  97.00-98.00  sec  1.38 MBytes  11.5 Mbits/sec
[  5]  98.00-99.00  sec  1.25 MBytes  10.5 Mbits/sec
[  5]  99.00-100.00 sec  1.25 MBytes  10.5 Mbits/sec
[  5] 100.00-101.00 sec  1.50 MBytes  12.6 Mbits/sec
[  5] 101.00-102.00 sec  1.12 MBytes  9.44 Mbits/sec
[  5] 102.00-103.00 sec  1.38 MBytes  11.5 Mbits/sec
[  5] 103.00-104.00 sec  2.12 MBytes  17.8 Mbits/sec
[  5] 104.00-105.00 sec  3.88 MBytes  32.5 Mbits/sec
[  5] 105.00-106.00 sec  9.00 MBytes  75.5 Mbits/sec
[  5] 106.00-107.00 sec  10.1 MBytes  84.9 Mbits/sec
[  5] 107.00-108.00 sec  10.4 MBytes  87.0 Mbits/sec
[  5] 108.00-109.00 sec  9.12 MBytes  76.5 Mbits/sec
[  5] 109.00-110.00 sec  8.38 MBytes  70.3 Mbits/sec
[  5] 110.00-111.00 sec  4.50 MBytes  37.7 Mbits/sec
[  5] 111.00-112.00 sec  5.00 MBytes  41.9 Mbits/sec
^C[  5] 112.00-113.00 sec  2.75 MBytes  23.2 Mbits/sec

This is the dmesg output, took just after the end of the test: dmesg

This is the logread (with verbose log enabled on wireless): logs

please ignore Kernel warnings, as I took logs and dmesg from a build on latest SNAPSHOT, but the issue is present even on 25.05.3 version, which does not report any kernel warning.

This is the wireless config:

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'platform/soc/a000000.wifi'
        option band '2g'
        option channel '1'
        option htmode 'HT40'
        option noscan '1'
        option country 'IT'
        option country_ie '1'
        list hostapd_options 'country3=0x49'
        option cell_density '0'
        option log_level '0'

config wifi-device 'radio1'
        option type 'mac80211'
        option path 'platform/soc/a800000.wifi'
        option band '5g'
        option channel 'auto'
        option htmode 'VHT80'
        option disabled '1'
        option channels '36-48 100-140'
        option country 'IT'
        option country_ie '1'
        list hostapd_options 'country3=0x49'

config wifi-iface 'main'
        option device 'radio0'
        option ssid 'ls-luka-net-3'
        option ifname 'main'
        option mode 'ap'
        option encryption 'psk2'
        option key '<omissis>'
        option network 'lan'
        option macfilter 'allow'
        list maclist 'C0:A5:E8:6D:46:01'

I already tried the following on both OpenWRT versions tested, without results:

  • Use a fixed 20Mhz channel width
  • Use different wireless encryption, sae-mixed and psk2, not tried open network
  • Set different channels
  • Disable the SMPS on PC WiFi card (applied while performing the test above)
  • Move the router to another location
  • Turn off ALL home devices (switched off house main power) except the router (on UPS) and the PC (on battery)
  • Change maximum transmit power

ABOUT SMPS: while investigating the issue, I noticed that with verbose wireless logging the router was reporting the following STA-OPMODE-SMPS-MODE-CHANGED messages, with:

  • off: reported when switching to full throughput
  • dynamic: reported when switching to low throughput
Wed Nov 27 15:37:00 2024 daemon.notice hostapd: main: STA-OPMODE-SMPS-MODE-CHANGED c0:a5:e8:6d:46:01 off
Wed Nov 27 15:37:08 2024 daemon.notice hostapd: main: STA-OPMODE-SMPS-MODE-CHANGED c0:a5:e8:6d:46:01 dynamic
Wed Nov 27 15:37:21 2024 daemon.notice hostapd: main: STA-OPMODE-SMPS-MODE-CHANGED c0:a5:e8:6d:46:01 off
Wed Nov 27 15:37:29 2024 daemon.notice hostapd: main: STA-OPMODE-SMPS-MODE-CHANGED c0:a5:e8:6d:46:01 dynamic
Wed Nov 27 15:37:42 2024 daemon.notice hostapd: main: STA-OPMODE-SMPS-MODE-CHANGED c0:a5:e8:6d:46:01 off
Wed Nov 27 15:37:50 2024 daemon.notice hostapd: main: STA-OPMODE-SMPS-MODE-CHANGED c0:a5:e8:6d:46:01 dynamic
Wed Nov 27 15:38:02 2024 daemon.notice hostapd: main: STA-OPMODE-SMPS-MODE-CHANGED c0:a5:e8:6d:46:01 off
Wed Nov 27 15:38:11 2024 daemon.notice hostapd: main: STA-OPMODE-SMPS-MODE-CHANGED c0:a5:e8:6d:46:01 dynamic
Wed Nov 27 15:38:24 2024 daemon.notice hostapd: main: STA-OPMODE-SMPS-MODE-CHANGED c0:a5:e8:6d:46:01 off
Wed Nov 27 15:38:31 2024 daemon.notice hostapd: main: STA-OPMODE-SMPS-MODE-CHANGED c0:a5:e8:6d:46:01 dynamic

However, disabling SMPS on the PC wireless card just made messages disappear, without any change on the issue, so it seems to just be an effect and not a cause... Anyway it can be seen that messages are reported at regular intervals, with SMPS off for about 7 seconds, and SMPS dynamic for about 13 seconds (how weird...).

I also tried to sample the station dump (with only the PC connected ) with 1 second rate, reporting the latest SMPS-MODE-CHANGED value, with router moved at about 1.5m away from PC.

Maybe someone could notice something between station status changes:
station-dump-samples

Thanks to anyone able to read till there :slight_smile: .

UPDATE

I made some other tests and the issue was still there even with the latest stock firmware...

As last test, I resumed another AVM FRITZ!Box 7530 that I had laying around, with a DSL modulator dismantled and really brutely restored (I was planning to use it as a WiFi repeater), and it was working perfectly on the 2.4GHz band (with same power supply and at same location)....

At this point the issue should be HW related.