def crcMAD(data): crc = 0xc7 for byte in data: crc ^= byte for _ in range(8): msb = crc & 0x80 crc = (crc << 1) & 0xff if msb: crc ^= 0x1d return hex(crc) print crcMAD([0x00,0x03,0xE1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])