   // Create secondary tasks for system.
   Scheduler.startLoop(motorUpdateLoop);
   Scheduler.startLoop(serialConsoleLoop);
+  Scheduler.startLoop(winchUpdateLoop);
 //  Scheduler.startLoop(winchTestLoop);
 //  Scheduler.startLoop(hd5SimLoop);
   

    // If we received a command, the server must be 'RUNNING'.
    if (system_state == CONNECTED) 
    {
      system_state = RUNNING; 
    }
  }
  
  // Properly null-terminate the buffer.

      motor[1]->velocity(), motor[1]->current()
    );
    send(output_buffer);
  }
}

/**
 * Periodically sends winch position updates.
 */
void winchUpdateLoop()
{
  // Wait for a fixed time period.
  delay(300);
  
  // Send status updates while connected to server.
  if (system_state == RUNNING)
  {  
    // TODO: Remove this hack
    // Send encoder status update over USB
    long pos = ((platypus::Winch*)sensor[2])->position();
