Xiaomi AX3600 INT firmware

They seem to have saved the expense for an onboard level shifter. TP-Link already did the same for the archer c2600 (ipq8064) in the past.

Well, that saved them couple of cents.
So my fake FT232RL worked fine on AX3600, FTDI datasheet claims 5V/3.3V/2.8V/1.8V

mine has only 3.3 and 5v jumper... does 3.3 work with 1.8?

Mine too, I always keep it at 3.3V, but it appears to work with 1.8V as well.
Its just a cheap generic chinese red clone.

There are basically two options:

Xiaomi ax3600 ssh guide - #24 by barnamacko appears to be a more robust approach than modifying each new firmware update.

The one sold on aliexpress is the chinese one or the international? From what i can see only the chinese version is unlockable and I can unlock the serial access

@slh what happen if I connect a 3.3 to a 1.8v ?

Mostly the chinese version, I think - the global version is still rather new and scarce, and usually the vendors are very vocal about it as a feature (which is correct for the ordinary enduser, as the chinese version only offers a chinese language webinterface).

Something between garbled output/ input (if you're very lucky, it just works) and magic smoke escaping.

(since i will buy it only to put openwrt it.. not a problem for me :D)

for that little voltage difference magic smoke :frowning: I don't want to buy another serial converter uff...

A level shifter seems to start around 2 EUR delivered, a 1.8V compliant FTDI FT232RL usb2serial adapter around 7 EUR. Very personally, for convenience reasons alone, I'd favour the later (actually I did already buy one for this reason, even though I have not clicked 'buy' on the ax3600, …yet).

i have an FTDI FT232RL but the selector is only 3.3v / 5v... in the site 1.8v is supported so ???? i'm confused

If You are planningg to spend $90 just spend $2 more, just to be sure, and LLC might come in handy in future

guys you must know if flash int firmware wifi strength signal will not decrease confirmed info from 4pda wifi signal strength is powered by software not hardware global vs chinese version

2 Likes

@Frifox That was expected since European legislation regulates the maximum of radiation outputted by the devices. The extra signal strength might me a reason to stick with the Chinese firmware, mainly for the 5Ghz. But when available and if it can be flashed by INT firmware each can perform an evaluation, for smaller houses might not be such a problem (and it’s healthier too).

@Ansuel: if you have FT232RL chip it's best to buy TXS0108E module 8 Channel bidirectional LLC converter (for about 1€) , then you can safely use your old hardware and have serial for 1.8V

Has anybody observed significant amount of retries while connected over 5G WiFi? I am wondering whether this is 'feature' of my device or something general.
Firmware 1.0.67
Tested with iperf3 between WiFi client and Ethernet client.
Same test Ethernet to Ethernet has 0 retries.
Verified with plain Xiaomi image with the following settings for 5G WiFi:

  • AX3600 in wired bridge mode
  • other radios disabled
  • pure WiFi 6 (no compatibility mode)
  • pure WPA3
  • channel auto
  • 160/80/40/20 MHz

Result:

wifi :: ~ » iperf3 -c copper
Connecting to host copper, port 5201
[  5] local 10.10.10.1 port 58718 connected to 10.10.10.10 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  65.5 MBytes   550 Mbits/sec    0   1.34 MBytes       
[  5]   1.00-2.00   sec  96.2 MBytes   807 Mbits/sec  245   1.53 MBytes       
[  5]   2.00-3.00   sec   108 MBytes   902 Mbits/sec    0   1.63 MBytes       
[  5]   3.00-4.00   sec   105 MBytes   881 Mbits/sec    0   1.71 MBytes       
[  5]   4.00-5.00   sec   105 MBytes   881 Mbits/sec   39   1.27 MBytes       
[  5]   5.00-6.00   sec   100 MBytes   839 Mbits/sec    0   1.34 MBytes       
[  5]   6.00-7.00   sec   101 MBytes   849 Mbits/sec    0   1.39 MBytes       
[  5]   7.00-8.00   sec   101 MBytes   849 Mbits/sec    0   1.43 MBytes       
[  5]   8.00-9.00   sec  93.8 MBytes   787 Mbits/sec    0   1.46 MBytes       
[  5]   9.00-10.00  sec   102 MBytes   860 Mbits/sec    0   1.51 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   978 MBytes   820 Mbits/sec  284             sender
[  5]   0.00-10.01  sec   977 MBytes   818 Mbits/sec                  receiver

iperf Done.

Edit: Looks like visible only with 160MHz bandwidth or high troughput (ax200 card). With other card connected with 80MHz there are below 20 retries per 5 GBytes of transferred data.

returning back to the beggining of the thread...
I tried to use this link in order to find the firmware from the CDN

the good news is I've managed to understand how to calculate the s= field and I get in return 200 (OK) responses for my requests.

the bad news is that even if I do this request to "previous" version (3.0.15 on earlier) it doesn't seem to return 3.0.16 firmware as an upgrade.

it is important to mention that I used the same technique from the chinese CDN and I managed to get 1.0.67 link, so it seems that the problem is that 3.0.16 doesn't exist at all in the CDN.

I am pasting the script here if someone wants to take a look. I hope that it'll work on the future when a new INT firmware will be released.

import requests
import datetime
import base64
import hashlib


DEFAULT_TOKEN = "8007236f-a2d6-4847-ac83-c49395ad6d65"
LINK = 'http://sg.api.miwifi.com/rs/grayupgrade'

def md5_base64(data):
	b64_data = base64.b64encode(data.encode())
	return hashlib.md5(b64_data).hexdigest()

def calculate_s(params_to_hash):
	params_sorted = {k: v for k, v in sorted(params_to_hash.items(), key=lambda item: item[0])} 

	params_str = ''
	for k, v in params_sorted.items():
		params_str += f'{k}={v}&'
	
	params_str += DEFAULT_TOKEN
	
	result = md5_base64(params_str)
	print(result)
	return result



def main():
	now = datetime.datetime.now()

	params_to_hash = {
		"countryCode": 'EU',
		"rom": '3.0.16',
		"serialNumber": 'my_serial_number',
		"rootfs": '0.0.1',
		"cfe": '1.0.2',
		"deviceID": 'my_device_id',
		"ispCode": '',
		"linux": '4.4.16',
		"sqafs": '0.0.1',
		"hardware": 'R3600',
		"locale": 'en_US',
		"ramfs": '0.0.1',
		"channel": 'release',
		'time': now.strftime('%Y-%m-%d---%H:%M:%S')
	}

	params_to_hash['s'] = calculate_s(params_to_hash)
	params_to_hash['token'] = DEFAULT_TOKEN	

	response = requests.get(LINK, params=params_to_hash)
	if response.ok:
		print(response.text)
	else:
		print("invalid token")


if __name__ == '__main__':
	main()

UPDATE:
it worked :slight_smile: as kokesan mentions the new INT link according to the API:

{"code":"0","data":{"needUpgrade":true,"size":31728232,"changelogUrl":"https://cdn.alsgp0.fds.api.mi-img.com/miwifi/4fa89995-0d6f-41c3-8aae-e0dc41280fe2.html","link":"http://cdn.alsgp0.fds.api.mi-img.com/xiaoqiang/rom/r3600/miwifi_r3600_all_6510e_3.0.22_INT.bin","description":"","weight":"1","upgradeId":"419","hash":"6fff38bccffd94866335c9ae30b6510e","toVersion":"3.0.22"}}

7 Likes

From Russian Telegram forum
http://cdn.awsde0-fusion.fds.api.mi-img.com/xiaoqiang/rom/r3600/miwifi_r3600_all_6510e_3.0.22_INT.bin

Thanks Ivan Kozub

6 Likes

:grinning: Many thanks for this great link...

Do you know anything about the compatibility of the international firmware on the chinese device?

The xqrepack script runs fine so far, I'm grepping throught the extracted rootfs for now...

Anyway I think that i will wait till 11/11 to check for discount... If someone wants to donate, I'm more than happy to accept that since i will use that money for the router 100%.

4 Likes