Recently I had a similar problem. What I did was PWM motor 1 to a constant, but lower than 255, value (e.g. the PWM value to motor 1 is never greater than 245). After a time interval, check the encoder counts of the two motors and have the code automatically adjust, up or down, the PWM value of motor 2 by a fixed value (e.g. 5). I realize that your robot will most likely not move at the same speed all the time but the code could be written to have the PWM of motor 2 adjust to the the PWM value of motor 1. - Scotty