 
 	Serial.println();
 	Serial.println();
+
 	Serial.println(F("RPM setup..."));
-	SetupRPMDriver();
+	if (!SetupRPMDriver())
+	{
+		Serial.println(F(" failed"));
+		Halt();
+	}
 	Serial.println(F(" complete"));
 
 	SetupDemo();
 }
 
+
+
 bool SetupRPMDriver()
 {
-
+	bool Success = false;
 	//RPMDriver.AddLogger(&Serial);
-	RPMDriver.Begin();
-	RPMDriver.SetDesignModel(SUB_PIXEL_ENABLED);// | SUB_PIXEL_HIGH_RANGE_ENABLED | BACKGROUND_ENABLED);
+	Success = RPMDriver.Begin();
+	RPMDriver.SetDesignModel(SUB_PIXEL_ENABLED | BACKGROUND_ENABLED);// | SUB_PIXEL_HIGH_RANGE_ENABLED | BACKGROUND_ENABLED);
 	RPMDriver.SetBrightness(GlobalBrightness);
 	RPMDriver.SetRangeRPM(600, 15000);
 	RPMDriver.ClearSections();

		//Serial.println(" us");
	}

	Demo(Now);

	if (Now - LastSerialUpdate > SERIAL_POLL_INTERVAL - 1)

	{
		LastRPMUpdate += DEMO_RPM_UPDATE_INTERVAL;



		//RPMStart = micros();
		RPMDriver.UpdateRPM(DemoRPM, Now);
		//Serial.println(RPMDriver.Debug());
		//RPMEnd = micros();
		//Serial.print("Update RPM took: ");
