Automatic speed drop on my TP Link Archer C20 v4, Please Help

Hello guys I have TP Link Archer C20 V4 router with latest stock firmware. As I am going through the forum I found that on openwrt the 5ghz radio is broken in this device.
The problem which I am facing right now is that I am losing speed in it continuously. The TP Link router is my slave router which is connected as an access point to my main master Syrotech router through wired lan cable.
There is a significant drop in speed after sometime randomly and speed reduces to 3-4 mbps only. I, then have to manually restart my slave TP Link router 4-5 times maybe more until I get full 100mbps speed.
Can anybody help me, what can be the cause of the problem or if I should install OpenWRT firmware in it so that my problem gets resolved.

Let’s start by reviewing the config

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:
grafik
Remember to redact passwords, 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

But brother I have stock firmware installed in my TP Link router as I found in this forum that 5ghz radio is dead in openwrt on this device. Now what to do?

If you're running the stock firmware, you should ask TP-Link about the problem. This isn't something that we can help with on this forum.

And if the 5G radio doesn't work with OpenWrt installed, obviously that seems like a dead end (unless you want to reinstall OpenWrt and the community here can troubleshoot to see if it is a bug or limitation in the wireless drivers or if it is just something wrong with the config)

I will install open wrt but before installing I searched on the forum about TP Link Archer C20 V4 router and found that in open wrt 5 ghz radio is broken for this device that's why didn't install it.
If you provide me any openwrt firmware for the TP Link Archer C20 V4 device with working 5 ghz radio. I will definitely install it.

Nothing is listed in the device page about the radio being non-functional. A quick serach of the forums shows earlier versions of OpenWrt having 5G issues, but now it might be resolved (I don't have time to do an exhaustive search).

While supported by OpenWrt, this hardware is not great (at all). MT7628AN is kind of a hybrid between old RaLink hardware (2.4 GHz wireless/ rt2x00) and (more) modern Mediatek hardware (5 GHz wireless/ mt76), combined with low system specs (1*580 MHz mips 24Kc, 8/64, only 100 MBit/s ethernet ports), it should 'work', but it's nothing to write home about…

I'd rather suggest looking into different (OpenWrt compatible) hardware, rather than spending much time on this - especially if you care about wireless performance (which is hard-capped by its 100 MBit/s ethernet ports); even the used markets should have considerably better options out there for a song.

@psherman @slh should I install openwrt in it, can you please guide me to the latest firmware please. I am fed up of the speed being capped automatically after sometime. Atleast I can try, its my last option

Did you try following the device page for your router in the wiki?

Yes, and in it, it is saying 5 ghz radio is broken

Where? I don't see it (unless I'm just missing it as I skim the page).

The only note about the 5G radio is that it works in AP mode only... but that's fine for your situation.

Ohh, thank you, I will install it then as I only need to use it as an AP

@slh @psherman I have installed openwrt now and set it as an access point. And yes 5 ghz is working in it as AP. I am getting full speed now, lets hope it doesn't cap my speed to 3-4 mbps as like tp link stock firmware was doing. Will update you guys shortly after reporting with my results. Thank you for guiding me.
When changing lan settings I am getting two options

  1. IPV4 Address
  2. IpV4 Gateway
    I have put 192.168.1.2 in IPV4 address area but I don't know what to put in IPv4 gateway, I have left it blank.

Also plz suggest me best settings for roaming as I can have fast connection between both APs whenever they are in range.

Microsoft Windows [Version 10.0.22000.2295]
(c) Microsoft Corporation. All rights reserved.

C:\Windows\system32>ssh root@192.168.1.2
The authenticity of host '192.168.1.2 (192.168.1.2)' can't be established.
ED25519 key fingerprint is SHA256:PRIIR07J1UhR4hsbovNMwKfZgUPqtMLQkYIj75HgCqg.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.1.2' (ED25519) to the list of known hosts.


BusyBox v1.36.1 (2023-10-09 21:45:35 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt 23.05.0, r23497-6637af95aa
 -----------------------------------------------------
=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------
root@OpenWrt:~# ubus call system board
at /etc/config/network
cat /etc/config/wireless
cat /etc/config/dhcp
cat /etc/config/firewall{
        "kernel": "5.15.134",
        "hostname": "OpenWrt",
        "system": "MediaTek MT7628AN ver:1 eco:2",
        "model": "TP-Link Archer C20 v4",
        "board_name": "tplink,archer-c20-v4",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "23.05.0",
                "revision": "r23497-6637af95aa",
                "target": "ramips/mt76x8",
                "description": "OpenWrt 23.05.0 r23497-6637af95aa"
        }
}
root@OpenWrt:~# 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 'fdb0:d856:b276::/48'

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.2'
        option netmask '255.255.255.0'
        option ip6assign '60'

config device
        option name 'eth0.2'
        option macaddr '34:e8:94:f9:d8:24'

config interface 'wan'
        option device 'eth0.2'
        option proto 'dhcp'

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'

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

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'platform/10300000.wmac'
        option channel '1'
        option band '2g'
        option htmode 'HT20'
        option disabled '1'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'OpenWrt'
        option encryption 'none'
        option disabled '1'

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

config wifi-iface 'default_radio1'
        option device 'radio1'
        option network 'lan'
        option mode 'ap'
        option ssid 'Firewall'
        option encryption 'psk2'
        option key 'Gudd@0309'

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

config dnsmasq
        option domainneeded '1'
        option boguspriv '1'
        option filterwin2k '0'
        option localise_queries '1'
        option rebind_protection '1'
        option rebind_localhost '1'
        option local '/lan/'
        option domain 'lan'
        option expandhosts '1'
        option nonegcache '0'
        option cachesize '1000'
        option authoritative '1'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
        option nonwildcard '1'
        option localservice '1'
        option ednspacket_max '1232'
        option filter_aaaa '0'
        option filter_a '0'

config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option dhcpv4 'server'
        option ignore '1'

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

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

root@OpenWrt:~# cat /etc/config/firewallubus call system board
at /etc/config/network
cat /etc/config/wireless
cat /etc/config/dhcp
cat /etc/config/firewallcat: can't open '/etc/config/firewallubus': No such file or directory
cat: can't open 'call': No such file or directory
cat: can't open 'system': No such file or directory
cat: can't open 'board': No such file or directory
root@OpenWrt:~# 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 'fdb0:d856:b276::/48'

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.2'
        option netmask '255.255.255.0'
        option ip6assign '60'

config device
        option name 'eth0.2'
        option macaddr '34:e8:94:f9:d8:24'

config interface 'wan'
        option device 'eth0.2'
        option proto 'dhcp'

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'

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

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'platform/10300000.wmac'
        option channel '1'
        option band '2g'
        option htmode 'HT20'
        option disabled '1'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'OpenWrt'
        option encryption 'none'
        option disabled '1'

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

config wifi-iface 'default_radio1'
        option device 'radio1'
        option network 'lan'
        option mode 'ap'
        option ssid 'Firewall'
        option encryption 'psk2'
        option key 'Gudd@0309'

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

config dnsmasq
        option domainneeded '1'
        option boguspriv '1'
        option filterwin2k '0'
        option localise_queries '1'
        option rebind_protection '1'
        option rebind_localhost '1'
        option local '/lan/'
        option domain 'lan'
        option expandhosts '1'
        option nonegcache '0'
        option cachesize '1000'
        option authoritative '1'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
        option nonwildcard '1'
        option localservice '1'
        option ednspacket_max '1232'
        option filter_aaaa '0'
        option filter_a '0'

config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option dhcpv4 'server'
        option ignore '1'

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

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

root@OpenWrt:~# cat /etc/config/firewallubus call system board
at /etc/config/network
cat /etc/config/wireless
cat: can't open '/etc/config/firewallubus': No such file or directory
cat /etc/config/dhcp
cat /etc/config/fircat: can't open 'call': No such file or directory
ewallcat: can't open 'system': No such file or directory
cat: can't open 'board': No such file or directory
root@OpenWrt:~# 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 'fdb0:d856:b276::/48'

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.2'
        option netmask '255.255.255.0'
        option ip6assign '60'

config device
        option name 'eth0.2'
        option macaddr '34:e8:94:f9:d8:24'

config interface 'wan'
        option device 'eth0.2'
        option proto 'dhcp'

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'

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

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'platform/10300000.wmac'
        option channel '1'
        option band '2g'
        option htmode 'HT20'
        option disabled '1'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'OpenWrt'
        option encryption 'none'
        option disabled '1'

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

config wifi-iface 'default_radio1'
        option device 'radio1'
        option network 'lan'
        option mode 'ap'
        option ssid 'Firewall'
        option encryption 'psk2'
        option key 'Gudd@0309'

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

config dnsmasq
        option domainneeded '1'
        option boguspriv '1'
        option filterwin2k '0'
        option localise_queries '1'
        option rebind_protection '1'
        option rebind_localhost '1'
        option local '/lan/'
        option domain 'lan'
        option expandhosts '1'
        option nonegcache '0'
        option cachesize '1000'
        option authoritative '1'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
        option nonwildcard '1'
        option localservice '1'
        option ednspacket_max '1232'
        option filter_aaaa '0'
        option filter_a '0'

config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option dhcpv4 'server'
        option ignore '1'

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

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

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

@psherman which you demanded, plz provide your inputs

Just to be clear, I asked (I didn't demand), and that was based on the idea that you were already running OpenWrt and trying to figure out why performance was degrading. Since you were running the vendor firmware at the time, we can't figure out what might have been causing the problem.

But, at quick glance, everything looks fine in the OpenWrt configuration. Now that you're running OpenWrt, if you begin to see performance issues based on the run-time, it could be hardware related, but we'd have to look into that later if it happens.

1 Like

I will monitor it from to time and will update here with results soon
Please provide some insights for roaming protocol, as my main router is on ground floor and my slave router is on first floor

Roaming is predominantly a client side function. That is to say, your phone, laptop, etc. will roam based on the condtions it sees and the algorithms/methods implemented on those devices.

There is 'classical roaming' which is entirely on the client. For this to work well, you must tune your APs such that the radios are using non-overlapping channels and usually reduced power levels such that you can cover the necessary area while minimizing the amount of overlap. I like the Crosstalk Solutions wifi optimization video as a good explainer of how to achieve this. While he does talk about the Unifi products, it applies to all wifi configs as long as the features are exposed to the user (and they are in OpenWrt).

Beyond that, you can add other methods to 'enhance' roaming -- 802.11r (as well as k and v) and/or minimum RSSI values to kick clients off the network can all be used for this purpose. However, they are predicated on a setup that has already had the 'classical roaming' tuning (first priniciples), and these standards and methods may, in general, cause other problems because some client devices just don't play well with these approaches (even modern devices may not be happy). Personally, I don't use them and I don't recommend any of these methods unless there is a demonstrated need. Classical roaming can be nearly seamless when done properly.

3 Likes

@psherman @slh how can I install Luci in it, plz guide

There's nothing to 'install' if you're setting up classical roaming. Just go into the wireless config and you'll be able to set the power and channels.

I have set the power and channels, but I am little confused in roaming part, can you plz guide me what settings needs to applied to have a good roaming so that I don't face low connection issues when moving from one floor to another