Adding OpenWrt support for Xiaomi AX3600

Just about 2 meters away from the router (AX, 5G, CH36, 160MHz, no routing involved):

ax3600 (server) <-> mi10tpro (snapdragon 865) (ax) (client)

Same as above (but routing involved, Notebook AC connected! acting as iperf3 server; realisticly AC would not give more then ~450-500Mbps max and is not really made for 160MHz even if claimed so, but this does not matter):

i3 notebook intel ac9260 (ac) (server) <-> mi10tpro (snapdragon 865) (ax) (client)

Same as above (Notebook connected via GB-LAN acting as iperf3 server):

i3 notebook (realtek gb lan) (server) <-> mi10tpro (snapdragon 865) (ax) (client)

In real life esp. the last case is more fluctuating then visible here in this short test. If you change settings to 80MHz you will get slightly better values.

EDIT: Fixed the last chart. Forgot to fix the realtek lan driver for latest kernel. :confused:

1 Like

Notebook (AC) as server,
android pad as cient.

Notebook as server,
Desktop PC as client.

Connecting to host, port 12345
[  5] local port 56122 connected to port 12345
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  66.1 MBytes   555 Mbits/sec    0   3.05 MBytes       
[  5]   1.00-2.00   sec  75.0 MBytes   629 Mbits/sec    0   3.05 MBytes       
[  5]   2.00-3.00   sec  78.8 MBytes   661 Mbits/sec    0   3.05 MBytes       
[  5]   3.00-4.00   sec  68.8 MBytes   577 Mbits/sec    0   3.05 MBytes       
[  5]   4.00-5.00   sec  68.8 MBytes   577 Mbits/sec    0   3.05 MBytes       
[  5]   5.00-6.00   sec  76.2 MBytes   640 Mbits/sec    0   3.05 MBytes       
[  5]   6.00-7.00   sec  72.5 MBytes   608 Mbits/sec    0   3.05 MBytes       
[  5]   7.00-8.00   sec  72.5 MBytes   608 Mbits/sec    0   3.05 MBytes       
[  5]   8.00-9.00   sec  78.8 MBytes   661 Mbits/sec    0   3.05 MBytes       
[  5]   9.00-10.00  sec  78.8 MBytes   661 Mbits/sec    0   3.05 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   736 MBytes   617 Mbits/sec    0             sender
[  5]   0.00-10.05  sec   736 MBytes   614 Mbits/sec                  receiver

iperf Done.
1 Like

(just as an info iperf from phones are not reliable and wifi6 can reach peak perf with multiple connection)


can you try

i get this from the router directly out to my provider using the speedtest package

Well, I don't have speedtest included into my builds. Beside that my internet connection is limited to 250MBit/s (on paper). It gets synchronized with ~280MBit/s. As I do not have bridged my providers modem (not possible) and I do not have pppoe in play the output is pretty straight. Testing from the router would propably not change the outcome. If you think speedtest from the router would give something interesting just upload the ipk. I'll try it.

What I can tell is that I'm reaching with an AX3200 ~33MB/s (reliable) with my Snapdragon 865 AX Smartphone with a plain download of an iso dvd. For the AX3600 it is ~34MB/s (reliable). So a minor difference.

Anyway I did test Notebook and Smartphone (I didn't mess with the settings! Looking just random). I see those tests just as indicators that things are running at a certain level compared to others. But those speeds from this test are looking wired to me.

EDIT: I have a question: Would the nss build change anything in reagard of performance wifi <--> lan? I would guess so. But I don't know if its worth. fixed it. All fine now.

My results with Iperf3 and enough threads (4-8) are quite good on Android phones.

Thanks a lot for all the comments about the speed. I guess I didn't leave enough time for the config to settle or it wasn't applying properly. I woke up this morning and the OpenWRT AX3600 was doing 300+Mbps, not the same as Xiaomi FW, but that may also be related to the location and neighbouring networks. In any case, that speed is more than enough and I'm sure I could get more if I tested with my Intel AX200 instead of a sorry handheld device. So it's time to flash the other router and forget about the minimalistic blue interface.

Also, thanks a lot to @robimarko and @Ansuel for all their work. Also a special mention to @dimfish for the UART-less instructions

And since I already moved to OpenWRT and I can do a seamless backup of my device, I'm up for some testing when required. As long as does not require UART access :sweat_smile:

Since it wouldn't be nice to leave this without the proper testing, here we are:

  • Xiaomi FW WLAN to LAN:
    • Forward, 1 Thread: 409 Mbits/sec
    • Forward, 8 Thread: 822 Mbits/sec
    • Reverse, 1 Thread: 348 Mbits/sec
    • Reverse, 8 Thread: 934 Mbits/sec
  • OpenWRT WLAN to LAN:
    • Forward, 1 Thread: 337 Mbits/sec
    • Forward, 8 Thread: 592 Mbits/sec
    • Reverse, 1 Thread: 362 Mbits/sec
    • Reverse, 8 Thread: 897 Mbits/sec

HW, Methodology & caveats:

  • Wirles via Intel AX200
  • Lan via single gigabit, I didn't think anything like LACP was necessary here although we're getting close in some scenarios. Which is pretty cool!
  • Base command: iperf3 -c -t 60 -O 5
  • Both APs are in service, so other devices may have interfered with the test
  • OpenWRT AP is downstairs, which generally is more crowded with neighbours' AP than the Xiaomi in the upstairs area.

Overall, I think the performance is similar and more than enough for what I expect from wireless

1 Like

After converting the 2nd AP

  • OpenWRT upstairs WLAN to LAN:
    • Forward, 1 Thread: 355 Mbits/sec
    • Forward, 8 Thread: 618 Mbits/sec
    • Reverse, 1 Thread: 347 Mbits/sec
    • Reverse, 8 Thread: 719 Mbits/sec
1 Like

@MacManas would you (or somebody else in this thread) mind doing some wifi measurements that are similar to There have been reports of wifi ax being worse than wifi ac in same location and distance: 802.11ax worse than 802.11ac with mt76 driver?. We are trying to find out if it is purely limited to Mediatek driver and software or if other drivers and hardware experience the same phenomenon.

In general, it would be great to have precise measurements. E.g. a Markdown formated table that features following information:

  1. info about hardware and software (e.g. version of OpenWRT) of all involved devices (both client and server)
  2. Signal strength received in dBm (Example). E.g. with Wifianalyzer
  3. Info from speedtests using Iperf3 or Iperf2 (How to ).
  4. Very Important: Comparison of same location and same devices with different protocols (e.g. AX vs AC vs N) and different drivers/firmware/versions of OpenWRT or original software. (Example)
  5. Comparison of different distances (Example)
  6. Comparison of different layers of obstacles (e.g. walls) (Example)
  7. Device configuration, especially in case you have good results with your wifi and think it works very well.
1 Like

I'll try to gather information about this over the weekend. However we may need a different topic, I've polluted this thread quite a bit already :blush:

1 Like


They've added a new file to the QUIC ath11k repo for the IPQ8074 named qdss_trace_config.bin for debugging firmware loading by the looks of it.

Any use to us?

1 Like

Not really, as that output is processed by QCA internal scripts only.
I dont know if ath11k even supports sending it to the FW in the upstream driver.


I did a short test and I cannot confirm that AC is better performing then AX. But I only can compare Intel AC 9260 (2x2, 1,7GBps max.) on pc side vs. mi10tpro/s11 (snapdragon 865 AX, 8x8, 1,7GBps max.) on phone side. For AC it is ~80 MB/s on avarage while AX is on ~90 MB/s (ax3600 is iperf3 server). (Irqbalance on, STP off, CPU gov shedutil, Beamforming off, CH 36, 160, dbm 24 (router side), -23~-30 (client side), SW offload on, HW offload n/a).

I'm quite happy with the current state of this device for my usecase. Thx and compliment to the developers!

EDIT: Almost forgot: This applies to AC for the router side also. But the values are slightly lower and more even. AC 9260 has a slight advantage here. So for both ~75MB/s. I didn't test N.

1 Like

Using dimfish's extended version and activating SQM slows down my download to around 300-400mbit (I have 1 Gigabit cable connection)
Using Cake and Piece of Cake
Are these normal results for AX3600 or is there something to get more speed including the benefits of SQM.

BTW is there a easy solution to block internet access to one of the devices? On Asus WRT and even Xiaomi stock FW I could block all internet traffic for one or specific devices with one button.

1 Like

i was actually trying out sqm and it feels there is a slow down in spite of raising e & i gress higher than my provider bandwitdh of 1.2g ... i played around using the advanced settings increasing latency to about 55ms and slightly increased beyond the 400mbits ... without SQM it gets up higher up (note I am using mwan3) but with a very high latency +100ms. This maybe a feature of QCOM without the QCA packages

wondering if other people experience with SQM is similar

however if use SQM i get a much better bufferbloat with

as i said without sqm i would get over 1gbps but with high latency .. not ideal really as this is the only device connecting at the moment ....

mwan3 with loadbalancing or failover? Try sqm outgoing traffic only and set ingress bandwidth to 0.

Station: redmi-ax6 – stock firmware 1.1.10 wired to HOST computer

Client: Intel Wi-Fi 6 AX200 @ aprox 1m with a clear line of sight:

iperf3 -c HOST:

iperf3 -c HOST -R:

iperf3 -c HOST --bidir:

Client: Intel Wi-Fi 6 AX200 @ aprox 6m with a thin brick wall blocking line of sight:

iperf3 -c HOST:

iperf3 -c HOST -R:

iperf3 -c HOST --bidir:

Station: redmi-ax6 running Robi’s latest OpenWRT release wired to HOST computer

Client: Intel Wi-Fi 6 AX200 @ aprox 1m with a clear line of sight:

iperf3 -c HOST:

iperf3 -c HOST -R:

iperf3 -c HOST –bidir:

Client: Intel Wi-Fi 6 AX200 @ aprox 6m with a thin brick wall blocking line of sight:

iperf3 -c HOST:

iperf3 -c HOST -R:

iperf3 -c HOST--bidir:

By the looks of it ath11k and OpenWRT ( a giant thx to @robimarko) have matured and now put up a more equal fight against stock Xiaomi QCA firmware.

TX on OpenWRT still seems to suffer over distance, I did see that stock TX had a HE-GI 1 flag vs HE-GI 0 on OpenWRT.

1 Like

I am about to do a new build tonight so I can play with it and see. It hasn't done it in a while - same cable is still in use. FWIW, this is one of those flat cables that is designed to run under carpet (although it doesn't) and I'm pretty sure it probably wouldn't meet spec if placed on a cable tester.

This is the first device that's had a problem with it, though. I'm not sure how these cables are constructed, but I can't see how they would properly twist the pairs in such a cable unless the wire gauge was excessively small. All the other cables attached to the router are standard stranded UTP... probably all Cat-5e but there might be a couple CAT-6 in the mix. It doesn't seem to have a problem with any of those.

THIS. You need multiple threads with iperf3. I use 10, but 4 is probably enough.