Rotary Encoder Drift??

brilliant! It doesn't solve my problem entirely but at least now I have confirmation that the Wiring board is missing encoder pulses - and that the Serial.print() command makes it much worse.

I added a 10 second delay in my loop() to throttle down Serial.print() and the missed pulses/drift is much less:
0 <------ hard stop start point
-2921 <------ hard stop end point
-2225 <------arbitrary stopping point w/ lots of movement for 10 seconds
-2557 <------arbitrary stopping point w/ lots of movement for 10 seconds
-7 <------ back to hard stop start point (error)
-2929 <------ back to hard stop end point (error)
-5 <------ back to hard stop start point (error)

So it's @ a 7 step error in this short test. That's a lot better- though once I actually add code to do some work in my loop() and run things longer the error will increase over time. But hey, it's a lot better than I was getting. Thanks for the help!!

I wonder if there is a counter chip I place in between the encoder + Wiring board?

--Roy

void loop() 
{ 
  if  (millis() >= nextReportTime){
    nextReportTime = millis() + 10000;
    Serial.println (encoder0Pos, DEC);
  }
}