 
       case 3: {
         DEBUG1_PRINTLN("Blue");
-        digitalWrite(rgb_output.pins[1], LOW);
-        digitalWrite(rgb_output.pins[2], HIGH);
+        if (has_rgb) {
+          digitalWrite(rgb_output.pins[1], LOW);
+          digitalWrite(rgb_output.pins[2], HIGH);
+        }
         if (has_pixels) {
           for (unsigned int i=0; i < pixels.numPixels(); i++) 
             pixels.setPixelRGB(i, 0, 0, 255);  

    has_value = true;
  }

  if (outputs_found & (1 << HMTL_OUTPUT_PIXELS)) {
    for (unsigned int i = 0; i < pixels.numPixels(); i++) {
      pixels.setPixelRGB(i, 0, 0, 0);

      case 1: {
        DEBUG1_PRINTLN("Red");
        if (has_value) digitalWrite(value_output.pin, LOW);
        if (has_rgb) digitalWrite(rgb_output.pins[0], HIGH);
        if (has_pixels) {
          for (unsigned int i=0; i < pixels.numPixels(); i++) 
            pixels.setPixelRGB(i, 255, 0, 0);  
