Final Implementation and Measurements (2019-02-18)

Tagged as: blog, implementation, measurements, pressure, box
Group: E This time we implemented last modifications and measured a couple of devices with this new software. Furthermore, we compared our solution with the PusherBox of another group.

Final Modifications to the Software

Adjusted Case 7

To compare the pressure put by individual and combined steps, we implemented a 7th case last time. Now, we adjusted the process to use a fixed step size we determined beforehand. We executed this test 1000 times to get a significant result.

Fixed Limitation

As we used only 100 measurements before, we didn't notice a significant error: At a given point (mostly the 123th time) no more data was written to the log files. First, assumed that the memory allocated to the structs was too low. After readjusting, we still saw the same result. After that we tried to instantiate new structs each iteration, what resulted in Segmentation Faults. Another guess, was the search box displayed at the upper right corner in the desktop, which is controlled by pcmanfm. Therefore, we canceled this service, but still were unsuccessfull at fixing the bug. Our last resort was a problem with the Raspberry Pi and the threading mechanism. By debugging our code, we became aware of that the threads were not closed properly. After fixing this, we finally got all of the data written to our logs. A good side-effect was the ability to reduce some sleep time and a faster measurement.

Added Termination Condition

To leave out measurements with consecutively missed events, we terminate the whole process at a missed count of 20. If events arrive in between, the counter is resetted to 0.


For a better overview, we formatted the console output!


Including our last adjustments we started a new series of measurements. We've now tested following input devices on both forced and default polling rates:

Mice: - Logitech 300 - Logitech RX 250 - Logitech G 5

Keyboards: - Gembird - Logitech G15 - HP Keyboard

Using the prototype „pusher1.0“ of group „C“ we performed a series of measurements with a fixed latency of 20.00 milliseconds. The results differ between 2.5 and 8.0 milliseconds from the adjusted latency.

Data Evaluation, Interpretation and Visualization

Data Evaluation in our jupyter notebook now saves corresponding middle and event times in an array. Variance, standard deviation, normal distribution calculations are now included. Given not normal distributed results we perform the Mann-Whitney-U test with our latencies and the given findings of the LagBox projects. The findings indicate that the difference between the two data sets is significant. The results show that our latencies come with an off set of a few milliseconds compared to the invasive values. Which suggests that a systematic error is given.


We will now start evaluating our findings and writing our paper.