code: def exchange_bytes(self, cmd):
          
          assert len(cmd) == 16, "Must send 16 bytes"
          self._dev.ctrl_transfer(0x21, 0x09, 0x0300, 0, cmd)
          numBytes = ord(cmd[1]) & 0x7f
          return self._dev.ctrl_transfer(0xa1, 0x01, 0x0301, 0, numBytes + 1)[1::]
docs: Sends a packet to the grizzly, requesting information. Reads back
          the data requested.
          
          Packet format looks like:
          Byte 0:           Register
          Byte 1 (bit 6:0): Length of data to read/write
          Byte 1 (bit 7):   R/W flag (1 = write)
          Byte 2-15:        Data
          
          The length of the read indicates how many registers you want to read from
          sequentially