TP-Link TL-MR3420, TL-MR3220, TL-WR841ND v7 & TL-WR842ND

The TP-Link TL-MR3420 is a Fast Ethernet b/g/n 300M (two 3 dBi omni-antennas) wireless router with USB 2.0.
The TP-Link TL-MR3220 is a Fast Ethernet b/g/n Lite-N 150M (one 5 dBi omni-antennae) wireless router with USB 2.0.
The TP-Link TL-WR842ND is a Fast Ethernet b/g/n 300M (two 5 dBi omni-antennas) wireless router with USB 2.0.
The TP-Link TL-WR841ND v7 is a Fast Ethernet b/g/n 300M (two 3 dBi omni-antennas) wireless router without USB 2.0, but has a header in place.

Supported Versions

Model Version FCC ID Supported Since OpenWrt Version Model Specific Notes
MR3220 v1 TE7MR3220 Attitude Adjustment (r24439) -
MR3220 v1.2 Attitude Adjustment (r27340) Success Success Spanish 3G
MR3220 v2 Aug-2012 WiP TL-AP121 Success
MR3220 v2.1 TE7MR3220V2 Trunk Success
MR3220 v2.2 Trunk
MR3420 v1.0 TE7MR3420 No failsafe Backfire 10.03.1 (r23138) -
MR3420 v1.1 No failsafe Backfire 10.03.1 (r23138) Success
MR3420 v1.2 No failsafe Backfire 10.03.1 (r23138) Success
MR3420 v2 Aug-2012 Unsupported TL-AP121
MR3420 v2.1 Dec-2012 trunk Don't works USB port and USB indicator
MR3420 v2.2 Mar-2014 trunk Success
MR3420 v2.3 Mar-2014 trunk Success (Did not test USB port)
WR841ND v7.1 - Known Bugs AA 12.09b (r23134) TL-WR841ND
WR841ND v7.2 - Known Bugs AA 12.09b (r30310) -
WR842ND v1.0 TE7WR842ND Known Bugs AA 12.09b (r30508) TL-WR842ND

No failsafe The failsafe function is not working at launch time, serial is also unfriendly: Stick to trunk. More...

Stability warning Snapshot images are always risky. Check the forum discussion for latest opinions on available images.

Known Bugs Has known bugs, read carefully: #12135, #12143.

Firmware for 3420 v2.1 with working USB-port (but not indicator) can be found at Forum:

Hardware Highlights

Model CPU Ram Flash Network USB Serial JTag
MR3420 AP99 Atheros AR7241@400MHz 32 MiB 4 MiB 4 x 1 2.0 Yes No
MR3220 AP99 Atheros AR7241@400MHz 32 MiB 4 MiB 4 x 1 2.0 Yes No
WR841ND v7 AP99 Atheros AR7241@400MHz 32 MiB 4 MiB 4 x 1 Header Yes No
WR842ND AP99 Atheros AR7241@400MHz 32 MiB 8 MiB 4 x 1 2.0 Yes No

OEM source code available at: for TL-MR3220 and TL-MR3420 V.1 -, for TL-MR3220 V.2 -, for TL-MR3420 V.2 -


TL-WR841ND v7 &
TL-WR842ND: Atheros AR9287 wireless chip. Single-band, 2x2 MIMO configuration

TL-MR3220: Atheros AR9285 wireless chip. Single-stream (no MIMO, Lite-N)


This section details what is required to install and upgrade OpenWrt. First we link to software that you should download before you start reading the instructions on how to install.

Important!Please double-check if the image revision you are downloading is newer than supported by the "Model Version" of your router.

  • Download a Install Image from this group if is the first flash from OEM firmware:
*-factory.bin OpenWrt Gargoyle
Branch: Trunk1) AA Final Backfire
Web interface: None LuCI Gargoyle None
MR3420 r40698 r36088 r29592 r30752 r31348
MR3420 V2 trunk
MR3220 r40698 r36088 r31348
MR3220 V2 trunk
WR841N v7 r40698 r36088 r31348
WR842ND v1 r40698 r36088
WR842ND v2 r40698
  • Download a Upgrade Image from this group for already installed OpenWRT systems instead:
*-sysupgrade.bin OpenWrt Gargoyle
Branch: Trunk2) AA Final Backfire
Web interface: None LuCI Gargoyle None
MR3420 r40698 r36088 r29592 r30752 r31348
MR3420 V2 trunk
MR3220 r40698 r36088 r31348
MR3220 V2 trunk
WR841N v7 r40698 r36088 r31348
WR842ND r40698 r36088
  • Download PuTTY and PSCP tools for SSH connection even if you don't know what SSH is.
  • Download latest original firmware for your router MR3420/MR3220/WR842ND just in case upgrade goes wrong and need it to recover Internet access.

OEM easy installation

This section deals with how you install OpenWrt from a device freshly opened. Plus the steps required such as reset to factory defaults if the device has already been configured

Note: Reset router to factory defaults if it has been previously configured.

Note: Newer TP-Link retail firmwares (confirmed on v2.4 devices, but definitely not on v2.0) include a crude mechanism to prevent you uploading unsuitable firmware. It does this by checking the filename, so you may need to rename the *-factory.bin file to the name of a TP-Link retail firmware file. e.g. wr741nv1_en_3_12_4_up(100910).bin (not necessary with firmware V4_120320)

  • Browse to your router at or test with TP-LINK Simulator first. (Version 4.20 uses out of the box.)
  • Login with user name: admin password: admin
  • Use left navigation panel and go to System Tools
  • Important! Navigate to - Factory Defaults and click on Restore if it has been previously configured.
    • Confirm the pop-up dialog.
  • Then navigate to - Firmware Upgrade
  • Upload previously chosen -factory.bin file to router
  • Click on Upgrade button and wait for it to reboot
  • Important! Do NOT turn off the power during upgrade
  • Wait about 120 seconds to start up, see SYS LED activity.
  • If the router's IP ( doesn't repond to ping, try clear ARP cache on your machine
    arp -d
  • Don't clear your browser cache! Please report here what you installed, if do work anyway and which Untested link let you get in. Successful ones have Untested removed. This only happen once, so your input is important. Alternate links that theoretically should work
Gargoyle Know to fail
LuCI Untested
X-Wrt Untested
  • Important! Clear your browser cache if you are sure some web interface is installed, but can't access to
  • Set a root password
    • Browse to if LuCI, X-Wrt or Gargoyle web interface is installed.
      • Only for Gargoyle login with defaults user name: root password: password
      • After password has been setup login with user name: root password: previusly entered
    • telnet
      • Type:
        passwd root
      • Enter your new password twice.
  • Once password has been setup Telnet is no longer available, use SSH instead to connect.
    • ssh root@
    • PuTTY SSH

Flash via Webinterface

Install the OpenWrt image using "Firmware Upgrade" from the orginal firmware.

Flash via tftp

Using a serial line

  1. Download openwrt-ar71xx-generic-tl-mr3420-v1-squashfs-factory.bin
  2. Connect your pc via serial interface.
  3. Use a tftpd server name the the firmware code.bin and set the static IP address of the computer to (for MR3420/MR3220 versions v1.x) or (for MR3420/MR3220 versions v2.x).
  4. Power on the router, and type tpl if "Autoboot in .." occurs (type fast!)
  5. If it works you now should see: ar7100>
  6. Now you should type the following:

ar7100> erase 0x9f020000 +0x3c0000 ar7100> tftpboot 0x81000000 code.bin ar7100> cp.b 0x81000000 0x9f020000 0x3c0000 ar7100> bootm 0x9f020000


Using a tftpd server

The following procedure was tested with a TL-WR842ND.

Enter failsafe mode:

  1. remove the power plug from the router
  2. press and hold the RESET button
  3. insert the power plug
  4. release the RESET button

Some seconds later no LED besides the one for USB (and maybe for attached ethernet ports) should be lit.

The device now uses the IP It repeatedly tries to download a file named wr842ndv1_tp_recovery.bin from a tftpd server with the IP You can verify these continuous requests with a network sniffer (e.g. tcpdump or wireshark).

The following steps will serve an openwrt fimrware image to the device:

  1. download an appropriate firmware file (e.g. openwrt-ar71xx-generic-tl-wr842n-v1-squashfs-factory.bin)
  2. create a symlink or rename the file: ln -s openwrt-ar71xx-generic-tl-wr842n-v1-squashfs-factory.bin wr842ndv1_tp_recovery.bin
  3. configure the static IP for your local ethernet interface
  4. connect your computer to one of the LAN ports of the router
  5. install a tftpd server (e.g. atftpd)
  6. run the tftpd server and let it serve the directory that contains the above firmware image: atftpd –no-fork –daemon FIRMWARE_DIRECTORY
  7. the router immediately starts to download the firmware image
  8. after some time you will see all LEDs flashing once followed by a normal restart of the router



Model MR3420 MR3220
Version 1 1.1 1.2 2.3 1 1.2 2.2
Architecture: MIPS 24Kc V7.4 MIPS 74Kc MIPS 24Kc V7.4
Manufacturer: Atheros
Bootloader: U-Boot
System-On-Chip: Atheros AR7241@400MHz Atheros AR9341@535MHz Atheros AR7241@400MHz Atheros AR9331
Flash chip: MACRONIX MX25L3206E cFeon F32-100HIP Winbond W25Q32BV Spansion FL032PIF cFeon F32-100HIP Spansion FL032PIF
Flash size: 4 MiB
RAM chip: Zentel A3S56D40FTP -G5 Winbond W9425G6JH-5 FIXME Zentel A3S56D40FTP -G5
RAM size: 32 MiB
Wireless Atheros AR9287 (2x2 MIMO 300Mbps) Atheros AR9341 Atheros AR9285 (1x1 MIMO 150Mbps)
Antenae(s) 2 Removables x 3 dBi 1 Removable x 5 dBi 1 Removable
Ethernet: AG71xx 4 LAN, 1 WAN 100/10
USB: 1 x 2.0
Serial: Unfriendly


MR3420 v1.x

Front: tl-mr3420-01.jpg

Back: tl-mr3420-04.jpg

Board: 280405_tp-link_mr_3420_alaplap.jpg

Photo source
More photos: 1, 2, 3

MR3220 v1.x

Front: 1-5

Back: 1-3.

Board: img_20110628_172208.jpg

Photo source
More photos: 1, 2, 3, 4

MR3220 v2.x

Side view:
More Photos: 1, 2, 3

MR3420 v2.3



1 2 3 4

Pinout for MR3220 V2.2 (I have V2.3 as on photo with V2.2 on bottom) only

1 2 3 4

Pin 1 is clearly marked on the board.

To be able to use the UART on MR3220V2, TP18 to TP38 and TP28 to TP48 should be connected.

This is how I did mine; jumpers_done.jpg

FIXME image lost: MR3220V2-UART.png
Yet another image


To get the serial connection work reliably, you have to connect a 10k pullup resistor between the TX and the 3.3V pin. This is because the TX pin is connected to a voltage divider (2x5.6k) and a capacitor is put between the real pin and the TX connector. 3)

Now connect a serial hack adapter (DKU-5, CA-42 or similar containing the PL-2303 chip) and away you go!

This adapter can be also used provided a serial port is present on the PC. Tested on MR3420 v2.2, but it requires a 4.7k pulldown resistor between Tx and GND. When using it, router has to be powered on, and after that connect the pulldown, Tx and Rx pins. (Tx from schematic goes to Tx pin of router, Rx from schematic to Rx of router).

The right settings for accessing the serial console are as follows:

Bits per second: 115200
Data bits: 8
Stop bits: 1
Parity: None
Flow control: None

Password to get into uboot prompt is tpl
Password to get root login is 5up

MR3420 v2.2 has all the signals routed to the pins so you don't have to solder any additional wires. See here

Basic configuration

Since this part is identical for all devices, see Basic configuration.

Note: (TP-Link MR3420 v1.2) In case the vlan switch configuration is not created automagically (⇐ 10.03.1) and there is eth0 and eth1 after bootup change /etc/config/network to reflect the vlan setup by adding the lines below. Also replace the 'option ifname "ethX"' accordingly (eth0.1, eth0.2). The proper ethernet port layout has still to be confimed.

config switch eth0                   
      	option reset 1                     
      	option enable_vlan 1             
config switch_vlan
        option device eth0          
        option vlan 1               
        option ports "0t 1 2 3 4" 
config switch_vlan         
        option device eth0       
      	option vlan 2            
      	option ports "0t 5"

In MR3220 v1.2 is:

config 'switch'
	option 'name' 'eth0'
	option 'reset' '1'
	option 'enable_vlan' '1'
config 'switch_vlan'
	option 'device' 'eth0'
	option 'vlan' '1'
	option 'ports' '0 1 2 3 4'

OEM firmware features

Since this is the same for all TP-LINK products, see TP-LINK firmware features.


Failsafe is a quite popular feature, of this router, thats lets you recover instantly from a misconfiguration above.

Use the QSS button instead of reset button, everything else is identical to generic failsafe document.

Failsafe may not work in Backfire before r29661, so it's confirmed to not work at Backfire 10.03.1 launch (r29592). Be extremely cautious on what you're doing or go directly to serial recovery.

Note for MR-3220 running on 12.09-rc1 (r34185): I did not get any UDP packets to port 4919 as promised either when connected to LAN or WAN, however repeatedly pushing the front button made the router to enter the failsafe mode, which allowed me to gain again access to the router. The problem almost bricking my router was in my network configuration, for some reason setting a fixed MAC address for a bridge caused the router to hang at /etc/init./network start.



In case of failure or an installation package settings can sometimes cause the router cannot be accessed either administrator page ( also through the console. This condition can be addressed in the following way;

1) turn off and turn on the Router 2) Shortly lights up press the SYS LED is that flashing LED SYS, will very quickly. 3) Now the Router has been accessible via TELNET 4 Router with TELNET) Login 5) type in the command: firstboot 6) type in the command:/etc/init.d/uhttpd start 7) went back to the Admin page in a browser with the address:

Connect stuff to the USB port

To connect stuff to the USB port, please see Connect stuff to the USB port.

Turn USB power off

On a TL-WR842NDv1 do like this:

  • ON
    echo 1 >/sys/class/gpio/gpio6/value
  • OFF
    echo 0 >/sys/class/gpio/gpio6/value

Forum post

Custom OpenWrt image with LuCi integrated

Hardware Mods

Deep MMC Hack

Unlike standard modding mmc_over_gpio - where was necessary to find 4 unused GPIOs, in the deep modding we can use only one GPIO(or two GPIOs if whe want to use SD card as hotplug SPI device), because we will use a common SPI bus with NOR flash memory.
Due to the fact that on routers MR3420/MR3220 V1.x we have limit of available unused GPIOs, we forced to use the common SPI bus with NOR flash memory (spi0.0) where MMC/SD memory card will be - spi0.1
How to do this is described in this link.


1) , 2) Release number vary more frequently than Wiki update
3) With MR3220 v1.2 and CA-42 just connect TX, RX and GND, do not need any resistor.

Back to top

toh/tp-link/tl-mr3420.txt · Last modified: 2014/11/06 16:12 by ykchavan