https://github.com/bonzini/wcc contains both the Arduino sketch and the client that runs under Linux to present a virtual input device.