diff --git a/controllers/advatek.xcontroller b/controllers/advatek.xcontroller
index 11adf5c019..8c0f2264e9 100644
--- a/controllers/advatek.xcontroller
+++ b/controllers/advatek.xcontroller
@@ -41,7 +41,7 @@
96
- 4
+ 8
1
512
3060
@@ -115,7 +115,7 @@
96
- 16
+ 32
4
512
3060
diff --git a/xLights/controllers/Pixlite16.cpp b/xLights/controllers/Pixlite16.cpp
index 99a7433016..f0a1e9ee98 100644
--- a/xLights/controllers/Pixlite16.cpp
+++ b/xLights/controllers/Pixlite16.cpp
@@ -889,6 +889,28 @@ bool Pixlite16::SetOutputs(ModelManager* allmodels, OutputManager* outputManager
logger_base.debug(check);
+ // Handle varying maximum pixels based on expansion mode
+ int maxPixels = 0;
+ if (_config._numOutputs == 4 || _config._numOutputs == 8) {
+ // 4 board
+ if (cud.GetMaxPixelPort() > 4) {
+ maxPixels = 510;
+ }
+ else {
+ maxPixels = 1020;
+ }
+ }
+ else if (_config._numOutputs == 16 || _config._numOutputs == 32)
+ {
+ // 16 board
+ if (cud.GetMaxPixelPort() > 16) {
+ maxPixels = 510;
+ }
+ else {
+ maxPixels = 1020;
+ }
+ }
+
std::list