Flashing Mercusys MR70X

I tried flashing my own OpenWrt build (picked https://github.com/openwrt/openwrt/pull/12104 and build against f30757b94e6f0b0a547b4932eb97e550f0bffe3d on master) on my MR70X earlier and it said firmware upgrade success after which the page pretty much reloaded instantly and nothing else really happened I tried restarting and resetting the router but it appears to only boot into the web recovery mode.

I tried the following things:

At this point I'm kinda out of idea's and options for as far as I can tell, someone recommended me to check the serial output but I don't have the required equipment nor the knowledge to do so and I also don't have a flasher so if anyone has any suggestions feel free to let me know :slight_smile:

note: I hope me making this thread is alright since my initial thread over at https://forum.openwrt.org/t/looking-for-a-cheap-openwrt-compatible-router-for-gaming-and-streaming-in-the-netherlands was most likely going to get moved to this section of the forum, I mainly made this forum post so myself and others can keep track of the things I've tried.

You're trying to get into the LuCI web UI - just making sure, did you enable LuCI in the build? Because by default, builds of master do not include LuCI.

1 Like

Yea I did and I made sure to actually include them instead of just as a module but for some reason I can't boot into anything but the web recovery know even when I flash stock firmware

In recovery mode GUI You can only flash openwrt-ramips-mt7621-mercusys_mr70x-squashfs-factory.bin . To check if file was delivered You might use ethernet status byte counts

Then after boot to OpenWrt ssh -l root should be possible.
If the openwrt-ramips-mt7621-mercusys_mr70x-squashfs-factory.bin was sent to recovery GUI correctly and nothing more happens than without serial console we can only guess.

Guide to use dir-853-r1 fw require serial console and flashing breed bootloader. Let's keep the PR#12104 way

I'll try looking at the network stats while flashing it and I'm aware i should flash the factory bin but then again regardless of when I flash stock or openwrt it won't boot into anything else but web recovery and it always skips to look like 40%

If You basically stuck in recovery GUI only way up is via serial console.

and it again says that the factory upgrade was successful before instantly reloading the web page.

also I currently don't have any equipment for serial access so are the any alternatives? the only way I could get serial access would be to go to college and kindly ask them if I can use their stuff.

You need USB - TTL converter with 3.3V level logic. It's IoT world so they can be obtain anywhere for cheap

alright I found one I can pick up in a couple hours. just wondering do i have to solder these or can I just connect the cables? I also have no idea how to open up the router I remove the two screws already.

update: got the router disassembled not sure if I placed the screws in the right place but yea:

no solder is needed if you can keep it connected for few minutes . J1 is serial 115.2k in 3.3V standard .Connect Pin 1.TX (pointed by small triangle) 2.RX 3.GND . Putty can be used to connect to serial console

I'm currently on my way to get the things i ordered, can you tell how to flash stock or openwrt using the serial console?

Did you try renaming the firmware file to a short name before using it. I personally had problem with the recovery UI upload not working on this model unless the file name was shorter than 8 characters. Ok, scratch that, I just noticed you mentioned it.

let's see boot log first and maybe log from GUI recovery while flashing factory.bin

Yea I tried to be as thorough as possible

How would I obtain these?

Hook up the serial.

I connected the uart adapter following nicefile's comment, installed the driver and setup putty but I'm not getting output as far as I can tell

You could try to swap the connections for TX and RX.
That would cause no damage at all.
In the best case you'll get some output, in the worst case nothing changes.

By the way: Switch the router on, after you made the connections. If you do it the other way round, you'll most likely see nothing.

Ayyy thanks bud

U-Boot 1.1.3 (Dec 21 2020 - 16:49:33)

Board: Ralink APSoC DRAM:  128 MB
relocate_code Pointer at: 87f58000

Config XHCI 40M PLL
flash manufacture id: ef, device id 40 18
find flash: W25Q128BV
*** Warning - bad CRC, using default environment

Ralink UBoot Version:
ASIC MT7621A DualCore (MAC to MT7530 Mode)
DRAM_CONF_FROM: Auto-Detection
DRAM bus: 16 bit
Xtal Mode=3 OCP Ratio=1/3
Flash component: SPI Flash
Date:Dec 21 2020  Time:16:49:33
THIS IS uboot
icache: sets:256, ways:4, linesz:32 ,total:32768
dcache: sets:256, ways:4, linesz:32 ,total:32768

 ##### The CPU freq = 880 MHZ ####
 estimate memory size =128 Mbytes

Press '4' or 't' to break the booting process

Press 'x' to enter recovery web server
[NM_Debug](nm_lib_readPtnTable) 00743: NM_PTN_TABLE_BASE = 0xfe0000
[NM_Debug](nm_lib_readPtnFromNvram) 00569: partition_used_len = 1054, requried len = 8192
[NM_Debug](nm_lib_readPtnTable) 00751: Reading Partition Table from NVRAM ... OK

[NM_Debug](nm_lib_readPtnTable) 00759: Parsing Partition Table ... OK

[NM_Debug](nm_lib_readPtnFromNvram) 00569: partition_used_len = 2, requried len = 2
[NM_Error](nm_api_checkInteger) 00331: factory boot check integer flag is not 1.


 NetTxPacket = 0x87FE7180

 KSEG1ADDR(NetTxPacket) = 0xA7FE7180
Trying Eth0 (10/100-M)

 Waitting for RX_DMA_BUSY status Start... done

HTTP server is starting at IP:
HTTP server is ready!

Well, this looks promising.