   }
   strips[strip]->show();
 }
+
+

    // Done executing or buffer is full before newline
    memset(cmd, 0, sizeof(cmd));
    cmd_idx = 0;
    Serial.print("\n> ");
  }
}

static const char cmd_teams[] = "teams";
static const char cmd_team[] = "team t rrr ggg bbb";
static const char cmd_strip[] = "strip s t 11 t 22 t 33";
static const char cmd_help[] = "help";

void exec_cmd() {
  if (strncmp(cmd, "teams", 5) == 0) {
    exec_teams();
  } else if (strncmp(cmd, "team", 4) == 0) {
    exec_team();
  } else if (strncmp(cmd, "strip", 5) == 0) {
    exec_strip();
  } else if (strncmp(cmd, "help", 4) == 0) {
    Serial.println(cmd_teams);
    Serial.println(cmd_team);
    Serial.println(cmd_help);
    return;
  } else {
    Serial.print("unknown command: ");
    Serial.println(cmd);
    return;
  }  
  Serial.println("ok");
}

void usage(const char * usage) {

  }
}

void exec_team(char * tok) {
  // Read team number
  char * arg = strtok_r(NULL, " ", &tok);
  if (arg == NULL) {  
    Serial.println("team number is required");
    return;
  }
  int team = atoi(arg);
  if (team > 2) {
    Serial.println("team number is one of 0,1,2");
    return;
  }
  // Read colors
  arg = strtok_r(NULL, " ", &tok);
  int r = atoi(arg);
  arg = strtok_r(NULL, " ", &tok);
  int g = atoi(arg);
  arg = strtok_r(NULL, " ", &tok);
  int b = atoi(arg);
  team_colors[team] = Adafruit_NeoPixel::Color(r, g, b);
}

void exec_strip(char * tok) {
  // Read strip number
  char * arg = strtok_r(NULL, " ", &tok);
  if (arg == NULL) {  
    Serial.println("strip number is required");
    return;
  }
  int strip = atoi(arg);
  if (strip > 2) {
    Serial.println("strip number is one of 0,1,2");
    return;
  }

  byte led = 0;
  // Read the three groups of "teamNumber ledCount"
  for (byte i = 0; i < 3; i++) {
    // Read the team
    arg = strtok_r(NULL, " ", &tok);
    if (arg == NULL) {  
      Serial.println("team number is required");
      return;
    }
    int team = atoi(arg);
    if (team > 2) {
      Serial.println("team number is one of 0,1,2");
      return;
    }

    // Read the LED count
    arg = strtok_r(NULL, " ", &tok);
    if (arg == NULL) {  
      Serial.println("led count is required");
      return;
    }
    int team_leds = atoi(arg);

    // Enable the LEDs
    for (byte l = 0; l < team_leds; l++) {
      strips[strip]->setPixelColor(led + l, team_colors[team]);
    }
