Lattice Diamond Programmer: Why the hex file checksum differs with the checksum displayed in Diamond Programmer GUI? 

Lattice Diamond Programmer: Why the hex file checksum differs with the checksum displayed in Diamond Programmer GUI? 

The checksum in the hex file is the "Data checksum". 
Example:
00
e1
FFFFFFFFFFFFFFFF <- Line #3
FFFFFFFF4E114E11
4E114E11FC009CC7
009CC7009CC7009C
C7009CC7009CC700
9CC7009CC7009CC7
009CC70000000400
4770000000C000FF
814770000000C000
FF81476F000000E0
00FF81401C401C40
1C401C000000FFFF
C0FFAAAAFAFFFCFF
FFFFFFFFFFFFFFFF <- Line #16
2F75
FFFFFFFF

0x2F75 is the data checksum from line #3 up to line #16.

The Diamond Programmer checksum field display is "Transmission checksum". The transmission checksum is for the whole contents of the hex file.