Updating the Powerline adapters in my home network

I have blogged previously about a couple of problems with using Powerline adapters in my home network:

As my NETGEAR XAV1301 (200 Mbps) Powerline adapters bought in 2012 apparently do not fully support IPv6, and as my NETGEAR XAV5221 (500 Mbps) adapters bought in 2016 are no longer manufactured either, I decided to invest in some new Powerline adapters that would guarantee IPv6 support. My Web searches did not confirm that the current models of NETGEAR Powerline adapters support IPv6, so I decided to try TP-Link Powerline adapters because the TP-Link Web site states that all current TP-Link Powerline adapters support IPv6. I wanted Powerline adapters for five devices (router, smart TV and three computers), plus the ability to use a mains plug on at least two of those (i.e. so-called ‘pass-through’ adapters). I also wanted to avoid buying different models, in order to minimise the possibility of any problems. TP-Link have a range of 600 Mbps adapters under the name ‘AV600’, so I plumped for two TP-PL4010 adapters (single Ethernet port per adapter), one TP-PL4010P adapter (single Ethernet port and one mains pass-through socket) and one TP-PL4020P (two Ethernet ports and one mains pass-through socket). These all use the Qualcomm Atheros QCA7420 Powerline chipset (which happens to be the same chipset used in my old NETGEAR XAV5221 500 Mbps adapters).

Like NETGEAR, TP-Link does not have a Powerline utility program for Linux, so I had to install TP-Link’s tpPLC utility program in Windows 10 running in a VM (virtual machine) in order to configure the four TP-Link adapters and set the ‘Powerline network name’ to avoid crosstalk with my neighbour’s Powerline adapters that use the factory default network name (‘HomePlugAV’).

Anyway, I got everything set up and working, but soon noticed that there were quite frequent dropouts of the connection to my router and the Internet. Some dropouts did occur when I was using the old NETGEAR Powerline adapters, but I was surprised to find that the performance of the new TP-Link adapters was much worse. The dropouts typically lasted a minute or two. This was annoying, to say the least.

I started searching the Web, and ‘TP-Link’ and ‘dropout’ occur together a lot. I had already disabled Power Saving Mode in the adapters, so knew that was not the cause. I happen to know someone who also uses TP-Link adapters, and he mentioned that he also experienced frequent dropouts. In addition to turning off Power Saving Mode, he had implemented a shell script on his machines to ping an Internet site periodically to try and keep the connection from dropping out, but this did not appear to make any difference. I wrote the script below to try the same thing, and it did not cure the dropouts either:

# Script to try to keep the Powerline adapter connected to this machine
# from dropping the connection to the router
while true
    ping -W 2 -c 1 >>/dev/null 2>&1
    if [ $PREVIOUS -ne 0 ] && [ $STATUS -eq 0 ]; then
        logger "Ping successful: connection to Internet is up."
#        echo "Ping successful: connection to Internet is up."
    elif [ $PREVIOUS -eq 0 ] && [ $STATUS -ne 0 ]; then
        logger "Ping unsuccessful: connection to Internet may be down."
#        echo "Ping unsuccessful: connection to Internet may be down."
    elif [ $FIRSTPASS -eq 1 ] && [ $STATUS -ne 0 ]; then
        logger "Ping unsuccessful: connection to Internet may be down."
#        echo "Ping unsuccessful: connection to Internet may be down."
    sleep 10

In my Web searches I came across a a thread in the TP-Link SOHO Community forums with a URL for a new version of firmware for TP-Link Powerline adapters that use the Qualcomm Atheros QCA7420 chipset. I learned from the TP-Link forums that the firmware in NVM (Non-Volatile Memory) depends on the chipset manufacturer’s chipset, not on the Powerline manufacturer’s adapter model, whereas the adapter’s PIB (Parameter Information Block) does change depending on the model (including the country). So I started searching online for a PIB file for the three models of TP-Link adapter that I am using, but I could not find them. However, the Linux open-plc-tools command ‘plctool‘ enabled me to read the PIB from each adapter and store it as a file:

user $ sudo plctool -i eth0 -p TL-PA4010P.pib <MAC address printed on the adapter>
user $ sudo plctool -i eth0 -p TL-PA4010_TV.pib <MAC address printed on the adapter>
user $ sudo plctool -i eth0 -p TL-PA4010_HOME-HUB.pib <MAC address printed on the adapter>
user $ sudo plctool -i eth0 -p TL-PA4020P.pib <MAC address printed on the adapter>

The Ethernet interface in the computer I used is named ‘eth0′, so change it accordingly. You can give any name to the PIB files.

It is also easy to find out the adapters’ MAC addresses and current firmware by using another open-plc-tools command:

user $ plcstat -t -i eth0

The TP-Link tpPLC utility for Windows also shows the firmware version. I was surprised to see that the firmware version was different in the three models I had just bought:

  • TL-PA4010P firmware version:
  • TL-PA4010 firmware version:
  • TL-PA4020P firmware version:

The command to update the firmware in an adapter using the NVM file I downloaded from the URL in the above-mentioned TP-Link Community forum thread and the PIB file read from the relevant adapter, is as follows:

user $ sudo plctool -i <interface> -P <PIB file> -N <NVM file> -R <MAC address of adapter>

For example:

user $ sudo plctool -i eth0 -P TL-PA4010P.pib -N FW-QCA7420- -R 15:B3:D2:D8:5F:BA

I am fortunate in that the three models of TP-Link Powerline adapter I bought all use the Qualcomm Atheros QCA7420 chipset, so I could use the same NVM file for all four adapters that I bought. I only needed to repeat the command with a different PIB file for each adapter model. The plcstat command can be used to check that the firmware version is different from the factory original version:

user $ plcstat -t -i eth0

Actually, the tpPLC utility in Windows 10 also has the ability to upload an NVM file and a PIB file to an adapter, so, as I have tpPLC installed in a VM, I can use that instead to update firmware in my TP-Link Powerline adapters.

And what difference did upgrading the firmware in my new TP-Link adapters make? A big difference. There are no more dropouts; the connection is now stable and I no longer get interruptions while browsing the Internet. It’s a pity that TP-Link does not supply every chipset’s latest firmware file and every model’s PIB file on their support Web site so that users can update their Powerline adapters.


About Fitzcarraldo
A Linux user with an interest in all things technical.

17 Responses to Updating the Powerline adapters in my home network

  1. viewinghood says:

    THX, you made a great job and thanks to the community, otherwise the adapters would be crap 👍

    • Keith says:

      A big thanks from me, too. Having bought a couple of 4010’s last weekend you’ve fixed a stability issue I was only just becoming aware of. I now see 300-400Mbps and so far rock solid … and I’ve now ordered more.

  2. alnxx says:

    Great to see it worked. But i have a question: which version of 4010P do you have?
    I have 4010p v2 EU and adapter rejects new firmware :
    Minor Version Mismatch (0x48): Device refused request
    And i try to find out why.
    My v2 version is on FW 1.1.0 which is noticeable smaller than any 1.3 and newer.
    So it may be hardware limit

  3. Son says:

    i upgrade wrong version V2 for TP-PA4010 V1 Nano AV500,pls help me flash back

  4. felix says:

    Hello, I read you success both here and in TP-Link forums, however i have a question.

    What version is your TP-PA4020P ?

    I have TP-PA4020P (EU) v1.0 and am trying to upgrade to FW from TP-Link forums, using Windows TP Link Utility and .pib file from previous FW upgrade (available in TP-Link Support page of my adapter).

    While the Update starts normally, it stops with an ” Update Failed” message.

    Any ideas ?

    Thank you in advance for your time.

    • Fitzcarraldo says:

      My TP-Link adapter models and versions are:

      TL-PA4010P(UK) VER:5.0
      TL-PA4010(UK) VER:3.0
      TL-PA4020P(UK) VER:4.0

      Sorry, I do not know why you are not having success with your update. If I understand your comment correctly, the PIB file you used worked for you when you performed a previous firmware upgrade. However, if, in fact, you have never used that downloaded PIB before to upgrade your adapter then I suppose that might be the reason you are not having success. In my case I read the PiB from each of my adapters using the Linux open-plc-tools, which you did not do, so perhaps that is the reason. But I’m only guessing.

      • felix says:

        Thank you for your reply.
        Correct, I have used .pib file for my device version from TPlink website, the same i used to upgrade to existing fw from previous of my device (the one that was shipped with).

        I was planning setup an ubuntu installation just to try your way with open plctool.

        If not successful, what the heck, it’s an old device, no harm done.

  5. mark says:

    Wow, this worked perfectly for me. Upgraded from v1.3.1 to the qualcomm using the linux tools and my WPA4220 KIT now runs at 230MBs – previously best was 150mbs. Many thanks for your explanation.
    If you link to https://wolfgangherget.de/powerline-coupler-firmware-rescue/
    He also explained how to make compile the tools..
    Great work.

  6. Pingback: Using open-plc-utils in Linux with Powerline (HomePlug) adapters | Fitzcarraldo's Blog

  7. peter says:

    thanks, nice docu.
    new firmware: https://community.tp-link.com/us/home/forum/topic/204238


    flashing the new firmware:
    1. import mac in pib file

    sudo modpib -M XX:XX:XX:XX:XX:XX 4010_3.0_EN50561-3.pib

    XX:XX:XX:XX:XX:XX replace with mac sticker.
    4010_3.0_EN50561-3.pib replace with downloaded *.pib

    2. flash

    sudo plctool -i en0 -P 4010_3.0_EN50561-3.pib -N FW-QCA7420- -R XX:XX:XX:XX:XX:XX

    XX:XX:XX:XX:XX:XX replace with mac sticker.
    4010_3.0_EN50561-3.pib replace with downloaded *.pib

    3. do factory reset , „unknown“ devices will be shown up again correctly using the original tool, was necessary for one of my 4010 .

    sudo plctool -i en0 -T

    4. set mac

    sudo plctool -i en0 -I XX:XX:XX:XX:XX:XX
    XX:XX:XX:XX:XX:XX replace with mac sticker.

    5. show info

    sudo plcstat -t -i en0

    (6. optional set fullspeed mode)

    sudo plctool -i en0 -m


  8. DDude says:

    Dear Fitz

    Your Post have been a real boon of information on my quest to repair my trendnet powerline 410p v2 adapter.

    I confirmed that it uses the QCA7420 chipset so the free updated NVM its compatible but due a faulty upgrade my PIB and NVM are corrupted so even if I dump I am unable to get a working PIB for my model.

    I been trying to extract the PIB from a IMG from the manufacturer ( https://downloads.trendnet.com/TPL-410AP_v2/firmware/FW_TPL-410AP(1.00.14).zip ) with binwalk/ghidra as I am unable to mount it succesfully but aside from been a little too far from my technical knowledge I hardly know where to start or even do as most of the tutorials out there are cases far from this one on particular.

    I would appreciate if you could bring any kind of guide or help into this matter.

    Kind regards


    • Fitzcarraldo says:

      That ZIP file contains two files:

      1. FW_TPL-410APv2(1.00.04).img
      2. readme.txt

      The readme.txt file contains the following text:

      TPL-410AP (v2.0R)

      Firmware Version:1.00.04
      Release Date: 9/2017
      1. Addressed LAN IP issue
      2. Improved multi-language user interface
      3. Update security support

      I do not know what to do with the .img file to get a PIB file and/or an NVM file, so I recommend you contact TRENDnet, the manufacturer of the adapter, to ask them how to extract the files you need.

  9. trevor blight says:

    I had exactly the dropout problem you described, and updating the firmware fixed it, so many thanks for your post.

    I’ve written a bash script to do the basic house keeping for updating the firmware, like preserving the network messaging key, etc
    Your homeplug.sh script uses ifconfig, which is now deprecated, so I’ve fixed that, and then tinkered a bit with that file.

    Both of these are posted on github.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: