Command timing
Once the
$
is received, all subsequent characters must occur within 5 milliseconds of the
previous character. If the inter-character delay exceeds 5 ms, the command will be silently
discarded, and the receiving state machine will consume and ignore any characters received
until the next
$
.
Command responses
An
OK
response confirms that the input parameters have been updated in response to a
command. An
ERR
response indicates that additional or invalid characters were included
between the two-character command designator and the
*
of the command.
Boot up sequence
The user application should ignore any characters received during startup until the following
NMEA sentence has been received:
$TILE BOOT,RUNNING*49
The bootloader may output non-NMEA formatted messages during this time. These messages
include, but are not limited to: status messages, firmware update progress messages, and error
messages. These messages should be ignored and are for Swarm debugging purposes only.
Implementation of NMEA checksum in C
uint8_t nmeaChecksum (const char *sz, size_t len)
{
size_t i = 0;
uint8_t cs;
if (sz [0] == '$')
i++;
for (cs = 0; (i < len) && sz [i]; i++)
cs ^= ((uint8_t) sz [i]);
return cs;
}
October 2020
Swarm Tile Manual - Rev 1.10
33/65