I think GPS is most accurate as it would take distance/time=speed (velocity). HOWEVER, there is probably a 1 second lag before you see the speed....by then you could be going faster/slower than stated.
That is why you need to test on the open road at a fixed speed (ie with cruise on at 100kph) and a flat road if possible. With a good GPS signal.
GPS is definately the best way to check your speedo
Bookmarks