To follow on to my last reply. I can now communicate with the EFA, but the communication protocol is confusing and not documented beyond the sort of summary that is provided by this document . Do you happen to have something more in-depth on the protocol?

I receive back the echo of the command I send, but when I try to read the real information then I get a timeout error (-4) from that second tty_read.

If I accept the echo as a sufficient handshake, then as the loading proceeds, some requests go through, but others hit the timeout. I expect none of that can be trusted until the Handshake works properly (i.e., the version number is returned).

I will keep at it, but the mysteriousness of the protocol is annoying. Any suggestions appreciated.

P.S. As you probably realized immediately, just changing the current return statement on the calculateCheckSum function to:

return ((-sum) & 0xFF);

Namely just adding the minus sign, fixes it more succinctly.

 

Read More...