This post is a follows from an earlier post (https://robotics.stackexchange.com/questions/7121/irobot-create-2-angle-measurement). I have been trying to use the wheel encoders to calculate the angle of the Create 2. I am using an Arduino Uno to interface with the robot. I use the following code to obtain the encoder values. A serial monitor is used to view the encoder counts. void updateSensors() { Roomba.write(byte(149)); // request encoder counts Roomba.write(byte(2)); Roomba.write(byte(43)); Roomba.write(byte(44)); delay(100); // wait for sensors int i=0; while(Roomba.available()) { sensorbytes[i++] = Roomba.read(); //read values into signed char array } //merge upper and lower bytes right_encoder=(int)(sensorbytes[2] << 8)|(int)(sensorbytes[3]&0xFF); left_encoder=int((sensorbytes[0] << 8))|(int(sensorbytes[1])&0xFF); angle=((right_encoder*72*3.14/508.8)-(left_encoder*72*3.14/508.8))/235; } The code above prints out the encoder counts; however, when the wheels are spun backwards, the count increases and will never decrement. Tethered connection to the Create 2 using RealTerm exhibits the same behavior; **this suggests that the encoders do not keep track of the direction of the spin.** Is this true?