It is possible to add the new device ZBT WG108?

Hi, I have a ZBT WG108, it is sold on the internet as an openwrt router with various names.


You can add it among the supported devices?
The hardware specifications are below:

Product number ZBT-WG108 (
but it is renamed by each seller)

Hardware
Cpu MT7621A 880Mhz
Flash:SPI 16MB
Ram:DDR3 256MB
Wifi 2.4Gz mediatek 7603
Wifi 5 Ghz mediatek 7612
Ethernet port provide 5*10/100/1000Mbps Auto-MDI/MDIX
USB 2.0 1 port
SD interface 1
LED PWR,2G,5G,WAN,LAN1,LAN2,LAN3,LAN4
1 RESET button
Power Adapter DC 12V 1A ( if you have a problem of wifi stability change in 2A!! )

I have made the file dts

/dts-v1/;

#include "mt7621.dtsi"

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

/ {
	compatible = "zbtlink,zbt-wg108", "mediatek,mt7621-soc";
	model = "Zbtlink ZBT-WG108";

	aliases {
		label-mac-device = &wifi1;
	};
	
	memory@0 { device_type = "memory";
			reg = <0x0 0x10000000>;
	};	 

	chosen {
		bootargs = "console=ttyS0,115200";
	};
	
	palmbus: palmbus@1E000000 {
		i2c@900 {
			status = "okay";
		};
	};

	keys {
		compatible = "gpio-keys";

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


&spi0 {
	status = "okay";

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

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

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

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

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

			partition@50000 {
				compatible = "denx,uimage";
				label = "firmware";
				reg = <0x50000 0xfb0000>;
			};
		};
	};
};

&ethernet {
	mtd-mac-address = <&factory 0xe000>;
	mtd-mac-address-increment = <(-2)>;
};

&pcie {
	status = "okay";
};

&pcie0 {
	wifi0: mt76@0,0 {
		reg = <0x0000 0 0 0 0>;
		mediatek,mtd-eeprom = <&factory 0x8000>;
		mtd-mac-address = <&factory 0x8004>;
		ieee80211-freq-limit = <5000000 6000000>;
	};
};

&pcie1 {
	wifi1: mt76@0,0 {
		reg = <0x0000 0 0 0 0>;
		mediatek,mtd-eeprom = <&factory 0x0000>;
		mtd-mac-address-increment = <(1)>;
		ieee80211-freq-limit = <2400000 2500000>;
	};
};

&sdhci {
	status = "okay";
};

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

NB. if remove memory0, in boot time the kernel go to panic and restart

/proc# cat cpuinfo 
system type		: MediaTek MT7621 ver:1 eco:3
machine			: Zbtlink ZBT-WG108
processor		: 0
cpu model		: MIPS 1004Kc V2.15
BogoMIPS		: 665.19
wait instruction	: yes
microsecond timers	: yes
tlb_entries		: 32
extra interrupt vector	: yes
hardware watchpoint	: yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
isa			: mips1 mips2 mips32r1 mips32r2
ASEs implemented	: mips16 dsp mt
Options implemented	: tlb 4kex 4k_cache prefetch mcheck ejtag llsc pindexed_dcache userlocal vint perf_cntr_intr_bit cdmm nan_legacy nan_2008 perf
shadow register sets	: 1
kscratch registers	: 0
package			: 0
core			: 0
VPE			: 0
VCED exceptions		: not available
VCEI exceptions		: not available

processor		: 1
cpu model		: MIPS 1004Kc V2.15
BogoMIPS		: 665.19
wait instruction	: yes
microsecond timers	: yes
tlb_entries		: 32
extra interrupt vector	: yes
hardware watchpoint	: yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
isa			: mips1 mips2 mips32r1 mips32r2
ASEs implemented	: mips16 dsp mt
Options implemented	: tlb 4kex 4k_cache prefetch mcheck ejtag llsc pindexed_dcache userlocal vint perf_cntr_intr_bit cdmm nan_legacy nan_2008 perf
shadow register sets	: 1
kscratch registers	: 0
package			: 0
core			: 0
VPE			: 1
VCED exceptions		: not available
VCEI exceptions		: not available

processor		: 2
cpu model		: MIPS 1004Kc V2.15
BogoMIPS		: 665.19
wait instruction	: yes
microsecond timers	: yes
tlb_entries		: 32
extra interrupt vector	: yes
hardware watchpoint	: yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
isa			: mips1 mips2 mips32r1 mips32r2
ASEs implemented	: mips16 dsp mt
Options implemented	: tlb 4kex 4k_cache prefetch mcheck ejtag llsc pindexed_dcache userlocal vint perf_cntr_intr_bit cdmm nan_legacy nan_2008 perf
shadow register sets	: 1
kscratch registers	: 0
package			: 0
core			: 1
VPE			: 0
VCED exceptions		: not available
VCEI exceptions		: not available

processor		: 3
cpu model		: MIPS 1004Kc V2.15
BogoMIPS		: 665.19
wait instruction	: yes
microsecond timers	: yes
tlb_entries		: 32
extra interrupt vector	: yes
hardware watchpoint	: yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
isa			: mips1 mips2 mips32r1 mips32r2
ASEs implemented	: mips16 dsp mt
Options implemented	: tlb 4kex 4k_cache prefetch mcheck ejtag llsc pindexed_dcache userlocal vint perf_cntr_intr_bit cdmm nan_legacy nan_2008 perf
shadow register sets	: 1
kscratch registers	: 0
package			: 0
core			: 1
VPE			: 1
VCED exceptions		: not available
VCEI exceptions		: not available

cat iomem
00000000-0fffffff : System RAM
  00001000-004f14a7 : Kernel code
  004f14a8-005cafff : Kernel data
1e000000-1e0000ff : /palmbus@1E000000/sysc@0
1e000100-1e0001ff : /palmbus@1E000000/wdt@100
1e000600-1e0006ff : /palmbus@1E000000/gpio@600
1e000b00-1e000bff : /palmbus@1E000000/spi@b00
1e000c00-1e000cff : serial
1e005000-1e005fff : /palmbus@1E000000/memc@5000
1e100000-1e10ffff : /ethernet@1e100000
1e110000-1e117fff : /gsw@1e110000
1e130000-1e133fff : /sdhci@1E130000
1e1c0000-1e1c0fff : mac
1e1d0700-1e1d07ff : ippc
60000000-6fffffff : /pcie@1e140000
  60000000-600fffff : PCI Bus 0000:01
    60000000-600fffff : 0000:01:00.0
      60000000-600fffff : 0000:01:00.0
  60100000-601fffff : PCI Bus 0000:01
    60100000-6010ffff : 0000:01:00.0
  60200000-602fffff : PCI Bus 0000:02
    60200000-602fffff : 0000:02:00.0
      60200000-602fffff : 0000:02:00.0
  60300000-6030ffff : 0000:00:00.0
  60310000-6031ffff : 0000:00:01.0

cat mtd
dev:    size   erasesize  name
mtd0: 00030000 00010000 "u-boot"
mtd1: 00010000 00010000 "u-boot-env"
mtd2: 00010000 00010000 "factory"
mtd3: 00fb0000 00010000 "firmware"
mtd4: 001e3424 00010000 "kernel"
mtd5: 00dccbdc 00010000 "rootfs"
mtd6: 00ad0000 00010000 "rootfs_data"

Thank you so much !!
Kindly regards

Interesting device :slight_smile:

For sure it can be added, but the guy who adds a new device must own this device. So i think this would be you.
https://openwrt.org/docs/guide-developer/adding_new_device

If i compare the specs and the device tree, there are several things missing... USB, LEDs and probably other things...

Hi juppin ,
thank you for your reply

Wow !! .. I would be sincerely honored of this ... I'm a beginner ... I believe that I will have to read various developer guides now!! :smile:

exact , there is still a long way to go ...

1 Like

Feel free to ask further questions here if you need further assistance.

Hi @giorgioladu,

I just received a similar device. It's very good to know that someone is working to port OpenWrt for this device and I'm willing to help in any way I can :slightly_smiling_face:.

Btw, looking at the above I assumed that you have an OpenWrt firmware running on the router. May I know how you managed to install it in the first place?

My WG108 came preinstalled with ZBT-OS fimrware and it doesn't support flashing an OpenWrt firmware. I have tried to boot into the uboot recovery mode (the reset button trick), but the Breed bootloader web interface/telnet can only be accessible for a split second, which is very frustrating :slightly_frowning_face:.

Thank you so much!

Hi @freemyrouter,
nice to meet you :slight_smile: ... for the moment I don't have time to create a version for WG108.

Doing various tests I find that you can install the version 19.07-RC2 of the firmware for the model we1326 (zbt-we1326-squashfs-sysupgrade.bin)

Flash Firmware

  1. Connect an Ethernet cable from the router LAN port 1 to your PC.
  2. set the computer TCP/IP in to static IP 192.168.1.5, Subnet mask into 255.255.255.0, Gateway 192.168.1.1
  3. position the router vertically, with the reset button and the power plug facing upwards
  4. remove power plug
  5. Press and hold the reset button on the rear of the router (and don’t let go) and plug the power back in 6) count to 20 ( you will see the led of lan1 flashing )
    release the reset button
  6. Open your web browser to 192.168.1.1
    You see a mod version of u-boot ( github pepe2k/u-boot_mod )
  7. install firmware file zbt-we1326-squashfs-sysupgrade.bin version 19.07-RC2
    [
    almost everything works, has problems with the LEDs of the wifi, and does not read all the sd cards (some does not read them)
    ]

after flashing, it will make at least two reboots ... leave it connected to the power and in the meantime set the pc for the automatic configuration of the ip

Remember During uploading time,don’t move or power off the router!! Otherwise will cause the router dead !!

good luck :wink:

PS the problem with the ZBT-OS firmware is that it has many open ports (which I don't know which servers run and how to control them) it also has various hidden remote control functions :frowning: :frowning:

1 Like

Thanks for the instructions! They are extremely helpful.

I will try them and will report back on the findings :slightly_smiling_face:.

Hello @giorgioladu, @freemyrouter.
We have tested the latest stable version of openwrt firmware 19.07.2 on the wg108 router from the official openwrt page at the following link:
https://downloads.openwrt.org/releases/19.07.2/targets/ramips/mt7621/openwrt-19.07.2-ramips-mt7621-zbt-we1326-squashfs-sysupgrade.bin

It works correctly on the Wg108 router we only found a problem with the wifi modules the wifi driver does not increase the output power.

There is poor performance in both wifi modules. This problem turns on the mt7603 2.4ghz and the mt7612 5ghz.

Do you have a wifi driver for openwrt to solve this problem in the Wg108 router?
regards

mt76 is the only driver provided and supported for this hardware in OpenWrt, if you aren't happy about the performance you'll have to get involved with the upstream development (which OpenWrt is following quite closely, at least in master).

Hello, I installed the compatible firmware for the zbt-wg108 router "openwrt_ZBT-WE1326_V7" and the 2.4Ghz and 5Ghz wifi modules work correctly. This firmware runs on Linux kernel 3.10.
https://drive.google.com/drive/folders/1ZFfQQ-7KYNgKc53z_G3_8BOW8Lcl0oEp

Extract the drivers (.ko) of the wifi modules to test in the openwrt 4.14 kernel "openwrt-19.07.2-ramips-mt7621-zbt-we1326-squashfs-sysupgrade.bin" and the problem of tx power remains.

I am attaching the firmware files for possible help to solve this problem.
regards

Used this method, working great so far.
Maxing my 350mbit internet connection over 5G wifi

Though having odd 2.4GHz issues, many IOT/ESP8266 devices won't connect. But they connect fine to my OpenWRT BT HH5A.

Have to use that for 2.4GHz for the time being.

Hey there!
Should I place these files in the staging_dir ? or in the build_dir ?

Thanks!

Did you find a solution regarding WiFi problems on the WG108 ? I am considering to buy this device, as it has very good resources for its price. But without reasonable wireless its no good.