To give you all a refresher about NASA's EADIN Lite Communications Protocol, I was happy to embrace it.

The problem is the downsides for me:

  • Only an 8-bit payload.
  • Before the Data Field, I need a Data Lenth Field of 1 byte
  • Each board must be programmed for its unique address in the chain. As I am very lazy, I can resolve this by installing a 4-bit switch that can be set be for installing into the network. This address is read at startup.
  • And I don't need the CRC check
  • Also, the node_ID and sender_ID can be put into one byte where sender =0x00 and a destination or slave is 0x00. As one byte is eight bits I can use the high order for the sender and low order for the destination. So "0014" the sender is 00 and the slave is 14 fins.

This leaves me with

 

BEFOREAFTER
  • Preamble: 3 bytes
    • 2 bytes start of message (0x00, 0x01)
    • 1 byte a sync byte (0x55)
    • Header: 5 bytes
      • 1 byte request type (ENQ/ACK/NAK = 0x05/0x06/0x15)
      • 1-byte node_ID of destination
      • 1-byte node_ID of the sender
      • 1-byte unique message number
      • 1-byte extra space to be used in future development
    • Data: X bytes (8 bytes Default)
      • 8 bytes DATA_L (can be modified)
    • Footer: 2 bytes
      • 2 bytes CRCFast (a 16 bit CRC, Default)
  • Preamble: 3 bytes
    • 2 bytes start of message (0x00, 0x01)
    • 1 byte a sync byte (0x55)
  • Header: 4 bytes
    • 1 byte request type (ENQ/ACK/NAK = 0x05/0x06/0x15)
    • 1-nibble node_ID of destination
    • 1-nibble node_ID of the sender
    • 1-byte unique message number
    • 1-byte payload length in bytes
  • Command:
    • 1-byte Command Payload (Simple commands for reading and writing)
  • Payload
    • Variable Length (one-byte standard (longer payloads such as Time Lat/Long etc.
  • Footer:
    • 2 bytes - End of Message
18 Bytes11 Bytes minimum