 		}
 }
 
+void managePower() {
+  static const unsigned long REFRESH_INTERVAL = 5000; // ms
+    static unsigned long lastRefreshTime = 0;
+    if(millis() - lastRefreshTime >= REFRESH_INTERVAL)
+    {
+      if (!stepperL.isRunning() && !stepperL.isRunning() && !stepperC2.isRunning()) {
+        driversDisable();
+      }
+    }
+}
+
+
 void loop() {
   busLoop();
   adcLoop();

		}
		break;
	case cmdSetPos:
		stepperL.moveTo(stepperL.targetPosition() + payload->pos.lPos);
		stepperC1.moveTo(stepperC1.targetPosition() + payload->pos.c1Pos);
		stepperC2.moveTo(stepperC2.targetPosition() + payload->pos.c2Pos);
		break;
	case cmdAutoTune:
	  autoTune();
	  break;
	case cmdFineTune:
	  fineTune();
	  break;
	}

  calibrate(&stepperC2, optInpinC2, run);
}

inline void driversEnable() {
  if (!isDriversEnabled) {
    digitalWrite(driverEnablePin, LOW);
    delay(5);
    isDriversEnabled = 1;
  }
}

inline void driversDisable() {
  digitalWrite(driverEnablePin, HIGH);
  isDriversEnabled = 0;
}

void busReceiver(const TCommand *payload, const PJON_Packet_Info &packet_info) {
	switch (payload->id) {
	case cmdCalibrate:
	  driversEnable();
		switch (payload->cal.channel) {
		case channelC1:
			calibrateC1(true);
