 
 void api_v()
 {
+    int v[4] = {0, 0, 0, 0};
+    for (int i = 0; i < 4; i++)
+    {
+        char *value = serialCommand.next();
+        if (value == NULL)
+        {
+            Serial.println("!Not enough arguments");
+            return;
+        }
+        v[i] = atoi(value);
+    }
+
+    for (int i = 0; i < 4; i++)
+    {
+        robot_setMotorSpeed(i, v[i]);
+    }
+}
+
+void api_v1()
+{
     char *arg1 = serialCommand.next();
 
     // No arguments -> show usage
     if (arg1 == NULL)
     {
-        Serial.println("# V [Steps / second]");
+        Serial.println("#v1 [Steps / second]");
         return;
     }
 

    {
        // Converts a char string to a long
        int v = atoi(arg1);
        robot_setMotorSpeed(0x01, v);
    }
}

void api_stop()
{
    robot_quickStop(0x01);
}

void api_start()
{
    robot_initNode(0x01);
}

void api_init()
{
    serialCommand.addCommand("v", api_v);
    serialCommand.addCommand("v1", api_v1);
    serialCommand.addCommand("v2", api_v2);
    serialCommand.addCommand("v3", api_v3);
    serialCommand.addCommand("v4", api_v4);
    serialCommand.addCommand("stop", api_stop);
    serialCommand.addCommand("start", api_start);
    serialCommand.setDefaultHandler(api_unknown);
