ZBT WG1608 keeps restarting every 1-2 minutes

Hi.

I am very new to openwrt.
I have the ZBT wg1608 router with the quectel rm502q-ae 5g modem installed in the m.2 slot of the router. I was running the stock firmware which is the old lede 17.01. I installed the latest nightly openwrt using the GUI. I didn’t choose the option to keep settings. Everything seemed to install fine but while configuring the newly installed openwrt, the router keeps on restarting every a minute or two. I searched online and found that it is perhaps because the router has a hardware watchdog. I don’t know if this is the real reason or not. Is there a solution to disable this watchdog in the firmware so that I could setup the router without constantly being interrupted by the reboots? Thanks!

Why did you go with a Snapshot build instead of the stable 22.03 release? Did you try 22.03 at all?

Hi. Thanks for the help. I tried this build tonight but I got the same result. Thanks!

The WG1608 has a hardware watchdog and the router DTS file has nothing in to handle that. This will cause a reboot after about a minute. Whoever added support must have had an older version that had this disabled.

GPIO 3 needs to be pulsed regularly to reset the watchdog. This can be added to the DTS file (see the WG1602 DTS for how this is done) or by a script that starts when the router boots up.

2 Likes

Thank you so much for the explanation and the hints but I am afraid I won’t be able to do this on my own as it is beyond my skill level. If someone could please share the script or how to edit the DTS file and make an image would be much appreciated. Thanks!

This only works if you are building your firmware with an OpenWrt build system. From the sounds of it you aren't.

To use this you need to know how to access the router's file system via SSH and edit one file and add another. A program like WinSCP works very well for this.

Otherwise the fix can't be done.

Hi. I can ssh into the router and edit files this is easy as linux fedora is my main OS. I never tried to build an openwrt firmware but I could read how to.

The script that pulses GPIO 3 on and off would go something like this:

#!/bin/sh

echo 3 > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio3/direction

while 1:
echo 1 > /sys/class/gpio/gpio3/value
sleep 20
echo 0 > /sys/class/gpio/gpio3/value
sleep 20
wend
1 Like

Thank you for the script. Is this just an example or is it correct the gpio should be 3? Thanks!

It is a working script with the correct GPIO.

You need to start this in it's own thread as it never exits so edit /etc/rc.local or use System->Startup and Local Startup to add this.

/etc/watchdog.sh &

assuming that you put the above script in /etc/watchdog.sh. The watchdog script needs to have permissions set to execute as well.

You need to be fast when copying the watchdog file over and adding to rc.local as you only have about a minute before it reboots.

1 Like