I recently bought the Xiaomi AIoT AX3600 wireless router to experience WiFi 6 (or 802.11ax). This WiFi 6 router has been touted as having very good hardware specs for under US$100. After checking out a few reviews, it looked like you could achieve close to Gigabit speeds over a wireless link, which was pretty exciting. It reminded me of the time I upgraded my home network to Gigabit and could finally copy large files over the network quickly. I decided to get my hands on one and evaluate it with some speed tests around the house.
I don’t have any compatible WiFi 6 devices yet, so I ordered an Intel AX200NGW wireless card to replace the one in my laptop. These cards typically go for US$15 on AliExpress or eBay.
I performed some speed tests using iPerf 3, within the local network, obviously. My Internet speed maxes out at 500 Mbps and is unable to saturate a Gigabit network, so using an external website/app like SpeedTest.net is pointless.
I have a machine that handles DHCP and runs
iperf3 in server mode. That is connected to the Xiaomi router via one of its Gigabit LAN ports. To verify that the wireless router is unimpeded, I used my desktop to run iperf3 and it gets about 944 Mbps:
> iperf3 -c 192.168.0.1 -O 2 Connecting to host 192.168.0.1, port 5201 [ 4] local 192.168.0.52 port 49170 connected to 192.168.0.1 port 5201 [ ID] Interval Transfer Bandwidth [ 4] 0.00-1.00 sec 113 MBytes 945 Mbits/sec (omitted) [ 4] 1.00-2.00 sec 113 MBytes 945 Mbits/sec (omitted) [ 4] 0.00-1.00 sec 112 MBytes 944 Mbits/sec . . [ 4] 7.00-8.00 sec 113 MBytes 944 Mbits/sec [ 4] 8.00-9.00 sec 112 MBytes 943 Mbits/sec [ 4] 9.00-10.00 sec 113 MBytes 945 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth [ 4] 0.00-10.00 sec 1.10 GBytes 944 Mbits/sec sender [ 4] 0.00-10.00 sec 1.10 GBytes 948 Mbits/sec receiver iperf Done.
I then performed the iperf3 tests using my laptop wirelessly, first with the old Intel 8265NGW 802.11ac 2×2 card, then upgraded to the Intel AX200NGW WiFi 6 2×2 card and re-ran the tests. Testing with a 2×2 WiFi client is reasonable because most devices, like phones and tablets, are 2×2 devices. This Xiaomi router is capable of 4×4 but I do not have the hardware to test this. The tests were performed at a few locations, ordered by increasing distance:
- here, about 50cm – 1m away from the router
- tv, about 4 – 5m within line-of-sight, in the same room as the router
- r3, a room just behind the router, separated by a concrete wall
- r1, a further room with about 2 concrete walls in between
- f, the end of the hallway connecting the rooms
- d, a further bend after the end of the hallway
A hallway connects room r3 and r1, and also at the end of the hallway f. The living room where the router is located can bounce signals into the hallway, I assume, resulting in r3 having very good reception as the door is open. The furthest location d has at least 3 concerete walls in the path of the router, or the signal can also bounce around a long hallway followed by a bend, to reach it.
The rows of
iperf3 interval speed results are plotted as marks on the graph. These rows are reported by iperf3 every second, by default. This provides a more realistic picture rather than just plotting the final average.
You can see that locations here, tv and r3 have similar speeds, ranging from 400 to nearly 500 Mbps with WiFi 6. Using the old 802.11ac card, the speeds ranged from 350 – 450 Mbps while connected to the same router. The speeds at these 3 nearby locations are comparable.
To help evaluate if you should upgrade from WiFi 5, I also compare against an existing 802.11ac router I have, the D-Link DIR-868L that is flashed with dd-wrt. This is an AC1750 class router, and as you can see, the results are below 250 Mbps, but consistent, in these 3 locations.
Moving to the further room r1, both WiFi 6 and 802.11ac speeds are reduced to below 400 Mbps, with WiFi 6 providing a slightly better lead. The AC1750 router performance was not tested here.
As we go beyond r1, we notice some interesting results. WiFi 6 seems to be able to offer speeds of above 250 Mbps, but it is not consistent. You can see more ticks being drawn in the 150 to 350 Mbps range. Meanwhile, we seem to have hit the limitation with the 8265NGW card, as the client tries to maintain a 650 Mbps PHY speed, but sometimes drops down to 325 Mbps. The two clusters on the graph are from 2 separate runs, depending on the stable PHY speed.
At the furthest location d, the 8265NGW card gives up and can only maintain the lower PHY speeds of 144.4 Mbps or 115.6 Mbps, sometimes even 57.8 Mbps. We know the issue lies with the wireless card because with the Intel AX200NGW card, it can get higher speeds from both the Xiaomi and D-Link routers more reliably. At this location, the AC1750 router can offer the same ~100 Mbps speeds as the WiFi 6 router.
Real World Tests
I’m not sure if iperf3 gives a good measure of speed, so I also performed more real world tasks in the vicinity of the router.
I set up a Caddy HTTP file server to serve a 3.38 GB ISO file from an SSD. I then used
curl on the client machine to download the file from the server into
/dev/null. Using a wired Gigabit client, the average speed reported by
curl is consistently 111 MB/s across several runs. With that reference, I ran
curl over WiFi 6 to download the same file, and the average for ten runs was 98.77 MB/s. The numbers were mostly above 96 Mbps and sometimes averaged above 100 Mbps.
Here’s the screenshot of the Windows Task Manager as it downloaded the ISO file from Caddy:
I also used LibreSpeed speedtest-go, which is a self-hosted speed test server, with the backend written using Go, just like Caddy. You can unzip the files and run the static binary without any external dependencies.
Taking 10 tests with LibreSpeed, the average download is 841.6 Mbps and the average upload is 736 Mbps. A majority of the runs have download speeds of above 830 Mbps but never above 896 Mbps, and two runs with 750+ Mbps.
The Xiaomi AX3600 router admin interface is spartan. While it is based on OpenWRT, the web UI has been dumbed down extensively. I have not tried the mobile app, but it seems that there might be more settings available there. Coming from a more customizable router platform like ASUSWRT, you will find this router severely limiting. Apparently this MiWiFi ROM platform is common to Xiaomi routers, similar to how ASUSWRT is deployed on newer ASUS routers. Some of the advanced features available here are VPN, Port Forwarding, DMZ, QoS.
I’m testing against firmware version 1.0.20, which it shipped with. There is also a newer version available, which I didn’t upgrade to yet.
The UI language is only in Chinese, but I believe you can download an iOS/Android app that should be localized, to complete the router setup. You can also use Google Translate in Chrome. While it does ask you to sign in to your Xiaomi account on initialization, that can be totally skipped. You can set it up without the app by plugging your laptop into one of the LAN ports. It will obtain an IP address and you can navigate to the router’s web UI.
On the main screen, you have general control, such as to separate or merge the 2.4 & 5GHz SSIDs, enable 802.11ax mode, MU-MIMO, and the AIoT support for automatically adding Xiaomi IoT devices. Note that for wireless authentication methods, you only have Open, WPA, WPA2, WPA3 PSK, or a combination with WPA2 as the denominator. There’s no configuration for you to use WPA Enterprise, which I do on my network.
The router also doesn’t have features like Guest Network support, which I also currently use. If you are looking to replace your existing ISP-provided router in a GPON network, you also don’t get VLAN port splitting, which is needed if you have a TV set-top box currently connected to your router.
There is also no USB port, so you can’t use the router as a print server or a NAS or media server of any kind.
Another important thing to watch out for is tracking or analytics on the web UI. Every router UI page you load, buttons you click, all generate tracking events sent to
hxxp://api.miwifi.com/res_stat/track.gif?p=MIWIFIWEB&.... I assume
MIWIFIWEB tells the tracker that these events are for the “MiWiFi web-based UI”. On top of that, it sends the exact URL of the router admin page you are visiting, together with the
stok which I assume is your session token, your
deviceId which looks like some GUID tied to your device,
romVersion which is 1.0.20 in this case, and other information. All this tracking information is sent over HTTP, in plaintext, for the world to see. You can mitigate this issue with an ad blocker and some custom rules. In fact, some of these may already have been blocked because of a typical filename like
Xiaomi routers seem to be more locked down than other manufacturers like ASUS or D-Link. On top of a normal integrity check, the firmware images are also signed by a private key held by Xiaomi. This means that installation of any third-party firmware images are not possible from the web UI.
You can see from some recent OpenWRT installation pages for the Xiaomi routers that they first require some exploit in the existing signed firmware. Once code execution is achieved, you can spawn a shell or activate SSH and use that to overwrite the current firmware by flashing a new firmware image.
Hardware & Teardown
There are already some teardowns and hardware analysis of the various wireless chips inside performed by others (in Chinese only):
I haven’t taken mine apart yet, because they have said some clips were difficult to undo and broke off, which was definitely a common occurrence for me when I disassembled routers previously.
The router is quite bulky actually. The 7 antennas are non-removable, 5 along the front and 2 at the sides. They can rotate and have detents in the upright and 45-degree positions. The center antenna has an LED indicator on top for the AIoT devices, which corresponds to the AIoT network status. From the teardowns, it seems like there is a dedicated radio SoC, the QCA9889, just for this network. You can see it in teardown photos, under the shield marked
SH4 near the
AOT_ANT antenna connector. This is somewhat good because the IoT radio can be tuned to separate channel(s) and have less load on the main WiFi network.
Each of the Gigabit ports on the back also have link/activity indicators. Beside the 4 ports are the DC power input jack, and a reset button.
I like to look at power adapters to see whether they are easy to source, in case it dies. The power adapter used is a 12V @ 2A, center-positive barrel jack. The OD is 3.7mm, same as the DIR-868L adapter. However, they are not interchangable because the inner diameters are different.
The Xiaomi adapter has a larger hole or inner pin, and also has retaining claws which are visible. This means the DIR-868L adapter cannot be used to power the Xiaomi, but the Xiaomi’s adapter can be used for the DIR-868L.
Should You Upgrade?
The answer to this is always “it depends”.
If you are using an old router like the AC1750, or an AC1900 one like me, then upgrading to a WiFi 6 router might be a good idea. However, you should wait for WiFi 6E routers to become available as that uses the 6GHz band that can offer better resilience and bandwidth.
If you are a power user, I can’t recommend this Xiaomi AX3600 router as-is because it is missing features like WPA Enterprise support, and the ability to add Guest Networks. Also, if the web UI has tracking calls over HTTP, I don’t know what kind of surprises await me in the firmware when it is connected to the Internet.
Another thing to consider is that Gigabit ports may now be the limiting factor in these WiFi 6 routers. Other high end router models like the ASUS RT-AX86U or the GT-AX11000 have at least one 2.5 Gbps port. Enterprise WiFi 6 APs are also including a 10G port.
However, there might be hope for this router yet. There is a recent thread on OpenWRT forums to try and add OpenWRT support for this router. If you are brave enough, you can give it a try or help them out.