diff --git a/docs/user/supported_devices.rst b/docs/user/supported_devices.rst
index 3c23eda096ae20d3e3b2a9a4bafc6cd6c5b60965..690fa10cf5a6d47a92e0dbb92471c16790f2b3f1 100644
--- a/docs/user/supported_devices.rst
+++ b/docs/user/supported_devices.rst
@@ -223,6 +223,10 @@ ipq40xx-generic
   - FRITZ!Box 4040 [#avmflash]_
   - FRITZ!Repeater 1200 [#eva_ramboot]_
 
+* EnGenius
+
+  - ENS620EXT
+
 * GL.iNet
 
   - GL-B1300
diff --git a/package/gluon-core/luasrc/usr/lib/lua/gluon/platform.lua b/package/gluon-core/luasrc/usr/lib/lua/gluon/platform.lua
index a16c7036173746e681934111e9c8cfe475d408c4..a63e97cc7e620363ed2a8ace7770c680a4023372 100644
--- a/package/gluon-core/luasrc/usr/lib/lua/gluon/platform.lua
+++ b/package/gluon-core/luasrc/usr/lib/lua/gluon/platform.lua
@@ -47,6 +47,9 @@ function M.is_outdoor_device()
 
 	elseif M.match('ath79', 'generic', {'devolo,dvl1750x'}) then
 		return true
+
+	elseif M.match('ipq40xx', 'generic', {'engenius,ens620ext'}) then
+		return true
 	end
 
 	return false
diff --git a/targets/ipq40xx-generic b/targets/ipq40xx-generic
index 8df11ea24a075e8d82a302957c37a75700c7dd29..d56677193bc6a827d4ca0a7633321034c6aaa0a1 100644
--- a/targets/ipq40xx-generic
+++ b/targets/ipq40xx-generic
@@ -43,6 +43,17 @@ device('avm-fritz-repeater-1200', 'avm_fritzrepeater-1200', {
 })
 
 
+-- EnGenius
+
+device('engenius-ens620ext', 'engenius_ens620ext', {
+	factory = false,
+	extra_images = {
+		{'-squashfs-factory_30', '-factory_fw30', '.bin'},
+		{'-squashfs-factory_35', '-factory_fw35', '.bin'},
+	},
+})
+
+
 -- GL.iNet
 
 device('gl.inet-gl-b1300', 'glinet_gl-b1300', {