in reply to XOR'ing to calculate a hex checksum

Unpack has the little known property to be able to calculate sums in several bit widths. In this case first convert the hexadecimal representation to a character string, sum over that in 8 bits and invert:
perl -wle 'print 0xff ^ unpack "%8C*", pack"H*", "00018108000202020202 +0202"' 103