I am programming an iRobot Create to follow serial commands using Arduino Uno. I have written the library, and found the serial commands to move the robot forward in the iRobot manual, but I couldn't find the bytes for other movements (backward, right and left). Could you please help me with this. How can I move the robot backward, right and left. I will upload my code library. #include "iRobot.h" #if defined(ARDUINO) && ARDUINO >= 100 //to check if the arduino is plugged and the its number is above 100 #include "Arduino.h" #include "SoftwareSerial.h" // so we can use all pins SoftwareSerial softSerial = SoftwareSerial(10, 11); #endif iRobot::iRobot() //constructor to set the pins { _rxPin = 10; _txPin = 11; } void iRobot::begin() //needs to be called inside setup function { delay(2000); // Needed to initialize the iRobot, the delay is to ensure that each command before this is excucted or there will be overlap // define pin modes for software tx, rx pins for iRobot pinMode(_rxPin, INPUT); pinMode(_txPin, OUTPUT); softSerial.begin(19200); //we set the data rate received by the irobot Serial.begin(19200); // set the data rate sent from the arduino //these two line are necessary from the irobot manual softSerial.write(128); // This command starts the communication. softSerial.write(131); // set mode to safe, it will stop of there is a cliff or a wheel drops or Serial.write("Enter Command: "); // here, if we start serial monitor, we can enter the command } void iRobot::runIt() //needs to be called inside loop function { if (Serial.available()) { String data = String(Serial.read()); //this will read the command, each word will call a function if(data == "forward") goForward(); if(data == "backward") goBackward(); if(data == "left") goLeft(); if(data == "right") goRight(); } } void iRobot::goForward() { softSerial.write(137); // Opcode number for DRIVE, it's understood by the irobot that 137 means drive // Velocity (-500 – 500 mm/s) softSerial.write((byte)0); softSerial.write((byte)200); //Radius (-2000 - 2000 mm) softSerial.write((byte)128); // we should adjust this to make the robot go straight or slightly right or left softSerial.write((byte)0); // we should adjust this to make the robot go straight or slightly right or left } void iRobot::goBackward() { softSerial.write(137); //we should change the bytes to make the robot drive backward //negative vaule of velocity drive the robot forward // Velocity (-500 – 500 mm/s) softSerial.write((byte)0); softSerial.write((byte)200); //Radius (-2000 - 2000 mm) softSerial.write((byte)128); // we should adjust this to make the robot go straight or slightly right or left softSerial.write((byte)0); // we should adjust this to make the robot go straight or slightly right or left } void iRobot::goLeft() { softSerial.write(137); //we should change the bytes to make the robot drive left //radius value should be positive // Velocity (-500 – 500 mm/s) softSerial.write((byte)0); softSerial.write((byte)200); //Radius (-2000 - 2000 mm) softSerial.write((byte)128); // we should adjust this to make the robot go straight or slightly right or left softSerial.write((byte)0); // we should adjust this to make the robot go straight or slightly right or left } void iRobot::goRight() { softSerial.write(137); //we should change the bytes to make the robot drive right //radius value should be negative // Velocity (-500 – 500 mm/s) softSerial.write((byte)0); softSerial.write((byte)200); //Radius (-2000 - 2000 mm) softSerial.write((byte)128); // we should adjust this to make the robot go straight or slightly right or left softSerial.write((byte)0); // we should adjust this to make the robot go straight or slightly right or left } Update: I have connected the robot to the Arduino and tried the code. Unfortunately, the robot didn't move This is my Arduino code: #include <Arduino.h> #include <iRobot.h> iRobot irobot; void setup() { irobot.begin(); } void loop() { irobot.runIt(); } I have connected the the pins 10, 11 and GND on the Arduino to pins 3, 4 and 7 on the robot. [![enter image description here][1]][1] [![enter image description here][2]][2] [1]: https://i.sstatic.net/WrEFb.jpg [2]: https://i.sstatic.net/EZ5ai.jpg