… you’re right, the basic bug is that it assumes CN is always the first byte each time the endpoint is read. i think it was originally interrupt-driven…