OpenWrt Forum Archive

Topic: Working on Netgear WNDR3700v5

The content of this topic has been archived between 31 Mar 2018 and 7 May 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

Hi @ldpinney I'm keen to use your bootloader with my 3700v5. If anything goes wrong with my custom build of LEDE then I've got nice options to recover that don't involve running a Windows XP utility. I couldn't find documentation on this but it is possible to manipulate uboot startup options using sequences of the 3700v5 reset button instead requiring serial access and taking the router apart? In your other bootloaders you have these options below. Thank you for your work on this.

Press and hold reset button to run:
Web server (min. 3 seconds)
U-Boot serial console (min. 5 seconds)
U-Boot network console (min. 7 seconds)

@ldpinney You do realize that at this moment I could kiss you, don't you? big_smile Thanks for the image and the advice.

Succesful boot after de-/resoldering and programming the chip! I used a paint-stripper heat gun with a very coarse scale from 100-600 degrees Celcius for removing the chip, a 2€ programmer from AliExpress and both the heat gun and a soldering iron for resoldering the chip. Took me hours to get to grips with all the steps, 15 minutes for writing, 15 for veryfying. I am a very happy person, right now: Working router and I now know how to program flash chips!

Hints for people who thoroughly bricked their router:

  • Don't worry. You can reprogram the chip with a CH341A Mini Programmer. If you don't wan't to solder: Use a clip

  • If you decide to solder using a heat gun:

    • I used aluminium tape (used in plumbing) to cover half of the PCB. If some part gets desoldered too, than it stays in place and gets resoldered when cooling down.

    • Take the PCB out of the plastic casing. (I didn't and some of the plastic support of the antenna is deformed.)

    • Keep the chip in place with aluminium tape: It keeps it somewhat cooler, but most importantly it isn't pushed away by the air flow from the heat gun.

  • Don't worry about damaging the chip. It seems very robust after using the heat gun and a soldering iron on it. When damaged: You can buy 5 others for 5€ on AliExpress.

  • Before programming the chip: Erase the chip, check whether it's blank and then reprogram it.

If I ever get allowed to post images, I'll post some snapshots.

(Last edited by Markismus on 14 Feb 2017, 22:52)

Did anyone submit the code to openwrt or ddwrt?   Also, is the router stable when using the applies patch?   Does everything work?

Thanks!

Bringel wrote:

Did anyone submit the code to openwrt or ddwrt?   Also, is the router stable when using the applies patch?   Does everything work?

Thanks!

No, ddwrt has no support as far as I know. OpenWrt corrupts eeprom. Only LEDE works.

Everything seems to work, but not 100% stable. I couldn't get two 2.4 different wifi running at the same time (one WPA2-EAP, another WPA2-PSK). Also from time to time my laptop looses internet via WiFi, I have to disconnect and reconnect... Not sure where the fault is, router or laptop... Another problem I encountered, sometimes I can't connect from one devices on wifi to another device on wifi (wifi to ethernet still works), so router reboot is necessary. But in general these things don't happen often and it works sufficiently well to use as my main router.

andrius wrote:
Bringel wrote:

Did anyone submit the code to openwrt or ddwrt?   Also, is the router stable when using the applies patch?   Does everything work?

Thanks!

No, ddwrt has no support as far as I know. OpenWrt corrupts eeprom. Only LEDE works.

Everything seems to work, but not 100% stable. I couldn't get two 2.4 different wifi running at the same time (one WPA2-EAP, another WPA2-PSK). Also from time to time my laptop looses internet via WiFi, I have to disconnect and reconnect... Not sure where the fault is, router or laptop... Another problem I encountered, sometimes I can't connect from one devices on wifi to another device on wifi (wifi to ethernet still works), so router reboot is necessary. But in general these things don't happen often and it works sufficiently well to use as my main router.

I went to LEDE's site and browsed their available downloads for devices.   They don't list a download for v5.... Only versions 1 through 4.    Is a firmware download available?

Does anybody figured out how to control switch LEDs through swconfig in v5?

swconfig dev mt7530 port 1 set led 6

says:

Unknown attribute "led"

I'd also like to mention that I really tried very hard but was unable to permanently brick my router. As long as you flash the device using Sercom Updater, TFTP or LEDE's sysupgrade, you can always put router into restore mode and unbrick it using Sercom Updater again. There's no need to open the case.

Also I was affected by Sercom Updater crash at 99% (on my Windows XP in VirtualBox it crashes every time). But then:

1. If Sercom Updater crashed at 99% when flashing LEDE, it will boot successfully but you won't be able to save any changes (they are lost after each reboot). You can fix it by flashing LEDE again via standard sysupgrade.

2. If Sercom Updater crashed at 99% when flashing stock firmware, the router is soft bricked. However it will start TFTP server after restart - automatically, you don't have to do any tricks. Then you can flash stock firmware again using standard TFTP instructions.

(Last edited by pamelus on 17 Mar 2017, 21:41)

Can someone share a stock bootloader for WNDR3700 v5.

(Last edited by areckifx on 23 Mar 2017, 21:31)

Hi,

after a long time, I come back to the business.
First of all, congratulations to all of you who made OpenWRT runnable on this board!

Recently, I started to work on this board again and I wanted to share some modifications I made.
1) LEDS:
I tweaked a bit the dts file to have all leds working, here is the complete file:

/dts-v1/;

#include "mt7621.dtsi"

/ {
    compatible = "mediatek,mt7621-eval-board","ralink,mt7621-soc";
    model = "Netgear WNDR3700v5";

    memory@0 {
        device_type = "memory";
        reg = <0x0 0x8000000>;
    };

    chosen {
        bootargs = "console=ttyS0,57600 maxcpus=2";
    };

    gpio-leds {
        compatible = "gpio-leds";

        wps {
            label = "wndr3700v5:green:wps";
            gpios = <&gpio0 12 1>;
        };

        wan {
            label = "wndr3700v5:green:wan";
            gpios = <&gpio0 13 1>;
        };

        usb {
            label = "wndr3700v5:green:usb";
            gpios = <&gpio0 15 1>;
        };

        wireless {
            label = "wndr3700v5:green:wireless";
            gpios = <&gpio0 16 1>;
        };

        power {
            label = "wndr3700v5:green:power";
            gpios = <&gpio0 18 1>;
        };
    };

    gpio-keys-polled {
        compatible = "gpio-keys-polled";
        #address-cells = <1>;
        #size-cells = <0>;
        poll-interval = <20>;

        wps {
            label = "wndr3700v5:wps";
            gpios = <&gpio0 7 0>;
            linux,code = <0x211>;
        };

        wifi {
            label = "wndr3700v5:wifi";
            gpios = <&gpio0 8 0>;
            linux,code = <0xf7>;
        };

        reset {
            label = "wndr3700v5:reset";
            gpios = <&gpio0 14 0>;
            linux,code = <0x198>;
        };
    };

    gpio_export {
        compatible = "gpio-export";
        #size-cells = <0>;

        usbpower {
            gpio-export,name = "usbpower";
            gpio-export,output = <1>;
            gpios = <&gpio0 10 1>;
        };
    };
};

&spi0 {
    status = "okay";

    m25p80@0 {
        #address-cells = <1>;
        #size-cells = <1>;
        compatible = "mx25l12805d";
        reg = <0>;
        linux,modalias = "m25p80", "w25q128";
        spi-max-frequency = <10000000>;

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

        partition@30000 {
            label = "u-boot-env";
            reg = <0x30000 0x10000>;
            read-only;
        };

        factory: partition@f30000 {
            label = "factory";
            reg = <0xf30000 0x10000>;
            read-only;
        };

        partition@50000 {
            label = "firmware";
            reg = <0x50000 0xee0000>;
        };
    };
};

&pcie {
    status = "okay";

    pcie0 {
        mt76@0,0 {
            reg = <0x0000 0 0 0 0>;
            device_type = "pci";
            mediatek,mtd-eeprom = <&factory 0x8000>;
            mediatek,2ghz = <0>;
        };
    };

    pcie1 {
        mt76@1,0 {
            reg = <0x0000 0 0 0 0>;
            device_type = "pci";
            mediatek,mtd-eeprom = <&factory 0x0000>;
            mediatek,5ghz = <0>;
        };
    };
};

&ethernet {
    mtd-mac-address = <&factory 0x0000000c>;
};

&pinctrl {
    state_default: pinctrl0 {
        gpio {
            ralink,group =  "rgmii2", "mdio", "wdt";
            ralink,function = "gpio";
        };
    };
};

It adds USB, WAN, WLAN leds support.

2) I updated my repo for the firmware builder --> https://github.com/Vic063/WNDR3700v5-firmware
This new version allows you to set a firmware version which starts from 1-9.
It is usefull in order to bypass the downgrade question when updating from the original Netgear firmware.
https://s22.postimg.org/6x10lxkdd/upgrade.png

Francis.

Welcome back Francis smile

Here is your dts using device tree bindings.

Do you plan to contribute to OpenWrt and/or LEDE ?

/dts-v1/;

#include "mt7621.dtsi"

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

/ {
    compatible = "mediatek,mt7621-eval-board","ralink,mt7621-soc";
    model = "Netgear WNDR3700v5";

    memory@0 {
        device_type = "memory";
        reg = <0x0 0x8000000>;
    };

    chosen {
        bootargs = "console=ttyS0,57600 maxcpus=2";
    };

    gpio-leds {
        compatible = "gpio-leds";

        wps {
            label = "wndr3700v5:green:wps";
            gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
        };

        wan {
            label = "wndr3700v5:green:wan";
            gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
        };

        usb {
            label = "wndr3700v5:green:usb";
            gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
        };

        wireless {
            label = "wndr3700v5:green:wireless";
            gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
        };

        power {
            label = "wndr3700v5:green:power";
            gpios = <&gpio0 18 GPIO_ACTIVE_HIGH>;
        };
    };

    gpio-keys-polled {
        compatible = "gpio-keys-polled";
        #address-cells = <1>;
        #size-cells = <0>;
        poll-interval = <20>;

        wps {
            label = "wndr3700v5:wps";
            gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
            linux,code = <KEY_WPS_BUTTON>;
        };

        wifi {
            label = "wndr3700v5:wifi";
            gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
            linux,code = <RF_KILL>;
        };

        reset {
            label = "wndr3700v5:reset";
            gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
            linux,code = <KEY_RESTART>;
        };
    };

    gpio_export {
        compatible = "gpio-export";
        #size-cells = <0>;

        usbpower {
            gpio-export,name = "usbpower";
            gpio-export,output = <1>;
            gpios = <&gpio0 10 1>;
        };
    };
};

&spi0 {
    status = "okay";

    m25p80@0 {
        #address-cells = <1>;
        #size-cells = <1>;
        compatible = "mx25l12805d";
        reg = <0>;
        linux,modalias = "m25p80", "w25q128";
        spi-max-frequency = <10000000>;

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

        partition@30000 {
            label = "u-boot-env";
            reg = <0x30000 0x10000>;
            read-only;
        };

        factory: partition@f30000 {
            label = "factory";
            reg = <0xf30000 0x10000>;
            read-only;
        };

        partition@50000 {
            label = "firmware";
            reg = <0x50000 0xee0000>;
        };
    };
};

&pcie {
    status = "okay";

    pcie0 {
        mt76@0,0 {
            reg = <0x0000 0 0 0 0>;
            device_type = "pci";
            mediatek,mtd-eeprom = <&factory 0x8000>;
            mediatek,2ghz = <0>;
        };
    };

    pcie1 {
        mt76@1,0 {
            reg = <0x0000 0 0 0 0>;
            device_type = "pci";
            mediatek,mtd-eeprom = <&factory 0x0000>;
            mediatek,5ghz = <0>;
        };
    };
};

&ethernet {
    mtd-mac-address = <&factory 0x0000000c>;
};

&pinctrl {
    state_default: pinctrl0 {
        gpio {
            ralink,group =  "rgmii2", "mdio", "wdt";
            ralink,function = "gpio";
        };
    };
};

(Last edited by ldpinney on 29 Mar 2017, 21:43)

Hi,

yeah I got an old Asus router which works with OpenWRT but I think it's time to test LEDE on it.
I'll also try to continue to support the Netgear WNDR3700v5 but I need to get one for myself, the one I was working on is not my property.

We will see... smile

Hello everyone,
Just to make sure, does Francis image have LuCI and can it be used daily? Or it has serious limitations still?

Thanks

Hi,
owner of a WNDR3700v5. it we'll be great to have it full in openwrt. Any progress will be very very wellcome.
Thanks for your great work

pazosi wrote:

Hi,
owner of a WNDR3700v5. it we'll be great to have it full in openwrt. Any progress will be very very welcome.
Thanks for your great work

There were no commits to openwrt since early February (https://github.com/openwrt/openwrt/commits/master). I think just move to LEDE. I doubt there will be another openwrt release (but this is my speculation, I'm not a member of openwrt project)...

(Last edited by andrius on 26 Apr 2017, 01:04)

GOT IT! Finally i have LEDE with the graphical interface working, following hikey instructions. No need for Serial cable or tftp client. Just two tips in case somebody lime me (with poor linux knowlege) have trouble in the procedure:

1. If the original firmware change your ip subnetwork when you connect the wan interface (needed to wget download the bootloader from internet), remember to revert your computer to 192.168.1.1 before flash (step 3), because this is the default listening address of the new bootloader.

2. You will need to change your download location to "tmp" because the filesystem is "only read": cd tmp

3. Dont forget to hold the reset before and 10 secs after reboot to put the router in flash mode, if not you will have the original firmware and interface over and over again (it hapened two times to me that I let the router reboot and then press the reset). If you do it wright, when the router is in flash mode yo'll get the Pandora interface in the browser asking you for the squashfs-sysupgrade.bin file.

I need to try LEDE and Luci interface but one thing that I mise now is the lights, because after the boot, if you dont have a LAN ethernet cable connected all the leds are off: very ecological but not practical.

Thanks a lot again hikey and everybody for your effort.

Hi everyone,

I've successfully switched my router to LEDE too smile Thanks for the great work.

For people who wants to get a factory image, I've made this repository. I hope it will help:
hxxps://github.com/alexvanbelle/wndr3700v5

pazosi wrote:

GOT IT! Finally i have LEDE with the graphical interface working, following hikey instructions. No need for Serial cable or tftp client. Just two tips in case somebody lime me (with poor linux knowlege) have trouble in the procedure:

1. If the original firmware change your ip subnetwork when you connect the wan interface (needed to wget download the bootloader from internet), remember to revert your computer to 192.168.1.1 before flash (step 3), because this is the default listening address of the new bootloader.

2. You will need to change your download location to "tmp" because the filesystem is "only read": cd tmp

3. Dont forget to hold the reset before and 10 secs after reboot to put the router in flash mode, if not you will have the original firmware and interface over and over again (it hapened two times to me that I let the router reboot and then press the reset). If you do it wright, when the router is in flash mode yo'll get the Pandora interface in the browser asking you for the squashfs-sysupgrade.bin file.

I need to try LEDE and Luci interface but one thing that I mise now is the lights, because after the boot, if you dont have a LAN ethernet cable connected all the leds are off: very ecological but not practical.

Thanks a lot again hikey and everybody for your effort.

Hello.
This method does not work for me. This means that after restarting the reset button with the reset button for 10 seconds, no page is started at 192.168.1.1.

Hi areckifx,

Have you checked your computer network configuration? It has to be with ha fixed address (not in DHCP) in the same subnetwork as the 3700 (192.168.1.X).

pazosi wrote:

Hi areckifx,

Have you checked your computer network configuration? It has to be with ha fixed address (not in DHCP) in the same subnetwork as the 3700 (192.168.1.X).

I have set up a fixed IP 192.168.1.2. It does not work.

alexvan wrote:

Hi everyone,

I've successfully switched my router to LEDE too smile Thanks for the great work.

For people who wants to get a factory image, I've made this repository. I hope it will help:
hxxps://github.com/alexvanbelle/wndr3700v5

It is my first post, basically to say, THANKXXX to alexvan and everyone sharing their knowledge and time.

I've installed "alexvan' factory image" (following also the recommendation to upgrade it !!) in one of my V5's  and is working fine. After some required resets, tricks and tuning, the current configuration is "5 Ghz Wifi to LAN ports" repeater bridge, to avoid additional Cat5e cables.

Really, once LEDE (or Open-Wrt) is inside it is a nice and useful piece of Smart-HW.

Cheers
BelmY

BelmY wrote:
alexvan wrote:

Hi everyone,

I've successfully switched my router to LEDE too smile Thanks for the great work.

For people who wants to get a factory image, I've made this repository. I hope it will help:
hxxps://github.com/alexvanbelle/wndr3700v5

It is my first post, basically to say, THANKXXX to alexvan and everyone sharing their knowledge and time.

I've installed "alexvan' factory image" (following also the recommendation to upgrade it !!) in one of my V5's  and is working fine. After some required resets, tricks and tuning, the current configuration is "5 Ghz Wifi to LAN ports" repeater bridge, to avoid additional Cat5e cables.

Really, once LEDE (or Open-Wrt) is inside it is a nice and useful piece of Smart-HW.

Cheers
BelmY

Nice to see that it helped. Thanks for the feedback.

Thanks to everyone doing all this work!

I bought a WNDR3700v5 (didn't do enough research to see there was no openwrt firmware).
Found this forum and flashed the factory image from github.com/alexvanbelle/wndr3700v5.
It booted and i got the GUI.

Started making configuration changes (like setting a root password).
Then rebooted.

My changes get lost.

Is there something I need to do to make my changes persistent across reboots?

Thanks in advance.

MoeMaravilla wrote:

Thanks to everyone doing all this work!

I bought a WNDR3700v5 (didn't do enough research to see there was no openwrt firmware).
Found this forum and flashed the factory image from github.com/alexvanbelle/wndr3700v5.
It booted and i got the GUI.

Started making configuration changes (like setting a root password).
Then rebooted.

My changes get lost.

Is there something I need to do to make my changes persistent across reboots?

Thanks in advance.

Hi MoeMaravilla,
Thanks for the feedback. I had the same issue. Just do another sysupgrade and you should be fine (wget the official firmware and command sysupgrade on it). Just FYI, it was mentioned in the known issues smile
Alex

Hi Guys,

Thanks a lot for your support during these years ! Now it works pretty fine for me with your huge work !

Just a question regarding LEDE :

I am not able with the sysupgrade from LEDE to enable OPEN-SSL for strongswan package, so I have tried to do my home build, it works but I have this issue :

opkg install strongswan-full
Installing strongswan-full (5.5.2-1) to root...
Downloading hxxp://downloads.lede-project.org/snapshots/packages/mipsel_24kc/packages/strongswan-full_5.5.2-1_mipsel_24kc.ipk
Collected errors:
* satisfy_dependencies_for: Cannot satisfy the following dependencies for strongswan-full:
*     kernel (= 4.4.61-1-82b8e3c75b7b1706e9098a1ddd110652) *     kernel (= 4.4.61-1-82b8e3c75b7b1706e9098a1ddd110652) *     kernel (= 4.4.61-1-82b8e3c75b7b1706e9098a1ddd110652) *
* opkg_install_cmd: Cannot install package strongswan-full.


Do you think that we can't create our homebuild with your work ?

Thanks a lot for your help as always.

Kind Regards,

Spliter

Hi MoeMaravilla,
Thanks for the feedback. I had the same issue. Just do another sysupgrade and you should be fine (wget the official firmware and command sysupgrade on it). Just FYI, it was mentioned in the known issues smile
Alex

Alex,

Thank you so much for the hints... I have it working now.
Also, thank you for the git repository.

For anyone trying to reproduce this...
1) Install the "factory" image form Alex's repo using the original factory firmware.
     This allows you to gain command-line access to the device.
     (hxxps://github.com/alexvanbelle/wndr3700v5/tree/master/readytouse/lede-17.img)
2) Install the latest lede firmware image (17.01.1 as of this writing).
     Upload the file to /tmp in your device.
     # cd /tmp
     # sysupgrade <file>
     (hxxps://downloads.lede-project.org/releases/17.01.1/targets/ramips/mt7621/lede-17.01.1-ramips-mt7621-wndr3700v5-squashfs-sysupgrade.bin)