                  i += num_consumed_total;
                }
              }
+             else
+               if (tmp_str[i + 1] == 'U' || tmp_str[i + 1] == 'u'){// create a list of motors
+               
+                 int num_sonars = 0;
+                 
+                 int num_consumed = 0;
+                 sscanf(tmp_str + i + 3, "%d%n", &num_sonars, &num_consumed);
+                 
+                 int num_consumed_total = 3 + num_consumed;
+                 ultrasonic_sensors_controller.set_num_sensors(num_sonars);
+                 for (int k = 0; k < num_sonars; k++){
+                   int _trig_pin, _echo_pin;
+                   sscanf(tmp_str + i + num_consumed_total, "%d%d%n", &_trig_pin, &_echo_pin, &num_consumed);
+                   ultrasonic_sensors_controller.set_sensor_pins(k, _trig_pin, _echo_pin);
+                   num_consumed_total += num_consumed + 1;
+                 }
+     
+                 sprintf(serial_out, "CU#");
+                 i += num_consumed_total;
+             }
          }
     }
     else

          else
          if (tmp_str[i] == 'S' || tmp_str[i] == 's'){ // sets something
            if (tmp_str[i + 1] == 'M' || tmp_str[i + 1] == 'm'){ // motor speed and acceleration
              int motor_index, motor_speed, motor_acceleration;
              sscanf(tmp_str + i + 2, "%d%d%d", &motor_index, &motor_speed, &motor_acceleration);
              motors_controller.set_motor_speed_and_acceleration(motor_index, motor_speed, motor_acceleration);
              i += 5;

void setup() 
{
  first_start = 0;
  strcpy(firmware_version, "2016.01.24.0");
  
  //motors_controller.set_num_motors(2);
  
