TP-Link RE220 V3 hardware support

Can TP-Link RE220 V3 be supported?

I tried to upload the RE220 V2 factory firmware file and it did not work.
See pic, says hardware version is V3tp-link-re220-v3

Seems the internal pictures are here

looks like it is MT7628

Just taken delivery of one of these myself hoping to put OpenWrt onto it but mine's a V3 too. Hey ho. I can still use it with the TP-Link firmware but I'd have preferred a proper router OS. :wink:

I can see what might be a QSPI flash on those pictures but no DDR. Wonder if it's the K with internal 8MB?

Suppose I could dismantle it to see if I can get to a serial console. Finding the time ...

Is there still no support for RE220 V3. Maybe a modified image of v2 would work with v3?

See also TP-Link RE220 V1

I did connect to serial on V1 and was able to run initramfs from re220-v2. It mostly worked.

In referenced post, I looked at the differences for the re220-v2 and various re200 models. Didn't see much different. I'm just not sure how to take the next step.

Question for devs: Is the .id value in the defined solely in OpenWRT code or does it have to match some existing value from the hardware?

For the serial connection, the holes are there. The case is glued shut. Only way I found was to cut it with roto tool cutoff wheel.

Here are some pics:


RE220-v3-serial On V3 the holes are a little farther away from the power end.

1 Like

Could you modify an image to make it work on v3? Im willing to take the risk of brick so im available :smiley:

I'm planning to get back to this RE220 stuff (v1 and v3) in the coming days. Don't think I have the knowledge/experience to get across the finish line. Any guidance from grand-masters would be helpful.

1 Like

RE220 v3 is a no go for OpenWRT.

Looks like tp-link downgraded the hardware for RE220 v3.
I connected serial uart.
Facing front of device, serial connector is on the right.
You want to use the top 3 pins which are Tx(white) Rx(green) and GND(black). The fourth is Vcc, leave it disconnected. Com settings are 8N1 at 115200 with flow control off.

U-Boot shows 16MB RAM and 'flash -layout' command shows 4MB flash. These specs don't meet the minimum requirements. Note that V1 is 64MB RAM and 8MB Flash.

Also, 5GHz chip may be newer based on these messages:
[mt7628k]SCANNING, pAd->hw_cfg.bbp_bw = 1
[mt7613b]SYNC - sync_fsm_scan_req_action:[1107] LAST_CH: 0, BAND: 0

Some interesting command output

U-Boot 1.1.3 (Aug 21 2020 - 11:04:07)

Board: Ralink APSoC DRAM:  16 MB

# flash -layout

Version: 2.0
Name: FlashIo
Total Size(K): 4096
Erase Sector Size(K): 4
Block Num: 6.
Flash Layout:
|------------------------| 0x00000000(0K)
|                        |
|                        |
|BOOTIMG(52K)            |
|                        |
|                        |
|------------------------| 0x0000d000(52K)
|                        |
|                        |
|FIRMWARE(4020K)         |
|                        |
|                        |
|------------------------| 0x003fa000(4072K)
|CONFIG(8K)              |
|------------------------| 0x003fc000(4080K)
|EXPLOG(8K)              |
|------------------------| 0x003fe000(4088K)
|PROFILE(4K)             |
|------------------------| 0x003ff000(4092K)
|RADIO(4K)               |
|------------------------| 0x00400000(4096K)

# port -show

Moduler name: Port Manage 1.0
Runtime Status: Working
Show all open port values:
22         TCP   LOCAL
67         UDP   LOCAL
80         TCP   LOCAL
1017       UDP   LOCAL
1060       UDP   LOCAL
5000       UDP   LOCAL
5001       UDP   LOCAL
20002      UDP   LOCAL
20002      TCP   LOCAL
20004      UDP   LOCAL
23180      UDP   LOCAL

The boot log (truncated)

U-Boot 1.1.3 (Aug 21 2020 - 11:04:07)

Board: Ralink APSoC DRAM:  16 MB
relocate_code Pointer at: 80fc4000
Sfta stYy st cured
                     jՅ▒Օ▒▒:▒,"▒)Wk)J▒7 1
aniJuI▒▒▒▒▒K▒▒ ▒▒▒ plS▒▒)▒▒▒ oolo
**Wni▒▒#▒CC,usn dYV▒E ▒▒e▒ɹ▒▒)
RSE M728▒e!▒▒:h, ▒▒▒:3 tol55&R▒▒X,▒▒'▒▒▒:6,▒▒▒:p ies:2 ta32R
▒$'b▒▒sytm▒▒ ▒ ▒͕ ▒▒▒hezɥ▒ r rscl %ostp uo ▒Ѵ'R
              SI5va FP
 : od ot L+▒ ▒▒)▒▒▒wrt ▒ PT.R  3 oo yem▒ ▒▒ ▒▒ dat)I                                                                                                                                  0 A▒-▒▒͕)R                 2▒▒ W+PAR
#oins ▒+▒atb000. ▒▒.
                            [p_w+▒ ▒▒͕▒:&S ▒▒▒5
apswlApT▒Vkѕ)▒▒) ddwn ▒▒▒*kѕ)5
[K▒▒ݱ▒▒▒▒▒.Wt3&Sbݱ▒▒▒▒▒.▒%▒Vk▒5              ▒w ▒▒ 4

                                                 Ah▒}݅▒▒I▒▒▒:▒j] _wanplst%▒▒▒.W5
                                                                               [ap_wapeg&k▒▒31]ad la

ALN_P▒▒▒Qꢢ▒▒▒j▒ j                                                                                   ▒ 4
        ▒       j! ***
arP%T ȝ▒▒▒ ▒▒▒▒5
  d▒▒▒j        AH%-

******%▒RRjQ7c▒▒CI C o *%▒RR*IIRj
ni_t28p d˕▒Ch5▒▒▒ͽ=b"▒▒=2-ꫂj
▒!5%▒ Y080VDO"▒▒43is'twrpr
PI- et ɥ*V"▒▒             ▒▒+
c                    %%▒T▒5▒▒}▒▒▒%I▒**%▒RRRRRRRRRR*▒IIIR*%IRHHIIIIIR▒%%IIIIIIIIR*EIIR*  ▒▒ͅ▒▒ɑ**%▒RR*IIIIIIIIR*IR▒%%%%%*
PCH"!▒7òV▒=04 i.▒t▒▒▒▒ɽ▒▒.4
5Q ▒▒▒npmldeWkdo▒
cn us꫊b"▒▒˫▒2▒9▒=j
bL▒V▒0ot▒▒▒ O▒29=j
s[K]i▒▒▒  20&▒▒jre▒-en =20&2▒▒5rs[]>sar= j
                                          AHm2F-*▒ Oj
▒▒▒Ue▒х▒ OjH▒m]-en 0                                 e3]i▒▒▒=0
usx1▒*▒ ▒▒▒E x
rs]st''▒j2▒5▒▒]-sat O▒j
rNͳ+S-▒▒▒▒ t]>d O▒j
r▒▒U]▒▒* Oj
           enersGoI+,WHPhe1Mufa nuV▒▒-▒▒J▒ 1,deWkid▒j
I ys(!+▒!4                                           [FAH W%▒˝▒'▒-ecgizdhi )    ▒▒▒▒udaebo▒▒▒!▒HH▒▒▒ex sN▒▒▒▒
          Beor xt ̮(k▒+▒▒!4
ot NU:▒▒
Attaching interface lo0... done

 Waitting for RX_DMA_BUSY status Start... done

 ==> mtk_netpool_init
Init netpool for mtk network now
mtk_netpool_init(): malloc for clConfig[0] with size(4748832)!
<== mtk_netpool_init

Tx_Ring addr: 0xa0a198e0!!!

Rx_Ring addr: 0xa0a18c20!!!

Adding 15211 symbols for standalone.
port 4 link down
port 3 link down
port 2 link down
port 1 link down
port 0 link down
minifs.fileIndex initialized
minifs.ballIndex initialized
reading file /conf/modelDesc.bin from minifs
modelDesc len is 0x420c, descLen 0x420c, fileLen 0x21e69
reading file /conf/defConf.bin from minifs
calcTotalSize 0x1df860
loadMcbDescFile():Total mem size=1964128, addr=0x80805ce0.
loadAppDesc():load app<main>.
loadAppDesc():load app<debug>.
loadAppDesc():load app<advanced>.
loadAppDesc():load app<systool>.
loadAppDesc():load app<wlan>.
reading file /conf/buildTime from minifs
ctrlAppReset():App main reset.
ctrlAppReset():App advanced reset.
Reset Timezone to US
ctrlAppReset():App systool reset.
ctrlAppReset():App wlan reset.
user cfg mem 0xffffffff
loadUserConfig():Read config file from flash error.
initCurrentMode: currentMode = 3

                            Software Platform for PNE2.2
              Copyright(C) 2001-2011 by TP-LINK TECHNOLOGIES CO., LTD.
ctrlAppInit():App main init.
                      Creation date: Jun  8 2021, 09:21:53
ctrlAppInit():App advanced init.
# TimeZone=GMT+-8
Setting TimeZone to: TIMEZONE=GMT-8::480:000000:000000
reading file /conf/buildTime from minifs
setting System Time
[sntp] Current DST Start From 2106-03-06 00:00.00
[sntp] Current DST End By 2106-10-02 00:00.00
[sntp] Current DST Start From 2021-03-07 00:00.00
[sntp] Current DST End By 2021-10-03 00:00.00
ctrlAppInit():App systool init.
ctrlAppInit():App wlan init.
--------------------------------->response 00000000
[cloud]183|-2139128016|0|cloud.c:111:cloud_brd_run| - [LAN] set lan: ifconfig mirror0 inet netmask
[cloud]cloud-sdk version: 1.3.9-rc03, build_time:20190322_112545
[DHCPS](dhcpsStart, 1827)Dhcps start
[SMARTIP](smartipDisconnectClient, 90)disconnect clients
********************config dump*******************
dev: <rai> does not exists!
Interface doesn't accept private ioctl...
sef domain     set (8BEB): errno = 0x13
[SMARTIP](smartipNotify, 706)get notify: SMARTIP_EVENT_DHCPC
sef port                        : 443
tdp mesh loop start
[SMARTIP](smartipHandleDhcpc, 379)dhcpc data changed, detect_res 0 -> 0
cloud svr default port          : 443
[tdpmesh]role = slave
default svr                     :
[TDPMESH-ERR]tdpdOneMeshLoop() 4247 ============================>>>start as slave
default port                    : 443
[mt7613b]get end "rai0" failed!
default valid time              : 172800
ctrlAppStart():App main start work.
generate DSA ...
heartbeat interval              : 235000
Power Control Mask[Sun-00000000]
[mt7613b]generate DSA success
Power Control Mask[Mon-00000000]
get end "rai0" failed!
request timeout                 : 5000
Power Control Mask[Tue-00000000]
Power Control Mask[Wed-00000000]
Power Control Mask[Thu-00000000]
Power Control Mask[Fri-00000000]
Power Control Mask[Sat-00000000]
ctrlAppStart():App advanced start work.
Setting TimeZone to: TIMEZONE=GMT-8::480:000000:000000
setting System Time
[sntp] Current DST Start From 2021-03-07 00:00.00
reconnect timewait max          : 1024000
taskMonitor():Task[tRootTask] is too much, 45584 bytes left.
[sntp] Current DST End By 2021-10-03 00:00.00
reconnect cachedsvr max times   : 5
taskMonitor():Task[tExcTask] is too much, 7584 bytes left.
[sntp] Current DST Start From 2021-03-07 00:00.00
reconnect defaultsvr max times  : 5
taskMonitor():Task[tNetTask] is too much, 19760 bytes left.
[sntp] Current DST End By 2021-10-03 00:00.00
reconnect random time min       : 2000
taskMonitor():Task[tCmdTask] is too much, 8920 bytes left.
ctrlAppStart():App systool start work.
reconnect random time max       : 256000
taskMonitor():Task[monitor] is too much, 13224 bytes left.
[mt7613b]short connect interval          : 259200000
taskMonitor():Task[timerMgt] is too much, 9904 bytes left.
First phase! the return iniString=rai!
max message number              : 1000
taskMonitor():Task[inetd] is too much, 50128 bytes left.
[mt7613b]max client number               : 20
input 0:1:5:0:256:16:0:rai
taskMonitor():Task[cloudBrd] is too much, 23184 bytes left.
cer file                        : /conf/2048_newroot.cer
[mt7613b]taskMonitor():Task[tCloudTaskletTask] is too much, 24288 bytes left.
ssl verify CN                   :
The initString info:
taskMonitor():Task[DownloadTask] is too much, 24296 bytes left.
ssl verify time                 : 0
[mt7613b]taskMonitor():Task[PFCacheTask] is too much, 13512 bytes left.
taskMonitor():Task[tmpd] is too much, 20664 bytes left.
[mt7613b]       devNum=0!
taskMonitor():Task[ipsshd] is too much, 13672 bytes left.
[mt7613b]       infType=5!