Adding support for Mercusys MR90X

Looks like four real cores:

root@mr90x:~# lscpu
Architecture:            aarch64
  CPU op-mode(s):        32-bit, 64-bit
  Byte Order:            Little Endian
CPU(s):                  4
  On-line CPU(s) list:   0-3
Vendor ID:               ARM
  Model name:            Cortex-A53
    Model:               4
    Thread(s) per core:  1
    Core(s) per cluster: 4
    Socket(s):           -
    Cluster(s):          1
    Stepping:            r0p4
    BogoMIPS:            26.00
1 Like

May I ask, how stable is it?

Did anyone try to EU firmware and flash the router using recovery mode?

I have installed 23.05rc3 a few hours ago on my EU/German MR90X.
I do know my way around OpenWRT, but having it on this device is new for me. So I cannot contribute reasonable experience yet.

Here is what I have seen so far:

  • MR90X emergency recovery works (I did not purposely break the OpenWRT installation instructions, so I cannot tell, if recovery would be able to repair any wild damage caused by improper usage. I just ran recovery once on the (non-bricked) stock firmware before I started to install OpenWRT, to have recovery process experienced at least once):
    1. remove power cable
    2. keep the combined reset/WPS button pressed + plug in power to the MR90X
    3. keep the button pressed for some more seconds (~10sec or so)
    4. then connect with browser to, uploading the vendor firmware (V1_1.1.0 Build 20220916) worked just fine for recovery.
  • (as long as stock firmware is still on it): resetting the stock firmware config settings works by having the MR90X fully booted, then pressing and holding the combined WPS/reset button for quite some time (you will notice when you have kept it pressed enough, once the LEDs start flashing, WPS was activated, keeping it pressed even longer, it suddenly flashes different and that means reset has been triggered).
  • One minor thing to pay attention, when following the OpenWRT install instructions: to keep the personal blood pressure down (the OpenWRT instructions are correct and don't break anything, but may give you some sweaty hands, if you have not handled the MR90X before and do not pay attention to what the stock firmware config shows: In step 5 of the OpenWRT installation instructions, you are supposed to enable IPTV in the vendor firmware. If you seem to loose LAN connection to the MR90X after this step, then simply replug the LAN cable into one of the 2 most right yellow ports (the most left yellow port becomes disabled for stock firmware admin access, once IPTV service is enabled with default stock firmware settings)

A quick Wifi end-2-end speed test looks very ok to me:
Using a iPad Pro 2021 right next to the MR90X + via Wifi via 1GBit cable Internet (Wifi AX, 5 GHz, 80Mhz, channel 44, WPA3):

  • Stock Firmware in stock routing mode (connected to my x86 router, so effectively a double NAT situation): 884MBit/sec download, 92ms Ping
  • OpenWRT 23.05RC3, no firewall, Routing off, DHCP off ( basically Switch + Access Point Mode), connected to my x86 Router: 960MBit/sec download :exploding_head:, 72ms Ping
    (so not a comparison with the same settings, since I did not put the stock firmware in AP mode, but you still get the impressive point of the result)

The stock firmware had quite an impressive long distance throughput compared to my older MT7621 APs. But I have not yet had more time to test anything else with OpenWRT on the MR90X.


Build info:
O2 as default optimization and performance options enabled for OpenSSL (wpad-openssl)

2.4GHz in 11n mode (20Mhz), 5Ghz in 11ac (80Mhz) - (OpenSSL WPA3)
Performs pretty much the same as my Totolink A8000RU so very well overall, no issues that I've noticed so far. 5GHz gives you about 60Mbyte/s transfer speed using SMB which is good given the linkspeed (866Mbit).

1 Like

I did some more Wifi end to end throughput tests via All Wifi tests used the parameters:

  • 80MHz channel width
  • channel 40 or 44
  • non-congested air
  • non congested cable Internet.
  • max transmit power, DE country.
  • All devices were 2x2, so effectively resulting in either a 880 Mbit/sec AC or a 1200 MBit/sec AX WiFi connection)
  • the Mercusys with stock firmware test was in router mode
  • all OpenWRT Wifi tests were in access point only mode (NAT off, routing off), sorry for the slightly unfair comparison, but I forgot th put the stock firmware in AP mode

I have compared it with my D-Link dir-1960 (which is Mediatek MT7621AT/MT7615N based).

test of device and router in same room, 1 meter distance to AP:

ipad air 2017/Wifi AC/Mercusys/23.05rc3            580 MBit/s
ipad air 2017/Wifi AC/Mercusys/stock               570 MBit/s
ipad air 2017/Wifi AC/DLink Dir 1960(mt7621)/23rc2 390 MBit/s
ipad pro 2021/Wifi AX/Mercusys/23rc3               960 MBit/s
ipad pro 2021/Wifi AX/Mercusys/stock               880 MBit/s
ipad pro 2021/Wifi AC/DLink Dir 1960(mt7621)/23rc2 569 MBit/s
ipad pro 2021/Wifi AC/Mercusys/23rc3               650 MBit/s

test of device and router separated to different floors + 1 concrete wall inbetween:

ipad air 2017/Wifi AC/Mercusys/23.05rc3            363 MBit/s
ipad air 2017/Wifi AC/Mercusys/stock               180 MBit/s (I guess this might have gone higher, if I would have tried some more, but I missed to make some more tests and no longer have stock firmware on it)
ipad air 2017/Wifi AC/DLink Dir 1960(mt7621)/23rc2  72 MBit/s
ipad pro 2021/Wifi AX/Mercusys/23rc3               653 MBit/s
ipad pro 2021/Wifi AX/Mercusys/stock               581 MBit/s
ipad pro 2021/Wifi AC/DLink Dir 1960(mt7621)/23rc2 217 MBit/s
ipad pro 2021/Wifi AC/Mercusys/23rc3               511 MBit/s

Please note, those are only really simple and quick amateur tests, but some things are quite noteworthy:

  • remember that I had routing and NAT on in the Mercusys stock firmware, while on OpenWRT, I had NAT and routing off. I guess that is likely most of the difference, though theoretically there is plenty of CPU power on filogic to make this not matter. But for me it looks like throughput both on stock and OpenWRT seems equally good to the proprietary stock drivers, also on futher distance, so OpenWRT is neither a bottleneck, but also is also not a magic bullet add on.
  • note how much better the Mercusys(with Filogic) WiFi performs compared to mt7621 on WiFi AC when used by the same client device. Same distance, same client, noticably higher throughput!
  • and note especially how hugely better the Mercusys(with Filogic) performs on the other floor through the concrete wall compared to mt7621 on WiFi AC to the „old“ 2017 ipad.
  • and note how much better Mercusys with AX performs on the other floor through the concrete wall compared to mt7621 on WiFi AC. The % loss on distance is far less than compared to the MT7621 platform. I was always told that AX is a lot worse than AC on distance, but obviously that claim is not true on my tested distance.
  • note also, how much higher the throughput is on the Mercusys/Filogic when the ipad 2021 is on the other floor (compared to the MT7621), even if the ipad 2021 and the Mercusys get forced to use an AC Wifi connection (both are AX capable)

I guess those number might basically apply to all Filogic-based devices. i dont think there is any reasonable Mercusys HW magic envolved. I personally have picked the Mercusys, because so far it was the only Filogic 830 device both available for me and installable without a serial cable and is fanless (but has no USB and no wall-mounting holes).

even if you do not have broadband Internet, keep a note of the much higher AC throughput compared to the older MT7621 WiFi router. In the end, this may be why you still might want to consider replacing an older AC device.

Your milage may vary though: my area is not much WiFi-congested. My results particularly do not reflect a crowded WiFi neighbourhood. The numbers will for sure be lower in congested areas, but my strong guess is the throughput relation of the outcome will be similar and the Filogic still excelling a lot.


ehm :grimacing:, maybe the most dumbest question of todays evening: is that some laminated packaging foil on the 8 antennas? Am I supposted to peel that off?


Has anyone got the second revision of this router? Are there any major differences? Would it be possible to flash openwrt on it?

I'm always gettting stuck here. I've uploaded the file to /tmp/ and is named as sysupgrade.bin

I don't know what i'm doing wrong.

root@OpenWrt:~# sysupgrade -n /tmp/sysupgrade.bin
verifying sysupgrade tar file integrity
Sat Aug 19 14:03:18 UTC 2023 upgrade: Commencing upgrade. Closing all shell sessions.
Command failed: Connection failed

Also where is u-boot-env - I created the file inside the tmp folder and copied and pasted the necessary values, and when I rebooted it, it SSH's into port 22 with the following error above

I have the MR90X and it installed and ran flawlessly with 23.05rc3 so far (And I like it a lot).

My guess is, the following part went wrong in your case:

Probably the following documentation part is a bit missleading:

  1. u-boot-env can be empty so lets create it (or overwrite it if it already exists) with the necessary values:

probably this should better say:

  1. execute all of the following fw_setenv commands on the telnet prompt. These will create/update the u-boot-env file, to properly boot into OpenWRT in the next steps.

I did opkg update, and installed luci and luci-ssl, and flashed the snapshot in luci since sysupgrade.bin didn’t work for me.

I haven’t ran any of those telnet prompts, but just created a new file called u-boot-nav and copy pasted all the values into the file, and rebooted.

You think I should reinstall from the top since I didn’t execute the commands?
I have everything setup, including mesh, and it’s working almost flawlessly (haven’t gotten any hiccup, yet, touchwood!)

Strange. I dont know, why snapshot would be flashable, while rc3 would not. Was it for sure the correct file for MR90X?

I frankly do not know. Mine never was in that situation.

opkg install uboot-envtools should give you access to a compatible ‚fw_setenv‘ command, to work in OpenWRT SSH prompts.

But maybe first make a structured note and plan for yourself, of what has happened so far, if maybe something else was missed and what you still want to do. If from now on some more sh… hits the fan, you might need to explain a few things here, before people here will be effectively able to help.

Using the latest snapshot or 23.05rc3 snapshot for MR90x results in me having non-working WIFI. Get "Device unavailable" status on the radio. Only r23705-847984c773 snapshot works. Do I need to do something to ensure that I have working wifi with rc3 or the latest snapshot?

23.05? Are you sure?

For snapshot you can try this command and then reboot:
ln -sf /tmp/tp_data/MT7986_EEPROM.bin /lib/firmware/mediatek/mt7986_eeprom_mt7975_dual.bin

We need somebody who merges the fix.

The latest snapshot seems to have fixed this issue.

hi everybody i receive my mr90x i will try to flash to openwrt, is possible to brick easy ? thanks

A BIG BIG thanks to developper for this device, i'm very happy today to flash my new favorite router

test with SQM ENABLED

test not sqm enabled

sqm disable

hi pico can you share your cat /etc/config/wireless

the mine is poor for the moment in wifi

but wired is good thanks

i has this message too

Running:   23.05.0-rc4 r23482-7fe85ce1f2 on mediatek/filogic (mercusys,mr90x-v1)
Available: 23.05.0-rc4 r23482-7fe85ce1f2
Requesting package lists...
installed package libncurses cannot be found in remote list!
Are you sure you want to continue the upgrade process? [N/y]

Side note: I am running the MR90X as access point (no firewall, no NAT, no routing). Though the Filogic 830 CPU should have sufficient power to handle that as well, for older devices this is performance relevant for Wifi throughput.

My Wifi config is most basic, no tuning at all. You need modern AX clients with at least 2x2 antennas and low Wifi activity of neighbours for high throughput.

config wifi-device 'radio1'
	option channel '44'
	option band '5g'
	option htmode 'HE80'
	option country 'DE'
	option cell_density '0'

config wifi-iface 'default_radio1'
	option wpa_disable_eapol_key_retries '1'

V23rc still seems to have occasional issues with custom built image. I am not an expert here and I was not following the issues so far in detail: I just noted that there seem some other package issues in other threads as well. I don't know, how many of those are related, but so far this does not seem a MR90X-specific issue. My guess is, resolving this is maybe an overall relevant main blocker for the regular first release of V23.

1 Like

yes like suggere patrakov in other post i should be test with channel 100 in france FR


I'm having difficulty with a new MR90x. I went through the intallation instructions, appearing to work quite fine until step 15. Following a reboot, the device seems to be booting into the u-boot recovery option, providing web access to upload firmware only. Attempting to upload the OEM bin firmware file reports to be successful, but then I'm straight back to the same recovery stage after a powercycle.

So now I'm trying to recover the device without having to solder in the serial connectors.

Judging by how quick the upload part of the recovery firmware upload goes (about 5 seconds), could it be the OEM firmware is not being uploaded correctly? Is there anything else I can try to recover the device?

Edit: Never mind. I ended up going the serial port route (and boy is it touch to open). Somehow one partition got corrupted, throwing many ubi read errors (error -74). The other partition is fine, and I've been able to install via serial onto that. I'll try fixing the other partition later.

1 Like