Support for TP-Link TL-WR850N v3

Very similar to TL-WR850N v2 and TL-WR841N v14

CPU: MediaTek MT7628NN
RAM: Zentel A3S56D40GTP-50L
FLASH: W25Q32JVSIQ 2017

hi im looking to create wiki entry for a device i have , im scooping all the necessary details to meet requirements . i collected resources i need help confirming things . my device is TL-WR850N v3 . i opened my router box and found my
soc name : MT7628NN
flash memory
ram
I need someone to assist me so that i can confirm these specs . thanks .

1 Like

compare to the v2: https://wikidevi.wi-cat.ru/TP-LINK_TL-WR850N_v2

make fotos

Are you sure about the chips (number of chips) ?
256Mb and 32Mbit mean its a 4 Megabyte flash and 32 Megabyte RAM unit and those are not that nice to work with/support ("tiny" device class)

Hello. some progress with the problem. i also have a tl-wr850n v3. I can't get the firmware for this model.

It is hard to make it working with 4MB flash only. You must sacrifice something like ipv6 or wpa3. If we have some tiny web interface it would be better and more easy.

I tried building 19.07 just to use as an AP only device, build failed with no good error.

This thread for WR841N v14 has a lot of information https://github.com/openwrt/openwrt/pull/1577

Patch for 19.07.1 based on WR841N v14 and WR850N v2 https://gist.github.com/compliment/43ac7e95700c1b0a05a63b9c07f41192

I think the image for WR841N v14 should work too except for LEDs. I can't find the stock firmware for this revision either to try once.

Greetings

  • The TFTP recovery IP of this device seems to have changed. It is: 192.168.0.225

  • The 850v3 section of this patch seems to give a DTS compilation error with 1 "factory" related error and 6 "gpio" related errors

  • The "gpio" related errors seems to be solved by replacing the text "gpio" with "gpio1" ( since this is 19.07 ). YMMV. No guarantees as to whether this translates to a usable firmware but it compiles. Specifically 6 lines similar to:

gpios = <&gpio 38 GPIO_ACTIVE_LOW>;

with

gpios = <&gpio1 38 GPIO_ACTIVE_LOW>;
  • The "factory" related error seems to be from the included DTS: "mt7628an.dtsi", particularly this "factory" line below:

      wmac: wmac@10300000 {
              compatible = "mediatek,mt7628-wmac";
              reg = <0x10300000 0x100000>;
    
              interrupt-parent = <&cpuintc>;
              interrupts = <6>;
    
              status = "disabled";
    
              mediatek,mtd-eeprom = <&factory 0x0000>;
      };
    

Now this "factory" line is trying to refer back to the DTS to find the wireless mac id from inside the factory section but it cannot find the corresponding section.

YMMV ( this can brick your router ). Add the following test section to TL-WR850NV3.dts ( before the &pinctrl section )

&spi0 {
        status = "okay";

        flash@0 {
                compatible = "jedec,spi-nor";
                reg = <0>;
                spi-max-frequency = <10000000>;

                partitions {
                        compatible = "fixed-partitions";
                        #address-cells = <1>;
                        #size-cells = <1>;

                        partition@0 {
                                label = "boot";
                                reg = <0x0 0x10000>;
                                read-only;
                        };

                        partition@10000 {
                                compatible = "tplink,firmware";
                                label = "firmware";
                                reg = <0x10000 0x3e0000>;
                        };

                        factory: partition@3f0000 {
                                label = "factory";
                                reg = <0x3f0000 0x10000>;
                                read-only;
                        };
                };
        };
};

This section is taken from the 840nv620 and 841nv14 patches and is not guaranteed to result in a working firmware and may brick the router but the DTS compiles.

This is to request your help in:

  • Does this DTS patch work?

  • Is there a better way to patch the DTSI to hardcode the DTSI line:

              mediatek,mtd-eeprom = <&factory 0x0000>;
    

with a constant, like:

            mediatek,mtd-eeprom = <0x3f0000 0x0000>;

so that the DTS &spi0 section is not required or even delete the line so that the MAC is set from the 02_network file as explained in: https://openwrt.org/docs/guide-developer/mac.address ?

  • If the DTS &spi0 section is required and the partition information is wrong then what is the correct partition information for the 850nv3

  • If a USB TTL cable is used to recover the 850nv3 then does anyone have the instructions to flash it, like partition information so that one can erase flash etc.?

Note to OpenWRT, this firmware: https://github.com/IcedShake/openwrt-19.07-tl-wr840n-v6.2

seems to provide a tiny working firmware for the 4/32 devices, firmware max size is 3.5 MB, it itself compiles to around 3.2 MB and may be able to even fit in PPPoE ( need to replace WPad with Wpad mini ) thus making it a candidate for a fully working tiny firmware for 4/32 devices. Hence please don't retire support for 4/32 devices, at least please continue to update the 19.07 snapshot branch with kernel and security updates for at least 2 more years.

Thank you and kind regards.

1 Like

Hello,

I've been working a lot with this models, and got 840n v5, 840n v6 and 840n v6.2 working, saving changes, and with tftp images for v6, and v6.2, but with 850n v3 i had no succes..

I did all the mods to network, dts, and .mk, and at last, did @idcrisis mods, and bricked one device, which is ok, i have some more to keep working,

Does someone have interest on make it work? i would like to keep trying, and post the results here so we can continue woking on 4mb models. (here in Latin America they're quite abundant.)

Tell me what to share here and i'll be happy to keep killing this routers till we get it working... (the original firmware is horrible, and i have a few docens stored)

Sorry to hear about your brick. Please do not use above patch. It was an attempt to see whether the syntax can be corrected:

"No guarantees as to whether this translates to a usable firmware but it compiles."

"is not guaranteed to result in a working firmware and may brick the router"

Please COMPLETELY DISREGARD this ( above ) patch and any attempts to correct the syntax and compile it as this approach is completely wrong.

INSTEAD please directly use the 840nv620 firmware without any modifications at all. It will show up as a 840nv620 but that is ok. It works perfectly.

Also note that this IcedShake version is the only version guaranteed to work on 4mb flash devices ( and specifically tested on the 840nv620 and 850nv3 ) and not any other version.

The only other thing to keep in mind is that there are two versions of the 850nv3 doing rounds. One locked ISP version with IP: 192.168.0.225 and one unlocked retail version with IP: 192.168.0.66.

Please do not use the locked ISP version as it has caused a brick here too possibly due to the lock.

@idcrisis don't wory about the brick, it's part of the learning proces.
i'll give a try with a v6.2 compilation, and if it works, i'll make the files and edits to make the target available in the menuconfig.
about IcedShake version, i did test 840v5 840v6, and 840v6.2, and in every case, if you do what he says in the readme file, it will compile, and save changes. The only problem i faced was leds in v6, eventually i got it working.
I can upload my edited source, but to be honest, all the work is based on @IcedShake build. i just edited some minor stuff.
Thanks a lot for the answer and for the time invested.

Edit: 840n v6.2 tftp-recovery bricks device.. i can't find any TFTP firmware that works

"Edit: 840n v6.2 tftp-recovery bricks device.. i can't find any TFTP firmware that works"

You must either be using the ISP version on 192.168.0.225 ( known not working on Icedshake ) or editing the Icedshake version even somewhat.

The retail version of the 850nv3 works perfectly in the absolutely unedited version of the Icedshake build. The way to make sure is that you're using IP 192.168.0.66 ( retail and unlocked ) and NOT 192.168.0.225 ( ISP, possibly locked )

Recommend completely deleting your build environment and getting Iceshaked build from git and building with not a single line of modification.

They are isp version, without any configuration lock, but "AGILE config ready" version for isp,

Build enviroment worked perfectly for all the other versions, (i am isp in a small town and have more than 70 routers in production with this firmware) and that's why i have so many 850 v3... the idea was to make a preconfiguration in case the client resets router via reset button, and we thought that agile would be a solution, but no, nothing comes even close to openwrt stability,.

The preconfig option is a solution for the reset instance, but original firmware still hangs from time to time.

thanks again for your time, if i get to any solution on this topic i'll post it