Adding OpenWrt support for TP-Link EAP245

I didn't exactly try to optimise the settings, so you may or may not be able to gain in throughput. I'm also not sure how much improvement there will still come from software updates.

That being said, I think you have to consider the complete picture here. Throughput is one thing, but having extra features like full DFS-channel support, WPA3, freedom in how you configure your VLANs... outweighs the difference in upload speed for me.

2 Likes

Well said :slight_smile:

After doing comparison tests between stock TP-Link 2.21.0 and the OpenWrt snapshots, the throughput difference is very noticeable.

Stock 2.21.0 (5Ghz @ 80Mhz)
UDP Up (outbound from client device) - avg about 600Mb/s
UDP Down (outbound from AP) - avg about 800Mb/s

OpenWrt snapshots (5Ghz @ 80Mhz)
UDP Up (outbound from client device) - avg about 600Mb/s
UDP Down (outbound from AP) - avg about 220Mb/s

I did speedtests on the LAN port side from the AP itself (using OpenWrt) and was able to get 900Mb/s in both directions. So, the bottleneck is within the wireless side.

Over this weekend I plan on looking at the spectrum while testing. Just to see if the TX from the AP is actually using the full 80Mhz width.

1 Like

I've seen the RX use 80MHz, but the TX never seems to go above 40MHz. If you want to dig deeper into this, maybe create a separate topic. I guess other devices with the same or similar radios might have the same issues. And maybe more knowledgeable people will see your post. :smiley:

Something similar happens to my TP-Link Archer C6. It use ath10k too, the outbound from the client reachs 530 Mbps but the outbound from the router sometime reachs 430 Mbps, others 330, others 220... i think it never goes lower than 220 but the speed fluctuates in seconds being near the router. I tried changing everything wich is available in luci, but i don't think this issue is related with any setting. I tried 19.07.4 and latest master but nothing change.

So, I think I'll need to post up to the Tech or Dev groups on this...

Been doing a bunch of testing and trying all kinds of different debugging and settings. End result, the TX from the AP radio never goes above 40Mhz using VTH modes. Beacons, Settings and debugging all show VTH-80 is enabled and all settings are correct. It just never tries..

I've tried the current commit of the ath10k-ct drivers and firmware. Latest Master commit of driver and firmware (which gave a little better performance. But, still only TX at VHT-40 rates). Tried the Kernel sourced ath10k drivers and Firmware (which the TX never went into VHT or HT modes, stayed at Basic rates 20Mhz. Clients still went into VHT-80 Modes and the AP handled the RX at those modes and rates without issue).

I went from the wpad basic to Full wpad and even tried Full hostapd. No differences at all other then having better settings and debug functionality.

Best results so far is compiling and using the latest Master commit of atk10k-ct driver and firmware with Full hostapd w/ Wolfssl.

Was getting a consistent 900Mb/s from Client (RX on AP) and 450Mb/s from AP (TX on AP). But, the AP shows it's TX at 40Mhz with VTH rates.

Looking at the Spectrum I see the Client TX'ing at the correct full 80Mhz width. The AP is TX'ing at the correct 40Mhz width based on the channel used. It shifts and uses the correct 40Mhz width (either upper or lower depending on channel) as if it's either ramped back or set to 40Mhz. Not using the correct 80Mhz center and only TX'ing at 40Mhz.

I'm starting to wonder if it's specific to the Qualcomm Atheros QCA9982 chip the AP uses. I would think if it was an overall QCA99x0 issue, more models would be having similar issues.

The QCA9982 is only use by one other device, but they didn't see any issues so far. This radio also isn't really listed anywhere as 'supported'. The PCI IDs are the same as for the QCA9990, but the firmware just worked, so I didn't think much of it.

Interesting tests you're doing by the way. I just noticed that on my EAP245v1, with a QCA9880 radio, 80MHz AP to station does happen, so at least it is supported by the software stack.

I just submitted a bug report for the issue... Task ID 3405

It seems right now the best "true" combo is..
kmod-ath10k
ath10k-firmware-qca99x0-ct

Even though Luci, 'iw dev wlan0 station dump' and 'hostapd_cli all_sta' show TX mode for all clients as 6Mb/s 20Mhz. In reality it is actually TX'ing at 80Mhz and higher VHT modes when you look at it with an external spectrum analyzer. The bug with kmod-ath10k looks to be just the TX mode reporting, RX mode is correct.

The bug with kmod-ath10k-ct is it is actually limiting TX mode to 40Mhz. But, it is reporting this correctly.

Hi

i tried installing openwrt latest snapshot as per page on openwrt regarding EAP245

i waited for several minutes after flash and nothing happened, so i decided to power cycle the unit. Now it seems to be bricked in some way, the LED flashes GREEN-ORANGE-GREEN, then after around 15 secs starts fast green blinking that lasts around 5secs and slighly slower green blinking that lasts around 15 secs. Then LED is solid green.

If i press reset button during the first fast 5 seconds blinking, it start to blink fast orange led and stays like that until power off.

Before i go further and try TFTP or other methods, can someone please provide guidelines at this point?

It doesn't sound like it's bricked, it sounds like it's functioning as intended. The fast-slow-solid green indicates the device is booting and then running in normal operation. The fast orange blinking indicates that you entered failsafe mode (by pressing the reset button).

The default OpenWrt config will configure address 192.168.1.1 on the interface. That address should be reachable after the initial flash.

The problems is, i can't ssh into it on 192.168.1.1:22, connection gets timed out.

It's connected thru PoE switch, but changing to provided PoE adapter didn't change anything.

Nevermind, it's working, sorry for taking up your time.

Do you mind sharing the stock firmware to get back from OpenWRT? Performance is somewhat disappoiting, so i wanted to flash stock.

The -sysupgrade.bin file is for flashing directly from OpenWRT to TP-Link EAP245v3 2.21.0 firmware. In the OpenWRT Firmware flashing, you will will need to "Force" it and Uncheck to preserve settings.

The unit will boot up in Factory Default mode. You will then need to flash the TP-Link EAP245v4 2.21.0 Stock bin again (second reflash is needed to get the partitions correct so it will actually save settings).

OpenWRT to TP-Link EAP245v3 2.21.0 sysupgrade image/bin - TP-Link EAP245v3 2.21.0 Sysupgrade.bin

TP-Link EAP245v3 2.21.0 Stock image.bin (Same as on TP-Link's Site - TP-Link EAP245v3 2.21.0 Stock bin

1 Like

I've been flashing back and forth between OpenWRT builds for debugging and Stock...

Still best combo I've had is when using the kmod-ath10k Kernel Module/Driver (not the -ct version) and forcing the latest beta -ct firmware...

600Mb/s Up from Client @ 80Mhz
450Mb/s Down from AP @ 80Mhz (ignore the displayed 6.0/Mbs and 20Mhz the Station List shows). It IS actually TX'ing at 80Mhz width (if that's what you have set).

Stock TP-Link Firmware I get.. (Limit is other end test machine is wired at Gb link (1000Mb/s))
900+Mb/s Up from Client @ 80Mhz
900Mb/s Down from AP @ 80Mhz

I use the 5Ghz Wifi for Streaming between an Oculus Quest VR headset and Gaming PC. 300-400Mb/s is about bare minimum needed for VR Game streaming wirelessly. OpenWRT did work OK. But, would get slight jitter and pauses sometimes (about the same as older Cisco AP I pulled out using 40Mhz width). Using the Stock TP-Link firmware it's always smooth using 80Mhz width.

The extra 802.11r Roaming control and Full DFS Bands are nice with OpenWRT. I think the -ct Driver/Module just needs to be updated to fully work with the QCA9982 chip properly.

1 Like

I'm glad to read about you guys working with OpenWrt on the TP-Link EAP245. For a few years, I've run OpenWrt on a Linksys WRT1900ACS in my home. Recently, I migrating to running pfSense on a PC Engines APU2E4 using TP-Link EAP245s as APs. I prefer open source firmware, so it is good to see that there are those out there working to develop OpenWrt towards getting performance similar to stock firmware for the EAP245.

Thanks a lot mate! Worked like a charm, back on stock. I had to use wget and flash in ssh, since latest snapshot inroduced a bug with not installing dependencies, so i could not install luci properly.

Regarding speeds it's strange for me. I used my phone to test the Wifi (Huawei P30 pro) and with Archer C6 on latest OpenWRT i got around 200 mBit, and with EAP245 on OpenWRT around 80-90 mBit. Standing next to the devices! Archer and EAP are connected with 1GBit lan.

Going back to stock didn't change anything, speeds are same as on OpenWRT but loosing the ability to use roaming and somewhat cumbersome gui i have decided to give OpenWRT another chance next weekend.

Can you pull firmware you're using on EAP245 and post it? I would like to test it.

The Firmware I've been testing is directly from Candela Technologies...
CT Latest Beta Firmwares

I've used the firmware-5-ct-full-community.bin and firmware-5-ct-non-commercial-full.bin
My "better" results have been with the non-commercial version. I use and test with the Full versions of IW and Hostapd. That gives full feature support.

Place the file as firmware-5.bin inside /lib/firmware/ath10k/QCA99X0/hw2.0/

On a side note.. If you are testing real close to the AP, you might actually get better results by lowering the AP's TX power. I've noticed once you get the TX power above 100mw (20dBm) looking at the signal on a Spectrum Analyzer it tends to bleed/distort outside of the channel width. That bleed over flattens out into the noise at about a 20ft distance.

Thx for the firmware. How can i check if EAP is using the firmware you provided? Because speeds didn't change.

What i did was wget the file to /tmp, rename it with "mv", and then copy it with "cp" command to /lib/firmware/ath10k/QCA99X0/hw2.0/ and reboot

EDIT: "du" shows 549 kb in size, so...

Look at the Kernel Log or use the following command in ssh terminal...
dmesg | grep 'firmware ver'

Output from what OpenWRT package loads...

root@OpenWrt:~# dmesg | grep 'firmware ver'
[   15.395023] ath10k_pci 0000:00:00.0: firmware ver 10.4b-ct-9980-fW-13-10af6a005 api 5 features mfp,peer-flow-ctrl,txstatus-noack,wmi-10.x-CT,ratemask-CT,regdump-CT,txrate-CT,flush-all-CT,pingpong-CT,ch-regs-CT,nop-CT,set-special-CT,tx-rc-CT,cust-stats-CT,txrate2-CT,beacon-cb-CT,wmi-block-ack-CT,wmi-bcn-rc-CT crc32 4a0fa880

Output from latest Beta non-commercial...

root@OpenWrt:~# dmesg | grep 'firmware ver'
[   15.627184] ath10k_pci 0000:00:00.0: firmware ver 10.4b-ct-9980-xfW-13-5ae337bb1 api 5 features mfp,peer-flow-ctrl,txstatus-noack,wmi-10.x-CT,rxswcrypt-CT,ratemask-CT,regdump-CT,txrate-CT,flush-all-CT,pingpong-CT,ch-regs-CT,nop-CT,set-special-CT,tx-rc-CT,cust-stats-CT,CT-STA,txrate2-CT,beacon-cb-CT,wmi-block-ack-CT,wmi-bcn-rc-CT crc32 cecd9aea

But, with the speeds you are getting using TP-Link's Stock Firmware I don't think OpenWRT or any ath10k Firmware changes are going to make a difference...

I'd be checking for TX/RX Error and Retry rates on the 5Ghz radio. Might be other devices using the 5Ghz band around you bringing your noise floor up. Common things are Wireless Security type cameras and sensors, Cordless Phones, Radar, etc...

Even if you are right next to the AP with other "stuff" operating in the same band around you. That can cause high Packet Error and Retry rates. Which will naturally slow your usable speeds down. But, since any Wifi radio tries to wait for "clear air" before they transmit. That wait timing can slow you down too.

Even at the worst using the ath10k-ct Driver/Module and ct Firmware that OpenWrt master is using. I still get 400Mb/s Up from Client and 250Mb/s Down from AP using iperf3 and UDP transfer tests. The Beta CT Firmware seemed to make the results more consistent. Going to the base kernel ath10k Driver/Module opened my Down from AP speeds more since the AP radio actually used 80Mhz width with it.