Severe reduction in wifi range vs stock - Luxul Epic 3 / XWR-3150v2

TL;DR summary: My Luxul Epic 3 / XWR-3150v2 router has very bad range when using OpenWRT compared to stock firmware. I tried a bunch of settings and tests, but couldn't get it better. The pre-made OpenWRT firmware for my router is made for v1 of the device, not my v2, but I don't know if that actually is causing this impact or not.

...

I have a Luxul Epic 3 router (XWR-3150v2) behind my AT&T modem/router (Arris BGW210-700) in IP Passthrough mode. For some reason, native IPv6 refuses to work on the Luxul (I assume due to some kind of issue with the Luxul's DHCPv6 client; native IPv6 works on the Arris fine). So I tried installing OpenWRT, and IPv6 worked perfectly fine with the Arris in passthrough. HOWEVER, the range/speed of the wifi becomes extremely reduced.

Before switching to OpenWRT, I can easily get 50 Mbps download on the 2.4 GHz network, but after I am lucky to get more than 5 Mbps (and very often would get speeds in the kilobits per second). On the 5GHz network I can easily get 70+ Mbps (though I've seen up to 200 on good days) with 200 to 500 ms bufferbloat, but on OpenWRT I have seen a max of maybe 20 Mbps with bufferbloat over 3000ms (like the 2.4GHz, the results were often worse at the single-digit Mbps). Some detailed test results are at the end of this post.

I tried making use of SQM, but it did not help.

When wired directly into the Luxul, I can see my paid-for speeds of around 700+ Mbps, so the issue plagues only the wifi. With a laptop right next to the router, I can also see the wifi speeds I'd be expecting. I know my computer's location isn't great for wifi range, but that's part of the reason I bought the Luxul and I haven't had troubles with the stock firmware.

I tried advice from a number of forum threads; here is one example in particular that I tried at recommendation from someone in a different community (I couldn't find threads specifically for optimizing the XWR-3150): Poor Wi-Fi performance on 17.0.1 Stable (WRT1900ACS v2) - #8 by danghuy1994

Tried those settings exactly (well, except for the path since that's device specific), and no improvements in speed or reading from the phone wifi analyzer (5G connection is also just as unstable). The desktop "netsh wlan show all" does show better reading percentages (2.4G at 60% and 5G at 66%), but that didn't translate into better performance. The percentage also dropped severely at times (to 33% for the 2.4G and 50% for 5G). Connecting to 5G has issues talking to router: pinging doesn't work consistently (times out and has response times in the 2000+ ms), no WAN connection, but the GUI web page works (though it is quite slow).

I want to focus on how my XWR-3150 is v2 because of this thread of comments: https://patchwork.ozlabs.org/project/openwrt/patch/20200406182013.86147-1-dan.haab@luxul.com/
Where there are very specifically claims made that "luxul has no plans to create a 'v2' of this device", which is only from April last year. https://git.openwrt.org/?p=openwrt/openwrt.git;a=blob;f=target/linux/bcm53xx/image/Makefile; from the source for OpenWRT also uses the string "bcm47094-luxul-xwr-3150-v1". I don't know what chipsets my version actually uses and if there were any notable changes that the OpenWRT installation for XWR-3150v1 doesn't account for. I bought my router in June or July of last year. I attempted to ask Luxul about what changes were made between revisions, but never got word back. I could dismantle the device and check myself, but I didn't want to remove the shielding plate that all the chips are under.

Could I get some help figuring out how to improve my range to a usable degree? I'd like to run an ethernet cable to my office eventually, but I don't have the luxury of doing that right now. I re-installed the stock firmware, but can move back to OpenWRT if I have some ideas to help.

Detailed Test Results (http://www.dslreports.com/speedtest was used for these tests, though sites like fast.com didn't show much better results):

-----STOCK-----

Phone wifi analyzer at desk
2.4 GHz : -53dBm to -47dBm
5 GHz : -73dBm to -66dBm, channel 153(155)

Signal strength on router end
2.4 GHz : -68 dBm
5 GHz : -82 dBm

Signal strength on desktop end
2.4 GHz : 74% / -63dBm?
5 GHz : 70% / -65dBm?

Speeds
2.4 GHz : 52 down, 72 up, 320ms bufferbloat down
5 GHz : 132 down, 155 up, 200ms bufferbloat down

-----OPENWRT-----

Phone wifi analyzer at desk
2.4 GHz : -74dBm to -66dBm
5 GHz : -75dBm to -71dBm, channel 36(38)

(note: I couldn't get my 5 GHz radio to play nice with channel 153 when using OpenWRT)

Signal strength on router end
2.4 GHz : -67dBm
5 GHz : -82dBm

Signal strength at desktop end
2.4 GHz : 43% to 46% / -77dBm?
5 GHz : 20% to 33% / -87dBm?

Speeds
2.4 GHz : 11 down, 24 up, 1200ms bufferbloat down
5 GHz too unstable to test

I think the problem may be CLM data. It's a set of parameters that is used to control RF power.

OpenWrt uses wireless chipset firmware provided by Broadcom that:

  1. Contains generic CLM data
  2. Is meant to work safely with all devices

I assume that generic CLM data provided by Broadcom results in at least low TX power.

I'm sure vendors have and use their own device specific CLM data that results in much better performance.

In theory it's possible to have custom CLM data next to firmware file but creating such CLM binary is undocumented. It should be possible to extract CLM from Luxul's firmware and make OpenWrt use it but there are no tools for that.

I'll try asking on relevant mailing lists and see if I can get any support on that.

Hi, it's been quite a while since you said you'd look into this. Do you know if there has been any update to OpenWRT's support of the WXR-3150v2?

I had the same problem. I was able to carve out the the proprietary driver and drop it into the place and have had a win.

This link got me a result, now im not sure if this is the best path but it worked for me.

https://wiki.faked.org/Asus_PCE-AC88_with_hostapd

I think the "v2" designation means its running openwrt.

Anyways hope that helps!