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);
}
}