Struggle has been going on for quite some time to achieve sub-millisecond precision when using the EGI library to send TCP triggers to the EGI device. With Windows, numerous different approaches resulted in getting the mean delay between photodiode and trigger to some milliseconds, but the variablity was the issue (sd ranging between 3-7ms). Sampling EEG on 1kHz or even 8kHz requires that the variability would have to as low as possible.
After failing to do this with Windows (win 10, z390, RTX 2080ti, i9-9900k, 64GB DDR4, .m2 disks) i decided to go for testing linux. The EGI device runs on Linux so one could think that the timings would be better. After struggling with packages for a while i managed to get the mean delay down to 0.33ms with a sd of 0.48 with the same code as with Windows! This is amazing.
Waiting for the soon to be published EGI python 3 library to see if python 3 would somehow cut the variability in Windows also. Just wanted to post this if somebody else is struggling with EGI & Windows so it might be a good idea to test Ubuntu for it.