diff --git a/docs/user/supported_devices.rst b/docs/user/supported_devices.rst
index 1859a6aa298d3f6f16f515090a43d7623034a40b..3fb0ed67a2955b411db45c7239832517fb150a21 100644
--- a/docs/user/supported_devices.rst
+++ b/docs/user/supported_devices.rst
@@ -306,6 +306,7 @@ mediatek-filogic
 
 * Cudy
 
+  - AP3000 Outdoor (v1)
   - WR3000 (v1, v2, v3)
 
 * GL.iNet
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 014e516c43968fe117065f0963d9ddae6524b7dd..2241ac9ac51ff635680c98e928e7a86a52e79646 100644
--- a/package/gluon-core/luasrc/usr/lib/lua/gluon/platform.lua
+++ b/package/gluon-core/luasrc/usr/lib/lua/gluon/platform.lua
@@ -64,6 +64,11 @@ function M.is_outdoor_device()
 	}) then
 		return true
 
+	elseif M.match('mediatek', 'filogic', {
+		'cudy,ap3000outdoor-v1'
+	}) then
+		return true
+
 	elseif M.match('ramips', 'mt7621', {
 		'wavlink,ws-wn572hp3-4g',
 		'zyxel,nwa55axe',
diff --git a/targets/mediatek-filogic b/targets/mediatek-filogic
index 9165148b937449cf5d6038f875beff2c40efab31..f9c72046bf0a6150f4667e277e695ad8cb019b48 100644
--- a/targets/mediatek-filogic
+++ b/targets/mediatek-filogic
@@ -11,6 +11,10 @@ device('asus-tuf-ax6000', 'asus_tuf-ax6000', {
 
 -- Cudy
 
+device('cudy-ap3000-outdoor-v1', 'cudy_ap3000outdoor-v1', {
+	factory = false,
+})
+
 device('cudy-wr3000-v1', 'cudy_wr3000-v1', {
 	factory = false,
 })