Previously I just used a library on Windows which was also kind of nasty to work with (it exposed some truly strange implementation choices), but if I just implement the communications protocol myself it should just work everywhere including on platforms that were never officially supported by the hardware.