   stepper.setCurrentPosition(persistentValues.lastStepperPosition);
 
   stepper.setEnablePin(STEPPER_ENABLE_PIN);
-#ifdef REVERSE_STEPPER_DIRECTION  
+#ifdef REVERSE_STEPPER_DIRECTION
   stepper.setPinsInverted(true, false, true);
 #else
   stepper.setPinsInverted(false, false, true);
 #endif
-  
+
   stepper.setMaxSpeed(STEPPER_MAX_SPEED);
 
   btnStopHome.setHoldTimeout(BUTTON_LONG_PRESS_DELAY);
   btnManual.setHoldTimeout(BUTTON_LONG_PRESS_DELAY);
+  
+    // Setup which External Interrupt, the Pin it's associated with that we're using and enable the Pull-Up 
+  Dcc.pin(DCC_PIN, 1);
+  
+    // Call the main DCC Init function to enable the DCC Receiver
+  Dcc.init(MAN_ID_DIY, 10, CV29_ACCESSORY_DECODER | CV29_OUTPUT_ADDRESS_MODE, 0);
 }
 
 void stepperMoveTo(long newPosition)
 {
   stepper.enableOutputs();
   stepper.setAcceleration(STEPPER_NORMAL_ACCELERATION);
-  stepper.moveTo(newPosition); 
+  stepper.moveTo(newPosition);
 }
 
 void stepperMove(long newRelPosition)
 {
   stepper.enableOutputs();
   stepper.setAcceleration(STEPPER_NORMAL_ACCELERATION);
-  stepper.move(newRelPosition); 
+  stepper.move(newRelPosition);
 }
 void stopStepper(void)
 {
   stepper.setAcceleration(STEPPER_EMERGENCY_STOP_ACCELERATION);
-  stepper.move(0); 
+  stepper.move(0);
   stepper.stop();
   while(stepper.run());
-  stepper.disableOutputs(); 
+  stepper.disableOutputs();
 }
 
 int lastSpeed = 0;

    displayMessageNumber("Up To: ", persistentValues.lastLiftLevel + 1);
  }

    
  if(lastSpeed != newSpeed)
  {
//    Serial.print("Speed Change: Last: "); Serial.print(lastSpeed); Serial.print("  New: "); Serial.print(newSpeed);
//    Serial.print(" - Current Pos: "); Serial.print(stepper.currentPosition());
    
    if( newSpeed == 0)
    {
      lastSpeed = newSpeed;

void initPersistentValues()
{
  EEPROM.get(EEPROM_BASE_ADDR, persistentValues);

#ifdef EEPROM_FORCE_RELOAD_DEFAULT_VALUES
  persistentValues.objectSignature = 0;
#endif

  if(persistentValues.objectSignature != EEPROM_VALID_DATA_SIGNATURE)
  {
    Serial.println("initPersistentValues: set detault values");

    persistentValues.numLiftLevels = NUM_LIFT_LEVELS;
    persistentValues.lastLiftLevel = 0;
    persistentValues.lastStepperPosition = 0;
