   driveEnabled = action;
 }
 
+void driveReset()
+{
+  driveEnable(false);
+  delay(100);
+  driveEnable(true);
+}
+  
 void CheckDriveCommandTimeout()
 {
   if (driveCommandTimeout == 0) return;


// RoboClaw //
#define RC_ADDR 0x80
#define RC_RX_PIN 12
#define RC_TX_PIN 11
RoboClaw roboclaw(RC_RX_PIN, RC_TX_PIN);
boolean driveEnabled = false;
unsigned long lastDriveCommandTime;
unsigned long driveCommandTimeout = 60000;

// servos
BMSerial ssc(SSC_RX_PIN, SSC_TX_PIN);
MiniMaestro maestro(ssc);

// propulsion vars
#define MOTOR_COUNTER_START 3000
#define MOTOR_TARGET_MAX 127
#define MOTOR_VELOCITY_0 64


//=======================================

// 'drive' command
// ex: dm127127 - full forward
// ex: dm064064 - stop
// ex: dm000000 - full backward
void drive()
{
  cmd = buf[1];
  
  if (cmd == 'm') // drive motors
  {
    motor1_target = bctoi(2, 3);
    motor2_target = bctoi(5, 3);
