 boolean isHomeZ() {
   return AT_Z_MIN();
 }
+
+boolean homed = false;
 
 void loop() {
   

    yTicksRemaining = accelTab[yAccelStep];
    
    if (yPosition < yTarget) {
      SET_Y_DIR();
      if (yPosition < SAFE_LIMIT) {
        ++yPosition;
        STEP_Y();
      }
    } else if (yPosition > yTarget) {
      CLR_Y_DIR();
      if (!AT_Y_MIN()) {
        --yPosition;
        STEP_Y();

#define CLR_Y_DIR() PORTF &= ~_BV(PF7)
#define SET_Z_DIR() PORTL |= _BV(PL1)
#define CLR_Z_DIR() PORTL &= ~_BV(PL1)

#define FORWARD_X() CLR_X_DIR()
#define FORWARD_Y() CLR_Y_DIR()
#define FORWARD_Z() CLR_Z_DIR()

#define BACKWARD_X() SET_X_DIR()
#define BACKWARD_Y() SET_Y_DIR()
#define BACKWARD_Z() SET_Z_DIR()

// Enables are active low on Pololu
#define ENABLE_X_MOTOR() PORTD &= ~_BV(PD7)
