Developing a USB token-packet's data-bytes for deviceID=9, endpoint=2 packet-bits (lsb-to-msb): 0 0 0 0 0 - 0 0 1 0 - 0 0 0 1 0 0 1 packet-bits (msb-to-lsb): 1 0 0 1 0 0 0 - 0 1 0 0 - 0 0 0 0 0 Now perform the 3-step CRC-5 computation: STEP 1: complement the five leading bits 1001000010000000 xor 11111 ------------------ 0110100010000000 STEP 2: perform the polynomial long-division ___________________ 100101 ) 0110100010000000 000000 -------- 110100010000000 100101 -------- 10001010000000 100101 -------- 0011110000000 000000 -------- 011110000000 000000 -------- 11110000000 100101 -------- 1100100000 100101 -------- 101110000 100101 -------- 01011000 000000 -------- 1011000 100101 -------- 010010 000000 -------- 10010 STEP 3: complement the five remainder-bits 10010 xor 11111 ------- 01101 Now we merge this CRC with the token-packet's data: packet-bits (lsb-to-msb): 1 0 0 1 0 0 0 - 0 1 0 0 - 0 1 1 0 1 packet-bits (msb-to-lsb): 1 0 1 1 0 - 0 0 1 0 - 0 0 0 1 0 0 1 The token-packet's data-bytes (with 5-bit CRC included): 0xB109 The token-packet data-bytes in little-endian byte-order: 09 B1