   }  
 }
 
+bool calculate_error_light() {
+  byte len = 20; //sizeof(allGauges);
+  unsigned long badCount;
+  unsigned long totalCount;
+  byte percent;
+  
+  for(byte i = 0; i < len; i++) {
+    badCount = allGauges[i]->lowCount + allGauges[i]->highCount;
+    totalCount = badCount + allGauges[i]->goodCount;
+    percent = badCount * 100 / totalCount;
+    if(percent > 9) {
+      Serial.println(allGauges[i]->shortLabel);
+      Serial.println(allGauges[i]->lowCount);
+      Serial.println(allGauges[i]->highCount);
+      Serial.println(allGauges[i]->goodCount);
+      return true;
+    }
+  }
+  return false;
+}
+

  quadModeGauges[0][2] = &engine_afr;
  quadModeGauges[0][3] = &engine_tps;
  
  lcd.begin(20, 4);

  Serial.begin(115200);
  while (CAN_OK != CAN.begin(CAN_500KBPS))              // init can bus : baudrate = 500k
      {
          Serial.println(F("CAN BUS Shield init fail"));
          Serial.println(F(" Init CAN BUS Shield again"));
          delay(100);
      }
  Serial.println(F("COMM OK"));

  lcd.clear();

  load_from_can();
  
  currentMillis = millis();
  if(currentMillis - lastDisplayMillis >= displayInterval && currentMillis > 500) {
    lastDisplayMillis = currentMillis;
      //draw_octo_gauges();
      //draw_dual_gauges();
      draw_quad_gauges();
