diff --git a/firmware/test1/heizung-test1/src/main.cpp b/firmware/test1/heizung-test1/src/main.cpp
index a86de3bb6bd60967c3e93f95b613674c310f8cb7..945c3a36b0483222bf391ccad304aee639d317db 100644
--- a/firmware/test1/heizung-test1/src/main.cpp
+++ b/firmware/test1/heizung-test1/src/main.cpp
@@ -53,7 +53,8 @@ Adafruit_MPR121 cap0, cap1;
 bool capAvailable[2];
 
 Adafruit_NeoPixel pixelsDisplay(60, WS2812_DISPLAY, NEO_GRB + NEO_KHZ800);
-Adafruit_NeoPixel pixelsDigout1(2, DIGOUT1, NEO_GRB + NEO_KHZ800);
+Adafruit_NeoPixel pixelsDigout1(50, DIGOUT1, NEO_GRB + NEO_KHZ800);
+Adafruit_NeoPixel pixelsDigout2(50, DIGOUT2, NEO_GRB + NEO_KHZ800);
 
 void setup() {
   rp2040.enableDoubleResetBootloader();
@@ -456,31 +457,82 @@ void loop() {
     }
   }
 
-  static int digout1_timer = 0;
-  static int digout1_state = 2;
-  if (digout1_timer < 300 || !pixelsDigout1.canShow())
-    digout1_timer++;
-  else {
-    digout1_timer = 0;
-    digout1_state++;
-
-    for (int i=0; i<pixelsDigout1.numPixels(); i++) {
-      switch ((digout1_state-3*i)%8) {
-        case 0:
-          pixelsDigout1.setPixelColor(i, pixelsDigout1.Color(255, 0, 0));
-          break;
-        case 1:
-          pixelsDigout1.setPixelColor(i, pixelsDigout1.Color(0, 255, 0));
-          break;
-        case 2:
-          pixelsDigout1.setPixelColor(i, pixelsDigout1.Color(0, 0, 255));
-          break;
-        default:
-          pixelsDigout1.setPixelColor(i, pixelsDigout1.Color(0, 0, 0));
-          break;
+  if (0) {
+    static int digout1_timer = 0;
+    static int digout1_state = 2;
+    if (digout1_timer < 300 || !pixelsDigout1.canShow())
+      digout1_timer++;
+    else {
+      digout1_timer = 0;
+      digout1_state++;
+
+      for (int i=0; i<pixelsDigout1.numPixels(); i++) {
+        switch ((digout1_state-3*i)%8) {
+          case 0:
+            pixelsDigout1.setPixelColor(i, pixelsDigout1.Color(255, 0, 0));
+            break;
+          case 1:
+            pixelsDigout1.setPixelColor(i, pixelsDigout1.Color(0, 255, 0));
+            break;
+          case 2:
+            pixelsDigout1.setPixelColor(i, pixelsDigout1.Color(0, 0, 255));
+            break;
+          default:
+            pixelsDigout1.setPixelColor(i, pixelsDigout1.Color(0, 0, 0));
+            break;
+        }
+      }
+      pixelsDigout1.show();
+    }
+  }
+
+  if (1) {
+    static int digout1_timer = 0;
+    static int digout1_state = 2;
+    if (digout1_timer < 20 || !pixelsDigout1.canShow() || !pixelsDigout2.canShow())
+      digout1_timer++;
+    else {
+      digout1_timer = 0;
+      digout1_state++;
+      if (digout1_state >= 3)
+        digout1_state = 0;
+
+      for (int i=0; i<pixelsDigout1.numPixels(); i++) {
+        switch (digout1_state%3) {
+          case 0:
+            pixelsDigout1.setPixelColor(i, pixelsDigout1.Color(40, 0, 0));
+            break;
+          case 1:
+            pixelsDigout1.setPixelColor(i, pixelsDigout1.Color(0, 40, 0));
+            break;
+          case 2:
+            pixelsDigout1.setPixelColor(i, pixelsDigout1.Color(0, 0, 40));
+            break;
+          default:
+            pixelsDigout1.setPixelColor(i, pixelsDigout1.Color(0, 0, 0));
+            break;
+        }
+      }
+      pixelsDigout1.show();
+
+      for (int i=0; i<pixelsDigout2.numPixels(); i++) {
+        switch ((digout1_state+1)%3) {
+          case 0:
+            pixelsDigout2.setPixelColor(i, pixelsDigout2.Color(40, 0, 0));
+            break;
+          case 1:
+            pixelsDigout2.setPixelColor(i, pixelsDigout2.Color(0, 40, 0));
+            break;
+          case 2:
+            pixelsDigout2.setPixelColor(i, pixelsDigout2.Color(0, 0, 40));
+            break;
+          default:
+            pixelsDigout2.setPixelColor(i, pixelsDigout2.Color(0, 0, 0));
+            break;
+        }
       }
+      pixelsDigout2.show();
     }
-    pixelsDigout1.show();
   }
 
   static int ledring_timer = 0;