Hi Serge, thanks for your help. Unfortunately it didn't work . However I think that the art is in discover the magic numbers to skip and merge the right binary.
Looking to the referred post I discovered the binwalk tool for binary files analysis. Here are the results of some binaries downloaded from tplink.
Archer_C20v5_US
$ binwalk -e Archer_C20v5_US_0.9.1_4.16_up_boot\[181213-rel33336\].bin
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
80960 0x13C40 U-Boot version string, "U-Boot 1.1.3 (Dec 13 2018 - 09:07:10)"
132096 0x20400 LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 3642448 bytes
1442304 0x160200 Squashfs filesystem, little endian, version 4.0, compression:xz, size: 5150316 bytes, 742 inodes, blocksize: 131072 bytes, created: 2018-12-13 01:16:29
wr940nv5_us
$ binwalk -e wr940nv5_us_3_20_1_up_boot\(200316\).bin
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 TP-Link firmware header, firmware version: 0.-6164.3, image version: "", product ID: 0x0, product version: 155189252, kernel load address: 0x0, kernel entry point: 0x80002000, kernel offset: 4063744, kernel length: 512, rootfs offset: 866618, rootfs length: 917504, bootloader offset: 3014656, bootloader length: 0
15552 0x3CC0 U-Boot version string, "U-Boot 1.1.4 (Mar 16 2020 - 09:26:38)"
15600 0x3CF0 CRC32 polynomial table, big endian
16900 0x4204 uImage header, header size: 64 bytes, header CRC: 0xCB6027D7, created: 2020-03-16 01:26:38, image size: 42920 bytes, Data Address: 0x80010000, Entry Point: 0x80010000, data CRC: 0x11F3A251, OS: Linux, CPU: MIPS, image type: Firmware Image, compression type: lzma, image name: "u-boot image"
16964 0x4244 LZMA compressed data, properties: 0x5D, dictionary size: 33554432 bytes, uncompressed size: 114016 bytes
131584 0x20200 TP-Link firmware header, firmware version: 0.0.3, image version: "", product ID: 0x0, product version: 155189252, kernel load address: 0x0, kernel entry point: 0x80002000, kernel offset: 3932160, kernel length: 512, rootfs offset: 866618, rootfs length: 917504, bootloader offset: 3014656, bootloader length: 0
132096 0x20400 LZMA compressed data, properties: 0x5D, dictionary size: 33554432 bytes, uncompressed size: 2496348 bytes
333162 0x5156A MPEG transport stream data
1049088 0x100200 Squashfs filesystem, little endian, version 4.0, compression:lzma, size: 2989254 bytes, 690 inodes, blocksize: 262144 bytes, created: 2020-03-16 01:33:58
wr940nv5_EU
$ binwalk -e wr940nv5_eu_3_20_1_up_boot\(200316\).bin
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 TP-Link firmware header, firmware version: 0.-6164.3, image version: "", product ID: 0x0, product version: 155189252, kernel load address: 0x0, kernel entry point: 0x80002000, kernel offset: 4063744, kernel length: 512, rootfs offset: 866618, rootfs length: 917504, bootloader offset: 3014656, bootloader length: 0
15552 0x3CC0 U-Boot version string, "U-Boot 1.1.4 (Mar 16 2020 - 09:26:38)"
15600 0x3CF0 CRC32 polynomial table, big endian
16900 0x4204 uImage header, header size: 64 bytes, header CRC: 0xCB6027D7, created: 2020-03-16 01:26:38, image size: 42920 bytes, Data Address: 0x80010000, Entry Point: 0x80010000, data CRC: 0x11F3A251, OS: Linux, CPU: MIPS, image type: Firmware Image, compression type: lzma, image name: "u-boot image"
16964 0x4244 LZMA compressed data, properties: 0x5D, dictionary size: 33554432 bytes, uncompressed size: 114016 bytes
131584 0x20200 TP-Link firmware header, firmware version: 0.0.3, image version: "", product ID: 0x0, product version: 155189252, kernel load address: 0x0, kernel entry point: 0x80002000, kernel offset: 3932160, kernel length: 512, rootfs offset: 866618, rootfs length: 917504, bootloader offset: 3014656, bootloader length: 0
132096 0x20400 LZMA compressed data, properties: 0x5D, dictionary size: 33554432 bytes, uncompressed size: 2496348 bytes
333162 0x5156A MPEG transport stream data
1049088 0x100200 Squashfs filesystem, little endian, version 4.0, compression:lzma, size: 2989254 bytes, 690 inodes, blocksize: 262144 bytes, created: 2020-03-16 01:33:58
I am working in guessing why for Archer C20 they skip 192k bytes ... and which is the amount for wr940 V5 ES
Here what @ashegoulding says in his/her repo:
512 is the size of header( sizeof(struct fw_header)
is 512: exb A, exb B). The actual binary that the hardware loads starts after the header.
196608 (0x30000) is the size of the first boot loader region. The TFTP recovery program skips 196608 bytes of the downloaded image when copying into the flash. Stupid design if you ask me. This number(0x30000) appears on the serial output when performing TFTP reset. 0x30000 is probably the size of the first boot loader for all variants. But you can only find this out if you have the serial console. If you think it's not for your variant, well. Shotgun it(trial and error). I highly doubt it's other than 0x30000, though.
I think that these numbers explain your answer @123serge123
Keep trying ...