Xiaomi AX3600 INT firmware

50 dbm is A LOT O_O it's 100W.... impossible.... if it's real that chip would fry and also it would be very very problematic for our heath ahhaha


You can set the regulatory domain (802.11d) by adding "option country" to /etc/config/wireless.

Tested against Chinese firmware 1.0.67.

option country '840' #US
root@XiaoQiang:~# iwinfo wl1 txpowerlist
   0 dBm (   1 mW)
   6 dBm (   3 mW)
  10 dBm (  10 mW)
  14 dBm (  25 mW)
  18 dBm (  63 mW)
  22 dBm ( 158 mW)
  26 dBm ( 398 mW)
* 30 dBm (1000 mW)
root@XiaoQiang:~# iwinfo wl1 freqlist
* 2.412 GHz (Channel 1)
  2.417 GHz (Channel 2)
  2.422 GHz (Channel 3)
  2.427 GHz (Channel 4)
  2.432 GHz (Channel 5)
  2.437 GHz (Channel 6)
  2.442 GHz (Channel 7)
  2.447 GHz (Channel 8)
  2.452 GHz (Channel 9)
  2.457 GHz (Channel 10)
  2.462 GHz (Channel 11)
option country 'AU'

txpower is the same but channel 12 & 13 are available.

root@XiaoQiang:/etc/init.d# iwinfo wl1 txpowerlist
   0 dBm (   1 mW)
   6 dBm (   3 mW)
  10 dBm (  10 mW)
  14 dBm (  25 mW)
  18 dBm (  63 mW)
  22 dBm ( 158 mW)
  26 dBm ( 398 mW)
* 30 dBm (1000 mW)
root@XiaoQiang:/etc/init.d# iwinfo wl1 freqlist
* 2.412 GHz (Channel 1)
  2.417 GHz (Channel 2)
  2.422 GHz (Channel 3)
  2.427 GHz (Channel 4)
  2.432 GHz (Channel 5)
  2.437 GHz (Channel 6)
  2.442 GHz (Channel 7)
  2.447 GHz (Channel 8)
  2.452 GHz (Channel 9)
  2.457 GHz (Channel 10)
  2.462 GHz (Channel 11)
  2.467 GHz (Channel 12)
  2.472 GHz (Channel 13)

Does the global version come with native EU plug or is it the same plug as the Chinese version with the only difference being the global firmware?

I'm desperately looking for the 3.0.16 INT-firmware. Does your russian telegramm forum offer that too?

I upgraded my chinese device to INT 3.0.22 which worked fine, but the country-setting in /etc/config/wireless was ignored and not applied to "iw reg" properly.
Changing the country in nvram did not help.
That is why i performed a reset to factory default and now lost SSH access :frowning:

No, in the russian telegram forum there isn't the 3.0.16 version. Sorry


okay, so I downgraded to the chinese 1.0.17 again, reset to factory defaults, gained SSH-access again and upgraded to INT 3.0.22 using the xqrepack-method.
Then I changed:

Luci to appear in english:

uci set luci.main.lang='en'
uci commit

Fixes to keep SSH, enable bootwait and serial access:

nvram set CountryCode=DE
nvram set ssh_en=1
nvram set uart_en=1
nvram set boot_wait=on
nvram commit

I patched the file /etc/config/miwifi to replace all miwifi.com-hostnames by localhost:

# as a last-ditch effort, change the *.miwifi.com hostnames to localhost
sed -i 's@\w\+.miwifi.com@localhost@g' /etc/config/miwifi

Then I added the country-code to the /etc/config/wireless-file:

uci set wireless.wifi0.country='DE'
uci set wireless.wifi1.country='DE'
uci set wireless.wifi2.country='DE'
uci commit

Finnaly I created a script that manually adjusts the regulatory domain by issuing the command "iw reg set DE"
Create the file /etc/init.d/iw-reg-fix and insert this content:

#!/bin/sh /etc/rc.common
# Example script
# Copyright (C) 2007 OpenWrt.org


start() {
        echo start
        # commands to launch application
        iw reg set DE

stop() {
        echo stop
        # commands to kill application
        iw reg set DE

Then make it executable:

chmod +x /etc/init.d/iw-reg-fix

And enable it to be exectued on startup: /etc/init.d/iw-reg-fix enable

In the end, I have all the wireless-settings on what I need for operation in Germany (DE):

root@XiaoQiang:/etc/config# iw reg get
country DE: DFS-ETSI
        (2400 - 2483 @ 40), (N/A, 20), (N/A)
        (5150 - 5250 @ 80), (N/A, 20), (N/A), NO-OUTDOOR, AUTO-BW
        (5250 - 5350 @ 80), (N/A, 20), (0 ms), NO-OUTDOOR, DFS, AUTO-BW
        (5470 - 5725 @ 160), (N/A, 27), (0 ms), DFS
        (5725 - 5875 @ 80), (N/A, 14), (N/A)
        (57000 - 66000 @ 2160), (N/A, 40), (N/A)

The router switches the 5GHz-channel to 100 and 160 MHz :slight_smile:

The stock firmware even support some cool wireless features for better roaming:


I've upgraded my Chinese device from 1.0.67 to 3.0.22, too. Then downgraded again to 1.0.17, because my VLAN tagging configuration in /etc/config/network was gone and I had to reconfigure everything from scratch to be able to connect to the internet again.
And because I already had all the efforts, I've done the repackaging https://github.com/geekman/xqrepack to keep SSH open also.
Now I'm back on 3.0.22 INT and unfortunately I had to find out, that the VLAN settings get reverted after every reboot.
What I have tried as a workaround is to set the VLAN setting, then change something in the pppoe configuration and apply in order to reload the network settings including my VLAN. That works, but only until I reboot again. :frowning:
Any idea here?

So in conclusion, which is the best country to select when setting up the AX3600 with INT firmware?

The one matching your physical location, anything else is both illegal and messes up the clients you want to use (what does it help if your router can transmit with 1500 watts on channel -2, if your client won't see that channel and ends up with the intersection of its internal hardware regdom, its configured locale and the IEEE 802.11d regulatory hints pushed by your misconfigured AP).


how do you configure VLANs and don't you have issues with MTU size?

still regulatory domain compliance is dodgy:

country PL: DFS-ETSI
	(2402 - 2482 @ 40), (N/A, 20), (N/A)
	(5170 - 5250 @ 80), (N/A, 20), (N/A), AUTO-BW
	(5250 - 5330 @ 80), (N/A, 20), (0 ms), DFS, AUTO-BW
	(5490 - 5710 @ 160), (N/A, 27), (0 ms), DFS
	(57000 - 66000 @ 2160), (N/A, 40), (N/A)

and on 1.0.67:

wl1       ESSID: "bmg2"
          Access Point: 88:C3:97:C7:C0:47
          Mode: Master  Channel: 1 (2.412 GHz)
          Tx-Power: 30 dBm  Link Quality: 100/94
          Signal: -96 dBm  Noise: -96 dBm
          Bit Rate: 573.5 MBit/s
          Encryption: WPA2 PSK (CCMP)
          Type: qcawifi  HW Mode(s): 802.11abgn
          Hardware: unknown [Generic Atheros]
          TX power offset: unknown
          Frequency offset: unknown
          Supports VAPs: yes  PHY name: wl1

however immediately after switching to INT:

root@ax3600:~# iwinfo wifi1 txpowerlist
  0 dBm (   1 mW)
  2 dBm (   1 mW)
  4 dBm (   2 mW)
  6 dBm (   3 mW)
  8 dBm (   6 mW)
 10 dBm (  10 mW)
 12 dBm (  15 mW)
 14 dBm (  25 mW)

At least list of available channels seems to be ok.
For the iw reg set - why bother while it can be put in /etc/rc.local?

1 Like

I used the manual from Darren's Techtalk and changed /etc/config/network, so eth1 is eth1.7 in iconfige interface "ethq" and in config interface "wan" section.
.7 is the naming of the VLAN formmy case (ISP Deutsche Telekom).
I didn't and don't have issues with the MTU size, but keep it on standard 1500 bytes or (hopefully) automatically handled out.
And at every reboot the last line in config interface 'wan' is being changed back to

option ifname 'eth1'

Here's my configuration, maybe it helps:

config interface 'loopback'
	option ifname 'lo'
	option proto 'static'
	option ipaddr ''
	option netmask ''

config switch
	option name 'switch0'

config interface 'eth1'
	option ifname 'eth1.7'
	option keepup '1'

config interface 'ifb'
	option ifname 'ifb0'

config interface 'lan'
	option igmp_snooping '0'
	option proto 'static'
	option ipaddr 'xxx.yyy.xxx.yyy'
	option ieee1905managed '1'
	option netmask ''
	option ifname 'eth2 eth3 eth4'
	option multicast_querier '0'
	option type 'bridge'
	option macaddr '8c:53:c3:yy:xx:zz'
	option force_link '1.7'
	option ipv6 '0'

config interface 'wan'
	option proto 'pppoe'
	list dns ''
	list dns ''
	option mtu '1500'
	option peerdns '0'
	option username 'xxxxx@t-online.de'
	option special '1'
	option mru '1480'
	option password 'xxxxxxx'
	option ifname 'eth1.7'

Finally I made it and WAN is using eth1.7.
Thanks to @perceival and his hint to use rc.local, where I added the following for my use case.

uci set network.wan.ifname='eth1.7'
uci commit
/etc/init.d/network reload
exit 0

works fine and reloads the configuration again after uci commit.

1 Like

Does anybody know what is the dependency between iw reg set and in /etc/config/wireless:

  • country
  • region
  • aregion?

Many thanks, I've implemented it directly. :slight_smile:
Your edited comment regarding bss coloring etc. at the end is a bit confusing for me: Where did you set these settings? I cannot find them in /etc/config/wireless or anyhwere else so far.
How did you exactly use these three lines? They aren't comments neither, but maybe I'm too nooby for that. :slight_smile:

uci set wireless.@wifi-iface[0].bss_transition='1'
uci set wireless.@wifi-iface[0].ieee80211k='1'
uci set wireless.@wifi-iface[0].ieee80211v='1'
uci set wireless.@wifi-iface[1].bss_transition='1'
uci set wireless.@wifi-iface[1].ieee80211k='1'
uci set wireless.@wifi-iface[1].ieee80211v='1'
uci commit

but those make sense only if you have more than one access point

Ah, again uci, thanks.
Well, I have another Netgear Router, but it is only an AC device (R7000 Nighthawk) and I think, there will never be an option for Meshing (I imply that these options are only useful when you use Meshing, right?).

BTW: Is there an option, if someone is able to write a real OpenWRT firmware for the R3600, that OpenMesh can be used in order to be able to use also other OEMs with OpenMesh in theory?

True, of course I have more than one Accesspoint in my network and I need a fast and smooth roaming-experience between them. Hopefully when there is real OpenWRT-support, Dawn and luci-app-dawn will be available.

I believe if you have Chinese version of hardware you'll have top 30 dBm on any version of firmware and region.

On mine ax3600 (plain Chinese version) 30 dBm disappears as soon as I flash INT firmware.

how to set this 50 dBm ?