Using an atmega1284p @ 18.432 Mhz to be a go between a PC parallel port and a microSD card. My goal is to be able to read/write files to the microsd via PC parallel port. So far with the right kind of parallel port, performance is pretty decent (>500 KB/s) considering what it is. The below is a packet of 1024 bytes. I am using the "pc send error" line temporarily to show the time consumed by running a crc16 on this 1K on the AVR and it is roughly 1.8 milliseconds which ends up halving the speed because the AVR is busy during that time. I am using the standard _crc16_update(); function for this. Obviously I do want a checksum, but is there something less computationally demanding that is still decent? I could just add up all the bytes, but that is probably pretty crummy. Is there something between that and crc16?