Getting into a Windows environment is non-trivial for me so I want to exhaust other avenues before climbing that mountain. I did try all baud rates on INDI. Their documentation suggests 19200, though.

I did notice that the checksum calculation in INDI's planewave_efa.cpp does not match the PlaneWave documentation, but that in itself did not solve my issue as I am not getting two-way communication with the EFA unit at all. I am experimenting in the code to try and establish some communication with the EFA for starters. I am not ready to give up on that yet, but when I do, I will be forced to give Windows a try (the PlaneWave help desk advised the same thing - naturally - since they don't support non-Windows environments).

Anyhow, the calculateCheckSum() function was not calculating the 2's complement, so I added two lines before the return statement to do that:

uint8_t EFA::calculateCheckSum(const uint8_t *cmd, uint32_t len)
{
    int32_t sum = 0;
    for (uint32_t i = 1; i < len - 1; i++)
        sum += cmd[i];
    sum ^= 0xFFFFFFFF;
    sum++;
    return (sum & 0xFF);
}


Read More...