2.4 GHz Wi-Fi band disables daily on TP-Link Archer C20 V5 running OpenWrt snapshot

Hi,

I’ve been using OpenWrt snapshot builds on my TP-Link Archer C20 V5 for a long time. I build the firmware myself with the default configuration, plus some extra packages like Luci.

My router has both 2.4 GHz and 5 GHz bands, and I have configured and use both of them.
The problem is that the 2.4 GHz band suddenly disconnects from my devices once a day. It seems like the entire band gets disabled, because I no longer see its SSID on my phone’s Wi-Fi list.

This issue has been occurring for a long time. Currently, to fix it, I reboot the device, after which the 2.4 GHz band works again. The 5 GHz band doesn’t have this problem — it works flawlessly.

What is the root cause of this issue, and how can I permanently fix it?

root@devWRT:~# ubus call system board
{
	"kernel": "6.18.33",
	"hostname": "devWRT",
	"system": "MediaTek MT7628AN ver:1 eco:2",
	"model": "TP-Link Archer C20 v5",
	"board_name": "tplink,archer-c20-v5",
	"rootfs_type": "squashfs",
	"release": {
		"distribution": "OpenWrt",
		"version": "SNAPSHOT",
		"firmware_url": "https://downloads.openwrt.org/",
		"revision": "r34718-f13150d12f",
		"target": "ramips/mt76x8",
		"description": "OpenWrt SNAPSHOT r34718-f13150d12f",
		"builddate": "1780266758"
	}
}
root@devWRT:~# cat /etc/config/network

config interface 'loopback'
	option device 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config globals 'globals'
	option ula_prefix 'fdb7:a7df:74fd::/48'
	option packet_steering '1'
	option dhcp_default_duid '00042918fd90f25c441ca652a5a54fe67a87'

config device
	option name 'br-lan'
	option type 'bridge'
	list ports 'eth0.1'

config interface 'lan'
	option device 'br-lan'
	option proto 'static'
	option ipaddr '192.168.1.1'
	option netmask '255.255.255.0'
	option ip6assign '60'

config device
	option name 'eth0.2'
	option macaddr 'xx:xx:xx:xx:xx:xx'

config interface 'wan'
	option device 'eth0.2'
	option proto 'pppoe'
	option username '[REDACTED]'
	option password '[REDACTED]'
	option ipv6 'auto'
	option force_link '1'
	option norelease '1'
	option peerdns '0'
	list dns '[REDACTED]'
	list dns '[REDACTED]'

config interface 'wan6'
	option device 'eth0.2'
	option proto 'dhcpv6'

config switch
	option name 'switch0'
	option reset '1'
	option enable_vlan '1'

config switch_vlan
	option device 'switch0'
	option vlan '1'
	option ports '1 2 3 4 6t'

config switch_vlan
	option device 'switch0'
	option vlan '2'
	option ports '0 6t'

config interface 'guest'
	option proto 'static'
	option ipaddr '192.168.9.1'
	option netmask '255.255.255.0'
	list dns '[REDACTED]'
	list dns '[REDACTED]'

root@devWRT:~# cat /etc/config/wireless

config wifi-device 'radio0'
	option type 'mac80211'
	option path 'platform/10300000.wmac'
	option band '2g'
	option channel '11'
	option htmode 'HT20'
	option cell_density '0'
	option txpower '20'

config wifi-iface 'default_radio0'
	option device 'radio0'
	option network 'lan'
	option mode 'ap'
	option ssid 'ONE PEACE'
	option encryption 'psk2'
	option key '[REDACTED]'
	option macfilter 'deny'
	list maclist 'xx:xx:xx:xx:xx:xx'

config wifi-device 'radio1'
	option type 'mac80211'
	option path 'pci0000:00/0000:00:00.0/0000:01:00.0'
	option band '5g'
	option channel '149'
	option htmode 'VHT80'
	option cell_density '0'
	option country 'BD'

config wifi-iface 'default_radio1'
	option device 'radio1'
	option network 'lan'
	option mode 'ap'
	option ssid 'ONE PEACE 5G'
	option encryption 'psk2+ccmp'
	option key '[REDACTED]'
	list maclist 'xx:xx:xx:xx:xx:xx'

config wifi-iface 'wifinet2'
	option device 'radio0'
	option mode 'ap'
	option ssid 'GuestWRT'
	option encryption 'none'
	option network 'guest'
	option macfilter 'deny'
	list maclist 'xx:xx:xx:xx:xx:xx'
	list maclist 'xx:xx:xx:xx:xx:xx'
	list maclist 'xx:xx:xx:xx:xx:xx'
	option disabled '1'

root@devWRT:~# cat /etc/config/dhcp

config dnsmasq
	option domainneeded '1'
	option localise_queries '1'
	option rebind_protection '1'
	option rebind_localhost '1'
	option local '/lan/'
	option domain 'lan'
	option expandhosts '1'
	option cachesize '1000'
	option authoritative '1'
	option readethers '1'
	option leasefile '/tmp/dhcp.leases'
	option localservice '1'
	option ednspacket_max '1232'
	list confdir '/etc/dnsmasq.d'
	option port '53'
	list server '127.0.0.1#5054'
	list server '[REDACTED]'
	list server '[REDACTED]'
	list server '127.0.0.1#5053'
	list server '/mask.icloud.com/'
	list server '/mask-h2.icloud.com/'
	list server '/use-application-dns.net/'

config dhcp 'lan'
	option interface 'lan'
	option start '192.168.2.100'
	option limit '150'
	option leasetime '12h'
	option dhcpv4 'server'
	option dhcpv6 'server'
	option ra 'server'
	list ra_flags 'managed-config'
	list ra_flags 'other-config'
	list dhcp_option '6,[REDACTED],[REDACTED]'

config dhcp 'wan'
	option interface 'wan'
	option ignore '1'

config odhcpd 'odhcpd'
	option maindhcp '0'
	option leasefile '/tmp/odhcpd.leases'
	option leasetrigger '/usr/sbin/odhcpd-update'
	option loglevel '4'
	option hostsdir '/tmp/hosts'
	option piodir '/tmp/odhcpd-piodir'

config dhcp 'guest'
	option interface 'guest'
	option start '100'
	option limit '110'
	option leasetime '12h'
	option ignore '1'

root@devWRT:~# cat /etc/config/firewall

config defaults
	option input 'REJECT'
	option output 'ACCEPT'
	option forward 'REJECT'
	option synflood_protect '1'

config zone
	option name 'lan'
	option input 'ACCEPT'
	option output 'ACCEPT'
	option forward 'ACCEPT'
	list network 'lan'

config zone
	option name 'wan'
	option input 'REJECT'
	option output 'ACCEPT'
	option forward 'REJECT'
	option masq '1'
	option mtu_fix '1'
	list network 'wan'
	list network 'wan6'

config forwarding
	option src 'lan'
	option dest 'wan'

config rule
	option name 'Allow-DHCP-Renew'
	option src 'wan'
	option proto 'udp'
	option dest_port '68'
	option target 'ACCEPT'
	option family 'ipv4'

config rule
	option name 'Allow-Ping'
	option src 'wan'
	option proto 'icmp'
	option icmp_type 'echo-request'
	option family 'ipv4'
	option target 'ACCEPT'

config rule
	option name 'Allow-IGMP'
	option src 'wan'
	option proto 'igmp'
	option family 'ipv4'
	option target 'ACCEPT'

config rule
	option name 'Allow-DHCPv6'
	option src 'wan'
	option proto 'udp'
	option dest_port '546'
	option family 'ipv6'
	option target 'ACCEPT'

config rule
	option name 'Allow-MLD'
	option src 'wan'
	option proto 'icmp'
	option src_ip 'fe80::/10'
	list icmp_type '130/0'
	list icmp_type '131/0'
	list icmp_type '132/0'
	list icmp_type '143/0'
	option family 'ipv6'
	option target 'ACCEPT'

config rule
	option name 'Allow-ICMPv6-Input'
	option src 'wan'
	option proto 'icmp'
	list icmp_type 'echo-request'
	list icmp_type 'echo-reply'
	list icmp_type 'destination-unreachable'
	list icmp_type 'packet-too-big'
	list icmp_type 'time-exceeded'
	list icmp_type 'bad-header'
	list icmp_type 'unknown-header-type'
	list icmp_type 'router-solicitation'
	list icmp_type 'neighbour-solicitation'
	list icmp_type 'router-advertisement'
	list icmp_type 'neighbour-advertisement'
	option limit '1000/sec'
	option family 'ipv6'
	option target 'ACCEPT'

config rule
	option name 'Allow-ICMPv6-Forward'
	option src 'wan'
	option dest '*'
	option proto 'icmp'
	list icmp_type 'echo-request'
	list icmp_type 'echo-reply'
	list icmp_type 'destination-unreachable'
	list icmp_type 'packet-too-big'
	list icmp_type 'time-exceeded'
	list icmp_type 'bad-header'
	list icmp_type 'unknown-header-type'
	option limit '1000/sec'
	option family 'ipv6'
	option target 'ACCEPT'

config rule
	option name 'Allow-IPSec-ESP'
	option src 'wan'
	option dest 'lan'
	option proto 'esp'
	option target 'ACCEPT'

config rule
	option name 'Allow-ISAKMP'
	option src 'wan'
	option dest 'lan'
	option dest_port '500'
	option proto 'udp'
	option target 'ACCEPT'

config zone
	option name 'guest'
	option input 'REJECT'
	option output 'ACCEPT'
	option forward 'REJECT'
	list network 'guest'

config forwarding
	option src 'guest'
	option dest 'wan'

config rule
	option src 'guest'
	option name 'Allow-Guest-DHCP'
	list proto 'udp'
	option dest_port '67'
	option target 'ACCEPT'

config rule
	option src 'guest'
	option name 'Allow-Guest-DNS'
	option dest_port '53'
	option target 'ACCEPT'

config rule
	option src 'guest'
	option name 'Block-Guest-All'
	option target 'DROP'

root@devWRT:~#

Does the problem occur with a stable release?

What are the customizations and packages that you are adding in your images?

Please connect to your OpenWrt device using ssh and copy the output of the following commands and post it here using the "Preformatted text </> " button (red circle; this works best in the 'Markdown' composer view in the blue oval):

Screenshot 2025-10-20 at 8.14.14 PM

Remember to redact passwords, VPN keys, MAC addresses and any public IP addresses you may have:

ubus call system board
cat /etc/config/network
cat /etc/config/wireless
cat /etc/config/dhcp
cat /etc/config/firewall

By stable release, do you mean a build from the OpenWrt firmware selector? If so, I haven't tried that. I've always built the binaries myself for learning and customization purposes.

And I have attached the command outputs.

Well, yes and no. The current stable release is 25.12.4. You're using snapshot. Sometimes there can be issues with snapshot builds.

Regardless, there are four ways to get an image:

  • Download a standard/default image form the firmware selector
  • Use the firmware selector to customize the image -- add/remove packages, include a first-boot script
  • Use the image builder locally on your computer (this is the same as the above, but runs locally on your computer; no compiling necessary)
  • Compile the entire OpenWrt environment from source and create your own images based on that.

Regardless of the method you use, I'd recommend that you try 25.12.4 because that is stable and is likely to work.

If that doesn't solve the problem, you would also be well served to try the standard default image (i.e. without customizations) for a few days to see if that makes a difference.

Meanwhile, I glanced through your config and I didn't see any glaring issues except for your DHCP server on the lan which is invalid.

Ok, I'll try the stable version you recommended and let you know in a few days how it goes. Also, my LAN DHCP start was 192.168.2.100. This was invalid, I assume. I edited it back to 1.100.

I do not think it is related but set a country code on both bands so also on 2.4 GHz

You don't have to reboot, just restart the wifi interface.

This issue has been present for years on the Archer C7, though it isn't daily. One thing that some people said helped them, was to turn off ldpc on the interface, so try that and see if it makes any difference.

Setting a cron job to restart the interface everyday if you know it's going to be going down anyway is another option.

It would be good to know what's really going on.

Okay, I've set my country code on both bands.

Initially, I had set up a scheduled task to reboot the router every morning, but that didn't help, as the problem was still occurring.

And upon inspection, there are two LDPC options present in the advanced settings: Rx LDPC and Tx LDPC. Which one are you suggesting to disable?

Tx LDPC is the right option. Unchecking this sets option ldpc ‘0’ in /etc/config/wireless. Note that this was typically a solution on the older Qualcomm 2.4ghz (eg qca9558) which supported ldpc, but didn't react well with high traffic and ldpc enabled. You can check to see if your radio supports ldpc based on this post. AFAIK doesn't hurt to try on your router.

Got it. I turned off Tx LDPC

Hi, the problem persists even when using the stable build. So, I want to test the standard default image. Where can I get it?