This post covers the procedure of upgrading the firmware of TP-LINK TL-WPA4226KIT v4 PowerLine adapters.
The TP-LINK TL-WPA4226KIT v4 consists of two units:
- TL-PA4020P (2xRJ45, passthru unit)
- TL-WPA4220 v4 (2xRJ45, WiFi unit)
I got frequent drops of connection, averaging from 2 to 5 times a day. Like 2 minutes operation interruptions. The rest network worked fine and I concluded that the problem was in the connection between those two units.
Upgrading the firmware from TP-Link’s website didn’t fix the problem.
It seems that TP-Link’s updates hadn’t upgraded the units’ firmware since 27/10/2017 (TL-WPA4220) and 28/04/2016 (TL-PA4020P).
I bumped into this post in TP-Link’s forum which links to files that include newer firmware/drivers than the one in TP-Link’s official updates.
Keep in mind that this new firmware is not flashable with the conventional tpPLC utility.
Make sure you have directly connected your PC/laptop to the receiver unit (TL-WPA4220 in my case) with an ethernet cable.
New firmware file
The first step is to download the new firmware file (FW-QCA7420-1.5.0.0026-02-CS-20200114 .nvm) from the post I linked above.
open-plc-utils GitHub repository can be found here.
git clone https://github.com/qca/open-plc-utils cd open-plc-utils make
You will probably get errors regarding missing libraries.
You need to work it out using the package manager of your linux distribution and rerun
Once you have successfully built the open-plc-utils program, it is time to install it.
sudo make install
Optionally, install manpages:
sudo make manuals
Collect the .pib files that will be used in flashing
Firstly, find out the interface name of your network card (NIC).
enp3s0. You can find yours with:
Then, we need to identify the PL units along with some info.
sudo plcstat -t -i enp3s0
command provides what we need:
P/L NET TEI ------ MAC ------ ------ BDA ------ TX RX CHIPSET FIRMWARE LOC STA 002 D8:47:32:C8:73:39 D4:BE:D9:D9:BB:4A n/a n/a QCA7420 MAC-QCA7420-126.96.36.199-00-20171027-CS REM CCO 001 98:48:27:63:5C:F9 8C:68:C8:F4:BE:27 128 094 QCA7420 MAC-QCA7420-188.8.131.521-00-20160428-CS
D8:47:32:C8:73:39 is the address of my WPA4220 with firmware version
98:48:27:63:5C:F9 is the address of my PA4020P with firmware version
To identify which address belongs to which unit, you can match it with the address written on the sticker on each unit.
Getting the .pib files
sudo plctool -i enp3s0 -p TL-PA4020P.pib 98:48:27:63:5C:F9
sudo plctool -i enp3s0 -p TL-WPA4220.pib D8:47:32:C8:73:39
We’ve got two .pib files:
Flashing the new firmware
In this step we will use the .nvm file from earlier and the two .pib files we acquired in the previous step.
sudo plctool -i enp3s0 -P TL-PA4020P.pib -N FW-QCA7420-1.5.0.0026-02-CS-20200114.nvm -R 98:48:27:63:5C:F9
Which outputs a long wall of text ending with:
. . . MODULE_SUB_ID 0x0000 MODULE_LENGTH 1132 MODULE_OFFSET 0x046C0000 enp3s0 98:48:27:63:5C:F9 Close Session enp3s0 98:48:27:63:5C:F9 Reset Device enp3s0 98:48:27:63:5C:F9 Resetting ...
Congratulations! We have successfully flashed the new firmware on our TL-PA4020P!
sudo plctool -i enp3s0 -P TL-WPA4220.pib -N FW-QCA7420-1.5.0.0026-02-CS-20200114.nvm -R D8:47:32:C8:73:39
. . . MODULE_SUB_ID 0x0000 MODULE_LENGTH 1132 MODULE_OFFSET 0x046C0000 enp3s0 D8:47:32:C8:73:39 Close Session enp3s0 D8:47:32:C8:73:39 Reset Device enp3s0 D8:47:32:C8:73:39 Resetting ...
Congratulations! We have successfully flashed the new firmware on our TL-WPA4220!
Checking the firmware version
sudo plcstat -t -i enp3s0
P/L NET TEI ------ MAC ------ ------ BDA ------ TX RX CHIPSET FIRMWARE LOC STA 006 D8:47:32:C8:73:39 D4:BE:D9:D9:BB:4A n/a n/a QCA7420 MAC-QCA7420-184.108.40.206-02-20200114-CS REM CCO 004 98:48:27:63:5C:F9 7C:64:56:8A:82:5A 169 107 QCA7420 MAC-QCA7420-220.127.116.11-02-20200114-CS
Notice the new firmware version for both units:
Since the upgrade, no connection interruptions have occurred.
TP-Link needs to provide updates that include newer firmware/drivers for their products.