 byte motor_increment = 5;
 unsigned int motor_counter = 0;
 
+// servo controller
+BMSerial ssc(SSC_RX_PIN, SSC_TX_PIN);
+MiniMaestro maestro(ssc);
+
 //=======================================
 
 void setup() 
 {
-  // unused pins
   pinMode(LED_PIN, OUTPUT);
   digitalWrite(LED_PIN, LOW);
-  pinMode(4, INPUT_PULLUP);
-  pinMode(5, INPUT_PULLUP);
-  pinMode(6, INPUT_PULLUP);
   
   // power management pins //
+  pinMode(SERVO_PIN, OUTPUT);
   pinMode(AUX_PIN, OUTPUT);
   pinMode(MOTORS_PIN, OUTPUT);
   pinMode(UPS_PIN, OUTPUT);
   pinMode(BATTERY_PIN, OUTPUT);
+  digitalWrite(SERVO_PIN, LOW);
   digitalWrite(AUX_PIN, LOW);
   digitalWrite(MOTORS_PIN, LOW);
   digitalWrite(UPS_PIN, LOW);
   digitalWrite(BATTERY_PIN, LOW);
+  // enable AUX power
   pulsePin(AUX_PIN, 20);
 
-  // servo controller
-  ssc.begin(38400);
-  
   // host communication //
   Serial.begin(38400);
   
-  // motor driver //
+  // motor driver setup //
   driveUART(true);
   driveUART(false);
+  
+  // ssc setup //
+  sscUART(false);
 }
 
 //=======================================

#include <PololuMaestro.h>

#define LED_PIN 13
#define SSC_RX_PIN 2
#define SSC_TX_PIN 3

// host communication //
#define MAX_COMMAND 16

    if (motor2_target > MOTOR_TARGET_MAX) motor2_target = MOTOR_TARGET_MAX;
  }
  else
  if (cmd == 'r') driveReset();
  else
  if (cmd == 'e') driveEnable(true);
  else
  if (cmd == 'd') driveEnable(false);
  else
  if (cmd == 'i') motor_increment = bctoi(2, 2);
  else
