diff --git a/target/linux/ramips/base-files/etc/board.d/01_leds b/target/linux/ramips/base-files/etc/board.d/01_leds
index 213f2edc26e457008598b6557c90086381e7bf74..d11d9c3df87a39e83e382332158c4bd9839ee4e4 100755
--- a/target/linux/ramips/base-files/etc/board.d/01_leds
+++ b/target/linux/ramips/base-files/etc/board.d/01_leds
@@ -395,10 +395,11 @@ zbt-wa05)
 zbt-we2026)
 	set_wifi_led "$board:green:wlan"
 	;;
-zbt-we826)
-	ucidef_set_led_default "power" "power" "$board:green:power" "1"
-	set_wifi_led "$board:green:wifi"
-	set_usb_led "$board:green:usb"
+zbt-we826-16M|\
+zbt-we826-32M)
+	ucidef_set_led_default "power" "power" "zbt-we826:green:power" "1"
+	set_wifi_led "zbt-we826:green:wifi"
+	set_usb_led "zbt-we826:green:usb"
 	;;
 zbt-wr8305rt)
 	ucidef_set_led_default "power" "power" "$board:green:sys" "1"
diff --git a/target/linux/ramips/base-files/etc/board.d/02_network b/target/linux/ramips/base-files/etc/board.d/02_network
index 016d293cf8a3f53009f0a5b89d7cb82e3b346036..80a3bc2c51b74845f19f29fd911d90bec476c94a 100755
--- a/target/linux/ramips/base-files/etc/board.d/02_network
+++ b/target/linux/ramips/base-files/etc/board.d/02_network
@@ -112,7 +112,8 @@ ramips_setup_interfaces()
 	youku-yk1|\
 	zbt-ape522ii|\
 	zbt-we1326|\
-	zbt-we826|\
+	zbt-we826-16M|\
+	zbt-we826-32M|\
 	zbt-wg2626|\
 	zbt-wg3526-16M|\
 	zbt-wg3526-32M|\
diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh
index 8b5e260f1f45273f3d22d17a3725c2058dedd508..f2aca340ddef65b34d29e69c0a8e4cf6a4252ec2 100644
--- a/target/linux/ramips/base-files/etc/diag.sh
+++ b/target/linux/ramips/base-files/etc/diag.sh
@@ -189,8 +189,7 @@ get_status_led() {
 		status_led="$board:amber:system"
 		;;
 	oy-0001|\
-	sl-r7205|\
-	zbt-we826)
+	sl-r7205)
 		status_led="$board:green:wifi"
 		;;
 	psr-680w)
@@ -273,6 +272,10 @@ get_status_led() {
 	zbt-cpe102)
 		status_led="$board:green:4g-0"
 		;;
+	zbt-we826-16M|\
+	zbt-we826-32M)
+		status_led="zbt-we826:green:wifi"
+		;;
 	zbt-wg3526-16M|\
 	zbt-wg3526-32M)
 		status_led="zbt-wg3526:green:status"
diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh
index 3342a8f0c40b673199b41601ca78e3087c321e59..87cb7ffb91271617bcd620eac21bdd8927ae49e4 100755
--- a/target/linux/ramips/base-files/lib/ramips.sh
+++ b/target/linux/ramips/base-files/lib/ramips.sh
@@ -652,8 +652,11 @@ ramips_board_detect() {
 	*"ZBT-WE2026")
 		name="zbt-we2026"
 		;;
-	*"ZBT-WE826")
-		name="zbt-we826"
+	*"ZBT-WE826 (16M)")
+		name="zbt-we826-16M"
+		;;
+	*"ZBT-WE826 (32M)")
+		name="zbt-we826-32M"
 		;;
 	*"ZBT-WG2626")
 		name="zbt-wg2626"
diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh
index 8c7f9591cebe2e09f1b18ab7b68360aaa6b69d9c..adad8dae75ef60459a30851a69aa9bcc1da55bd2 100755
--- a/target/linux/ramips/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh
@@ -193,7 +193,8 @@ platform_check_image() {
 	zbt-wa05|\
 	zbt-we1326|\
 	zbt-we2026|\
-	zbt-we826|\
+	zbt-we826-16M|\
+	zbt-we826-32M|\
 	zbt-wg2626|\
 	zbt-wg3526-16M|\
 	zbt-wg3526-32M|\
diff --git a/target/linux/ramips/dts/ZBT-WE826-16M.dts b/target/linux/ramips/dts/ZBT-WE826-16M.dts
new file mode 100644
index 0000000000000000000000000000000000000000..de3c4c135df25e545c487e57c6e94c143bc6674b
--- /dev/null
+++ b/target/linux/ramips/dts/ZBT-WE826-16M.dts
@@ -0,0 +1,12 @@
+/dts-v1/;
+
+#include "ZBT-WG3526.dtsi"
+
+/ {
+	compatible = "zbtlink,zbt-we826-16m", "zbtlink,zbt-we826", "ralink,mt7620a-soc";
+	model = "ZBT-WE826 (16M)";
+};
+
+&firmware {
+	reg = <0x50000 0xfb0000>;
+};
\ No newline at end of file
diff --git a/target/linux/ramips/dts/ZBT-WE826-32M.dts b/target/linux/ramips/dts/ZBT-WE826-32M.dts
new file mode 100644
index 0000000000000000000000000000000000000000..c8383cbb6480182ad1cef1e8d8bdf9db8a4ced40
--- /dev/null
+++ b/target/linux/ramips/dts/ZBT-WE826-32M.dts
@@ -0,0 +1,12 @@
+/dts-v1/;
+
+#include "ZBT-WG3526.dtsi"
+
+/ {
+	compatible = "zbtlink,zbt-we826-32m", "zbtlink,zbt-we826", "ralink,mt7620a-soc";
+	model = "ZBT-WE826 (32M)";
+};
+
+&firmware {
+	reg = <0x50000 0x1fb0000>;
+};
\ No newline at end of file
diff --git a/target/linux/ramips/dts/ZBT-WE826.dts b/target/linux/ramips/dts/ZBT-WE826.dtsi
similarity index 92%
rename from target/linux/ramips/dts/ZBT-WE826.dts
rename to target/linux/ramips/dts/ZBT-WE826.dtsi
index 8a453bca3236fcca6a0cae2240b46eba88207106..62ea4195a8579a0dd0a5cc4ce389cdc52a945f3f 100644
--- a/target/linux/ramips/dts/ZBT-WE826.dts
+++ b/target/linux/ramips/dts/ZBT-WE826.dtsi
@@ -5,9 +5,6 @@
 #include <dt-bindings/input/input.h>
 
 / {
-	compatible = "zbtlink,zbt-we826", "ralink,mt7620a-soc";
-	model = "ZBT-WE826";
-
 	chosen {
 		bootargs = "console=ttyS0,115200";
 	};
@@ -81,9 +78,8 @@
 			read-only;
 		};
 
-		partition@50000 {
+		firmware: partition@50000 {
 			label = "firmware";
-			reg = <0x50000 0xfb0000>;
 		};
 	};
 };
diff --git a/target/linux/ramips/image/mt7620.mk b/target/linux/ramips/image/mt7620.mk
index 83c9a7f0a0e96d03c12c4ce3c386055fc28b10c6..71b651cda641d973ac2be44eef21342220329449 100644
--- a/target/linux/ramips/image/mt7620.mk
+++ b/target/linux/ramips/image/mt7620.mk
@@ -484,13 +484,22 @@ define Device/zbt-we2026
 endef
 TARGET_DEVICES += zbt-we2026
 
-define Device/zbt-we826
-  DTS := ZBT-WE826
+define Device/zbt-we826-16M
+  DTS := ZBT-WE826-16M
   IMAGE_SIZE := $(ralink_default_fw_size_16M)
-  DEVICE_TITLE := Zbtlink ZBT-WE826
+  SUPPORTED_DEVICES += zbt-we826
+  DEVICE_TITLE := Zbtlink ZBT-WE826 (16M)
   DEVICE_PACKAGES := kmod-usb2 kmod-usb-ohci kmod-mt76 kmod-sdhci-mt7620 
 endef
-TARGET_DEVICES += zbt-we826
+TARGET_DEVICES += zbt-we826-16M
+
+define Device/zbt-we826-32M
+  DTS := ZBT-WE826-32M
+  IMAGE_SIZE := $(ralink_default_fw_size_32M)
+  DEVICE_TITLE := Zbtlink ZBT-WE826 (32M)
+  DEVICE_PACKAGES := kmod-usb2 kmod-usb-ohci kmod-mt76 kmod-sdhci-mt7620
+endef
+TARGET_DEVICES += zbt-we826-32M
 
 define Device/zbt-wr8305rt
   DTS := ZBT-WR8305RT