After about a year of hoping, waiting, testing, and so on, and thanks to Ilario and Nicopace’s help, I can finally confirm that the Xiaomi Router 3G [MI R3G] is a dream router.

I am still very excited about the LibreRouter, and that’s a project I had been considering starting myself in the past before I ran into it, but this router is 30€ and - after 4 years of work in this field - has finally rebooted my hope into mesh networks, sustaining a 135mbps mesh over 5GHz AC WiFi, with 1ms latencies between nodes under ideal conditions.

I’ve learned that several other people - with actual technical expertise [as opposed to mine] - are looking into this router also because of its mt7621 chip, which I hear seems to work much better than ath10k. It can also apparently sustain a gigabit hardware NAT [I seem to have understood from rumors].

I’ve run several iperfs and I keep getting results over 100mbps up and down and sometimes even peaking at 140mbps. The latency between nodes is a steady 1ms.

root@OPNT-d04123:~# ping6 fd66:66:66:7:4231:3cff:fed0:41a4
PING fd66:66:66:7:4231:3cff:fed0:41a4(fd66:66:66:7:4231:3cff:fed0:41a4) 56 data bytes
64 bytes from fd66:66:66:7:4231:3cff:fed0:41a4: icmp_seq=1 ttl=64 time=1.69 ms
64 bytes from fd66:66:66:7:4231:3cff:fed0:41a4: icmp_seq=2 ttl=64 time=1.04 ms
64 bytes from fd66:66:66:7:4231:3cff:fed0:41a4: icmp_seq=3 ttl=64 time=1.04 ms
64 bytes from fd66:66:66:7:4231:3cff:fed0:41a4: icmp_seq=4 ttl=64 time=1.11 ms
64 bytes from fd66:66:66:7:4231:3cff:fed0:41a4: icmp_seq=5 ttl=64 time=1.11 ms
64 bytes from fd66:66:66:7:4231:3cff:fed0:41a4: icmp_seq=6 ttl=64 time=0.875 ms
64 bytes from fd66:66:66:7:4231:3cff:fed0:41a4: icmp_seq=7 ttl=64 time=0.992 ms
64 bytes from fd66:66:66:7:4231:3cff:fed0:41a4: icmp_seq=8 ttl=64 time=1.43 ms
64 bytes from fd66:66:66:7:4231:3cff:fed0:41a4: icmp_seq=9 ttl=64 time=1.18 ms
64 bytes from fd66:66:66:7:4231:3cff:fed0:41a4: icmp_seq=10 ttl=64 time=1.07 ms
64 bytes from fd66:66:66:7:4231:3cff:fed0:41a4: icmp_seq=11 ttl=64 time=0.752 ms
^C
--- fd66:66:66:7:4231:3cff:fed0:41a4 ping statistics ---
11 packets transmitted, 11 received, 0% packet loss, time 10098ms
rtt min/avg/max/mdev = 0.752/1.120/1.698/0.248 ms

localhost:~ at$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
Request timeout for icmp_seq 0
64 bytes from 8.8.8.8: icmp_seq=1 ttl=120 time=3.857 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=120 time=3.906 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=120 time=10.015 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=120 time=3.843 ms
^C
--- 8.8.8.8 ping statistics ---
5 packets transmitted, 4 packets received, 20.0% packet loss
round-trip min/avg/max/stddev = 3.843/5.405/10.015/2.662 ms

localhost:~ at$ speedtest
Retrieving speedtest.net configuration...
Testing from Fastweb (xxx.xxx.xxx.xxx)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Fastweb SpA (Milan) [0.17 km]: 6.045 ms
Testing download speed................................................................................
Download: 111.09 Mbit/s
Testing upload speed................................................................................................
Upload: 135.79 Mbit/s

localhost:~ at$ traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 64 hops max, 52 byte packets
1 10.42.65.35 (10.42.65.35) 0.855 ms 0.415 ms 0.306 ms
2 10.42.65.163 (10.42.65.163) 1.361 ms 1.332 ms 0.945 ms
3 192.168.11.1 (192.168.11.1) 1.307 ms 1.431 ms 1.148 ms

I’m trying it out on 18.06 on develop branch. If anyone wants to install the profile check out the network-profile “openNET.io/Mi-R3G”.

This is how I’m cooking it as per the openNET.io-cooker script [which can also be found inside our net-profile]

./cooker --flavor=lime_default --remote \
--community=openNET.io/Mi-R3G -c ramips/mt7621 --profile=mir3g

I’ve tried disabling the 5GHz interface to see how it performs on 2.4 but even after reboot it doesn’t seem to be able to route to the other node. I’ll post back with more details over time if anyone’s interested.

Nz