I recently purchased this TEMPer USB Thermometer on Amazon. The seller advertises compatibility with all OSes, with provided APIs and drivers. Unfortunately, that’s not true. The CD-ROM only contains a .MSI for Windows.
I sure as heck wasn’t going to wait around to buy another USB thermometer from a different manufacturer. I was going to, in the words of Matt Damon, “science the shit out of this”.
While I was googling around, I found out that someone had taken the time to write a userspace driver, using libusb. Great! Why, I can just use usbmon to sniff USB traffic instead of booting into an instance of Windows.
Here is the result of 24 hours spent reading the USB specifications, and some kernel programming. The code needs some cleaning up, but it works.