When this might be helpful:
- Your router failed to boot after a firmware upgrade
- You want to change between regional firmware releases (America/Europe/Asia/Australasia etc)
- You want to revert back to, or change away from, official TP-Link firmware
- Your TP-Link firmware upgrade is stuck
- You need to perform wrong firmware recovery
- Firmware from the TP-Link website
- A TFTP server which supports logging (this example uses TFTPD32/TFTPD64: https://tftpd32.jounin.net)
- Ethernet cable (preferably crossover cable)
- Computer or laptop
- The TP-Link router must be on the same LAN segment as your computer
- Download the firmware for your router from the TP-Link website, and then unzip the firmware file (.BIN file) into a suitable folder.
In this example, I have chosen to use the folder “C:\temp\”. I am using a TP-Link AC1750 (Archer C7) router and the firmware filename is “ArcherC7v2_en_eu_3_15_3_up_boot(180305).bin”.
2. Set the IPv4 address of the wired Ethernet interface on your computer to 192.168.0.66, and subnet mask to 255.255.255.0.
3. Start the TFTP server and set the base directory of the TFTP server to the folder where the router firmware has been unzipped to (“C:\temp\”). You can either have the TFTP server listening on all interfaces, or just on the wired Ethernet interface that we’ll be using.
4. Make sure that your computer has an Ethernet cable going to the TP-Link router. The router can actually be anywhere on the same LAN segment, but since TFTP uses UDP as a transport protocol, you should have the computer wired directly to the router with an Ethernet crossover cable.
5. Ensure the router is powered off. Hold down the reset button on the router and keep it depressed. Power the router on, wait for 5 seconds, and then release the reset button.
6. The router will now attempt to do a TFTP boot from 192.168.0.66. In the TFTP server logs you can see the filename which was requested by the router.
Your router will request a filename which is specific to each model of TP-Link router, so ensure that you actually follow this process to determine the correct filename to use. Don’t use the filename in this example, otherwise it won’t work and you’ll be wasting time.
In this example, the router is requesting the file “ArcherC7v2_tp_recovery.bin”.
Connection received from 192.168.0.86 on port 1957 [28/12 21:50:04.060]
Read request for file <ArcherC7v2_tp_recovery.bin>. Mode octet [28/12 21:50:04.060]
File <ArcherC7v2_tp_recovery.bin> : error 2 in system call CreateFile The system cannot find the file specified. [28/12 21:50:04.062]
7. Now that we know which filename the router is looking for, we must rename our downloaded firmware file to whatever our router is requesting. This is how we effectively force the router to upgrade the firmware.
In this example, the original filename of the firmware file which we downloaded from the official TP-Link website, is “ArcherC7v2_en_eu_3_15_3_up_boot(180305).bin”, and we will rename it to “ArcherC7v2_tp_recovery.bin”.
8. Repeat step #5 of the process so that the router attempts another TFTP boot.
9. Confirm in your TFTP server that the firmware was successfully downloaded by the router.
10. A few minutes after the firmware transfer, your router should install the new firmware and you’ll be able to access the router’s web interface by using the factory-default settings:
— IP address: 192.168.0.1
— Username: admin
— Password: admin