The Open Source Latency Testing Tool (OSLTT)

NVIDIA’s LDAT – the latency and display analysis tool – is an incredible bit of kit. It allowed us reviewers the chance to test latency in games, on displays and even peripherals like mice – something we didn’t really have access to with this much ease before. The biggest problem with it, by far, is that only a handful of lucky folk like me got one. If you want to fine tune your system, games and peripherals, you’re pretty much out of luck. The good news though, is that thanks to all my work with the open source response time tool – and especially the newer Pro version – I have enough knowledge to solve that problem. This is the open source latency testing tool, or OSLTT. 

My aim for the latency tool isn’t just to make an open source LDAT clone, but to make it even better, even more feature rich, and of course more available. Let me give you the highlights. First off, the custom DirectX test I wrote for the response time tool is carried over here. That means if you want to test monitors specifically, you can isolate just the on display latency for more useful and repeatable results. That also means you can capture your system’s latency, and use it to subtract that from, say, a game’s latency. What’s new here is this audio jack, and all the features that it offers. Namely, listening out for mouse clicks or keyboard keypresses, or listening for the absolutely beautiful custom made bong sound for the audio latency test. Lastly, if you want to test something else entirely, you can use the two pin input to trigger the tool to start capturing light data and time how long it takes between that input getting triggered and the light sensor seeing a light level change. Not bad right?

Inside the custom designed and 3D printed case – which has a crosshair on the top to show you where the light sensor is on the bottom by the way – you’ll find my handmade PCB. It’s mostly split up into their distinct circuits – the light sensor circuit is here, the mic circuit is here, the 2 pin input circuit is here, the built in LED is here and the onboard button and resistor are here. The light sensor is pretty much the same as the response time tool – just using a reverse mount photodiode and a cutout through the PCB, but is otherwise the same. The mic circuit though, my god I pulled my hair out on that one. That took I think FIVE PCB REVISIONS to get working. FIVE! Luckily I’ve now got it so it’s pretty reliable with a decent amount of gain and not too much noise. I’ve wired it to use a mic jack, as in a three pole mic jack, or TRS. This won’t work with a four pole or TRRS mic, although I’m planning on including a microphone with each kit so you should be good to go there. 

It’s worth noting a couple of things here, namely I’m now using a microcontroller that comes with a USB C port! This is a USB C device, finally! Second, the two pin input. While I don’t think many people who buy one of these will ever use it, it’s worth me explaining how to just in case. If you opt for the fly lead, the one with the white sticker on it is the power lead, the other is ground. You obviously connect to ground, then supply a voltage to the positive lead – the one with the sticker. In an ideal world you’d only supply up to 3.3V as that’s what the microcontroller is running at, but because I know people will forget that fact, I’ve designed the circuit to fully isolate and protect the microcontroller. It uses this tiny transistor and two resistors, so technically you can supply up to 50V and it’ll be fine – that’s what the transistor is rated to. I don’t want you to, just in case, but if you “accidentally” supply 5V, 12V or even 48V here, it should be just fine. Worst case you blow up the transistor, but you shouldn’t be able to blow up the whole board. But, please don’t try – and no there’s no warranty on that either. Just making that clear. Got it? Ok.

The software is by far the biggest change – gone are the dated blocky styling, welcome to Material UI. Everything is just a bit shinier, and hopefully easier to use too. All the settings for the different test modes, auto clicking and what display to use are all right here and are set up to not let you pick something that outright won’t work. So you can’t have it use the microphone to trigger the recording, then use the mic to listen for a sound or something – at least not right now anyway. I’ve included some preset modes at the top left though which get things set up for testing things like monitors, peripherals, headsets and audio devices, and games. If you want to tweak anything, hit custom and those changes will be saved so when you next open the software it’ll re-load exactly how you had last time. 

One of the biggest differences to LDAT is that almost all of the processing is done on the desktop app, which means the tool sends all the raw data to your system so you can validate it yourself. This is less of a problem on the latency tool compared to the response time tool, but I prefer the more open nature. You can manually check everything over here, rather than a black box that spits out a number. Of course once the test is complete you’ll get the full results view window which can graph both the min/max/average, and show you the individual results in a scatter plot. I find that’s the most useful one personally. You can also save the charts as images if you want to as well. 

I should make it clear though that this is still in the “beta” stage. The tests do work and give pretty reliable data, but there are still a good number of bugs and features I need to implement. As always I’m a one-man-band, building the units by hand, assembling them, packing and shipping, and of course writing all the code for it all. If you are willing to put up with some bugs, I’m opening pre-orders for the first batch of units at a discounted price. The first batch is pretty limited so if you want one you’ll want to head to OSRTT.com and pick one up. Those that have signed up for the mailing list should already have received an email from me so there’s a chance that the first batch will already be sold out. If that’s the case please do sign up to be notified when the next batch is available. I’ll be building the first batch this week with the aim to ship them in one to two weeks, and of course you’ll get tracking numbers and shipping info as always.

Just to head this one off too, if you do encounter any bugs, please either write an issue report on the GitHub repo – github.com/OSRTT/OSLTT – or ping me an email at [email protected]. Please include screenshots and as much info about the problem as you can and I’ll do my best to get it sorted. 

I think that’ll do for now!