   
 }
 
+void next_mode() {
+  if(currentMode == dual) {
+    currentMode = quad;
+  }
+  else if(currentMode == quad) {
+    currentMode = octo;
+  }
+  else if(currentMode = octo) {
+    currentMode = dual;
+  }
+  //diag mode is not implemented yet
+}
 
 void clear_mode() {
   dualModeReady = false;

MCP_CAN CAN(SPI_CS_PIN); 

void setup() {

  pinMode(LED_PIN, OUTPUT);
  pinMode(MODE_PIN, INPUT_PULLUP);

  currentMillis = millis();
  if(currentMillis - lastDisplayMillis >= displayInterval && currentMillis > 500) {
    lastDisplayMillis = currentMillis;

      if(currentMode == dual) {
        draw_dual_gauges();
      }
      else if(currentMode == quad) {
        draw_quad_gauges();
      }
      else if(currentMode == octo) {
        draw_octo_gauges();
      }
  }

  if(currentMillis - lastDiagnosticMillis >= diagnosticInterval && currentMillis > 500) {
