   pushTo(x + w, y);
   pushCmd("PU");
   pushTo(x + w + letterSpacing, y);
+  
 }
 
 

int qHead = 0;
int qSize = 0;

// char buffer for converting floats to strings
static char outstr[15];

boolean insertCmd(String s) {
  // inserts s at head of queue
  // return true if inserted ok, false if buffer full
  
  if (!isQFull()) {
    qHead--;
    if (qHead < 0) qHead += QUEUE_LENGTH;

  
  // and distance
  float dist = sqrt(sqr(y-position.y) + sqr(x-position.x));
  String s = "FD ";
  s += dist;
  insertCmd(s);
}

void drive(float distance)
{ 
  Serial.print("Drive:");
  Serial.println(distance);
  // update state
  position.x += distance * cos(position.ang * PI / 180);
  position.y += distance * sin(position.ang * PI / 180);
