TFTP works but doesn't flash new firmware

I'm trying to install LEDE on a TP-Link TL-WR940N v6 US version. The wikidevi page reveals that it has the same hardware as the TL-WR941ND so that's the firmware I'm using. I would link to these but I'm hitting my new user link limit.

My first attempt was to download lede-17.01.4-ar71xx-generic-tl-wr941nd-v6-squashfs-factory.bin and rename it to wr940nv6_us_3_18_1_up_boot(171030).bin, which is the name of a working tp-link firmware upgrade. I got the infamous "Error code: 18005 Upgrade unsuccessfully because the version of the upgraded file was incorrect. Please check the file name."

Next I tried flashing with TFTP by holding the reset button on boot. My computer IP was set to 192.168.0.66 and I renamed the firmware file to wr940nv6_tp_recovery.bin. I could see the file transfer take place in Wireshark but the router was still running TP-Link firmware when I opened the web GUI.

At this point I'm stumped. I've read somewhere that I'll need to modify the firmware header to get it to be accepted, but I don't know what part to modify. I have a soldering iron, FTDI serial cable, and Salae logic analyzer if that would be helpful. Thanks!

Use serial cable to have the bootloader manually tftp a LEDE sysupgrade bin to RAM then copy it to the flash. The sysupgrade image has no extra headers, it is a direct image.

Be very careful not to erase or overwrite the bootloader or ART partitions in the flash.

Any suggestions for a tutorial that shows the general process (specific router model doesn't matter so much)?

I think I could probably figure it out from your description, but it will be harder.

There is a note in the Supported Versions section of the OpenWRT documentation for the WR941ND v6 you might look at...

https://wiki.openwrt.org/toh/tp-link/tl-wr941nd#supported_versions

Additionally, you might try just renaming the LEDE firmware filername to a shorter file name such factory.bin and flash through the web GUI.

https://wiki.openwrt.org/toh/tp-link/tl-wr941nd#installation