really i think it was just sampling with arbitrary intervals that was the problem. i just changed my strategy so speed sensor polling happens in a tight loop for >50ms. there's a lot of dead air while displaying stuff.

the only reason i wanted to catch every sample rather than overall frequency was a total pulse accumulator so i'd have a perfect odometer, but i'd gladly sacrifice that so i don't loose speedometer precision at high speed.

i'll just calculate a rough average meters per second for an interval and feed the odo/trip accumulator with that, should be accurate enough.