First installation on TP-Link Archer MR600(EU) V2 with Arduino as USB to Serial TTL converter

Hello all

I need help installing OpenWrt 25.12.2 (or any) on TP-Link Archer MR600(EU) V2 with factory image for new installation

I am not able to start the boot procedure, maybe because I am using Arduino UNO as USB to Serial TTL connection?

What I have done (well):

  1. serial connection between laptop - arduino - router (I see terminal logs and can send commands)
  2. setup TFTP server on my laptop, with tcpdump -i any port 69 -vvv I can see client requests
  3. setup laptop wired lan as 192.168.0.66

What I am not sure I do well (can anyone check?):

  1. boot the router without pressing any WiFi reset or Enable/Disable button
  2. connect laptop and router on LAN port n. 2 (not the LAN/WAN)

Following GitHub conversation here I power up the router but I don't know how to

interrupt the boot procedure when prompted

If I type tpl nothing happens, then boots the kernel and of course I can login with admin / 1234 but then tftpboot or bootm are not there

Below a copy of the messages I receive from serial console via Arduino.

Thanks for your help :slight_smile:

U-Boot 1.1.3 (Jul 16 2024 - 16:26:52)


Board: Ralink APSoC DRAM:  128 MB

relocate_code Pointer at: 87fa0000


Config XHCI 40M PLL 

flash manufacture id: 1c, device id 70 18

find flash: EN25QH128A

*** Warning - bad CRC, using default environment


============================================ 

Ralink UBoot Version: 5.0.0.0

-------------------------------------------- 

ASIC MT7621A DualCore (MAC to MT7530 Mode)

DRAM_CONF_FROM: Auto-Detection 

DRAM_TYPE: DDR3 

DRAM bus: 16 bit

Xtal Mode=3 OCP Ratio=1/3

Flash component: SPI Flash

Date:Jul 16 2024  Time:16:26:52

============================================ 

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

#Reset_MT7530

set LAN/WAN WLLLL

 0 


disable Switch Phy

   

3: System Boot system code via Flash.

## Booting image at bc020200 ...

   Image Name:   Linux Kernel Image

   Image Type:   MIPS Linux Kernel Image (lzma compressed)

   Data Size:    1950050 Bytes =  1.9 MB

   Load Address: 81001000

   Entry Point:  813d3b10

   Verifying Checksum ... OK

   Uncompressing Kernel Image ... OK

No initrd

## Transferring control to Linux (at address 813d3b10) ...

## Giving linux memsize in MB, 128


Starting kernel ...



LINUX started...

 THIS IS ASIC

SDK 5.0.S.0
[    0.000000] Linux version 3.10.14 (tp-link@Sg-sohoidev) (gcc version 4.6.3 (Buildroot 2012.11.1) ) #1 SMP Tue Jul 16 16:30:29 CST 2024
[    0.000000] 
[    0.000000]  The CPU feqenuce set to 880 MHz
[    0.000000] GCMP present
[    0.000000] CPU0 revision is: 0001992f (MIPS 1004Kc)
[    0.000000] Software DMA cache coherency
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 08000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x00000000-0x00ffffff]
[    0.000000]   Normal   [mem 0x01000000-0x07ffffff]
[    0.000000] Movable zone start for each node
:

EDIT: initially posted wrong MR600.

tpl seems to be the correct approach - https://git.openwrt.org/openwrt/openwrt/commit/?id=78110c3b5fce119d13cd45dadd33ca396c8ce197.

I understand that I have to send the tpl command but I do it but nothing happens

the tpl command is sent (hitting enter) from Arduino serial monitor, but I don't see anything in the output that gives me the confirmation that command is received

so my question is: at which moment in time I have to send the tpl command?

I am sure commands are sent because, after the kernel boot, I see the admin prompt, I send admin and 1234, then I can use bash for ls command and even reboot now the system

Try switching to a terminal app that supports mapping custom strings to function keys.
Assign tpl or perhaps tpl^M to a function key like F2. Then just keep the key pressed during the boot.

@AndrewZ you are the best!
I understand now that to successfully enter U-Boot mode with Arduino Serial Monitor
I have to select No line ending in the drop down box for sending commands.
Then select Newline to send terminal commands as usual.


Thanks to your suggestion, installing minicom is a better solution, offering total control on terminal commands and configuration, once setting up the port and just typing t (without even hitting enter key) I entered in U-Boot mode

from now I can see tftboot and bootm mentioned in the linked guide and free my device :smile:

Thanks for your help and patience with a noob :nerd_face: