I put together a small dependency-free Python script to flash OpenWrt onto a class of cheap M-95A repeaters/router clones (AliExpress link) that expose the stock UI on 192.168.11.1 but identify at runtime as TL-WR941ND v6.
Repo:
What it does:
- downloads and caches the firmware while internet is available
- verifies the image against the published SHA256
- uses the vendor
/protocol.cspAPI to launch a temporary shell - serves the cached firmware locally from the host to the router
- runs
sysupgradewithout requiring internet once the host is on the router subnet
This was built around a device that reported:
fmversion: TP9343-4MB-v21-lcj-en-p2hardversion: AR9341-V1.0- stock LAN IP
192.168.11.1
The board identified itself as:
tl-wr941nd-v6TP-Link TL-WR941N/ND v6LEDE 17.01-SNAPSHOT4 MiBflash
The script is currently pinned to:
openwrt-18.06.9-ar71xx-tiny-tl-wr941nd-v6-squashfs-sysupgrade.bin
Important scope note:
This is not a generic flasher for arbitrary cheap repeaters. It is only meant for this observed hardware/firmware family, and flashing the wrong target can brick the device.
Why I’m posting:
- in case other people have the same hardware and want a repeatable path
- to collect confirmations from anyone with matching or near-matching units
- to compare vendor firmware strings and board IDs before broadening the docs
If anyone here has one of these units, I’d especially like to know:
- the exact vendor firmware version string
- whether it also exposes
/protocol.csp - whether it identifies as
TL-WR941ND v6 - whether the same archived image boots cleanly
If there’s interest and enough confirmations, I’ll turn the repo notes into a cleaner device compatibility matrix and try to get the relevant details into the wiki/ToH flow.