Computer system comprising a computer device and a computer peripheral , the computer peripheral comprising: an image array ; a motion sensor ; a computer interface ; and control circuitry adapted to: read a value from the motion sensor and, using the read value, generate an instance of a cumulative position value computed by accumulating increments of motion; trigger the image array to capture an image; and transfer to the computer device image data from the image array and an instance of the cumulative position value through the computer interface in a format that associates the image data with the instance of the cumulative position value, the instance of the cumulative position value being associated with a time at which the image array is triggered to capture the image, wherein values from the sensors are not read at a time that is synchronized to triggering image capture; wherein the control circuitry is adapted to transfer said image data as a stream of packets which have a timestamp attached, wherein the timestamp associates a time at which the cumulative position value was read to the time at which the image data was captured, wherein based on the increment of motion before the time at which the image data was captured, said computer device is adapted to compute a rate of change in position and to use the rate of change with the timestamp to extrapolate from the cumulative position value the actual position at the time the image frame was captured. an image array ; a motion sensor ; a computer interface ; and control circuitry adapted to: read a value from the motion sensor and, using the read value, generate an instance of a cumulative position value computed by accumulating increments of motion; trigger the image array to capture an image; and transfer to the computer device image data from the image array and an instance of the cumulative position value through the computer interface in a format that associates the image data with the instance of the cumulative position value, the instance of the cumulative position value being associated with a time at which the image array is triggered to capture the image, read a value from the motion sensor and, using the read value, generate an instance of a cumulative position value computed by accumulating increments of motion; trigger the image array to capture an image; and transfer to the computer device image data from the image array and an instance of the cumulative position value through the computer interface in a format that associates the image data with the instance of the cumulative position value, the instance of the cumulative position value being associated with a time at which the image array is triggered to capture the image, wherein values from the sensors are not read at a time that is synchronized to triggering image capture; wherein the control circuitry is adapted to transfer said image data as a stream of packets which have a timestamp attached, wherein the timestamp associates a time at which the cumulative position value was read to the time at which the image data was captured, wherein based on the increment of motion before the time at which the image data was captured, said computer device is adapted to compute a rate of change in position and to use the rate of change with the timestamp to extrapolate from the cumulative position value the actual position at the time the image frame was captured. <EOS>