Error checking is actually very easy and there is an AVR lib that does this in a one liner. Read up on 'util/crc16.h' and you should be good to go in no time with the included examples. CRC is quite robust and fast for simple applications.