Skip to content

Command 06 Error Response

Joe Moran edited this page Dec 29, 2021 · 4 revisions

06 Error Response

A Pod 06 Response is returned for any non-fatal command error. The most typical error response is for a bad nonce which can happen for any command using a nonce which is sent after an earlier command using a nonce was not received by the Pod because it was out of range. For a bad nonce error, the PDM and Pod will start a new nonce sequence to get back in sync and the PDM can then retry the request with a new nonce.

06 03 EE WWWW
  • 06 (1 byte): mtype of this response is 06
  • 03 (1 byte): mlen for this response is always 03
  • EE (1 byte): error code, typically 0x14 for a retryable bad nonce error; other values indicate some other non-retryable command error
  • WWWW (2 bytes): interpretation depends on EE value

For the EE != 0x14 case with a non-faulted pod, WWWW will be of the form 0000P since the Fault Event Codes would be 0x00 for a non-faulted pod and P would be the Pod Progress State value which is a nibble value.

For the EE == 0x14 bad nonce case, WWWW is a 16-bit word value encoded with formula:

(LSB Word of FailedNonce + crc16_table[MessageSequenceNum] + (LSB word)Lot + (LSB word)TID) ^ NewSeed

NewSeed can be extracted knowing the other parameters (Lot, TID, MessageSeqNum, FailedNonce).

EE code meanings

These are the meanings for the EE byte.

  • 0x01 - Error with flash write operation
  • 0x02 - Error with flash erase operation
  • 0x03 - Low level flash operation failed
  • 0x04 - Illegal flash address
  • 0x05 - Error with pod state
  • 0x06 - Error with critical variable
  • 0x07 - Illegal parameter
  • 0x08 - Error with bolus critical variable check
  • 0x09 - Illegal parameter in command
  • 0x0A - Calculated checksum doesn't match message checksum
  • 0x0B - Invalid message length
  • 0x0C - Command received in wrong pump state
  • 0x0D - Illegal command received
  • 0x0E - Pod in illegal fill state
  • 0x0F - Max read/write size is too large
  • 0X10 - Read address out of range
  • 0x11 - Illegal memory type
  • 0x12 - Pod init command wasn't successful
  • 0x13 - Command received in wrong state
  • 0x14 - Illegal security code received in message
  • 0x15 - Error, pod in alarm
  • 0x16 - Programming command received without COMD set
  • 0x17 - Illegal Rx sensitivity value
  • 0x18 - Illegal Tx packet size
  • 0x19 - Occl params in flash already set
  • 0x1A - Occl Param out of range
  • 0x1B - Illegal carrier detection threshold value
  • 0x1C - Command should be ignored
  • 0x1D - Invalid CRC

Example for a Bad Nonce Retry

Taken from Shutdown screaming pod:

1c 04 NNNNNNNN
1c 04 9171dd42    PDM attempts to deactivate Pod with command 0x1c with an invalid nonce

06 03 EE WWWW
06 03 14 af95     POD responses with 06 Bad Nonce with nonce sync word

1c 04 NNNNNNNN
1c 04 9df61349    PDM deactivates Pod using the re-seeded nonce

In this example, the first attempted Pod deactivate command from the PDM generates the 06 error for a bad nonce from the Pod with a WWWW value of af95 which the PDM uses to re-seed its nonce calculation. The PDM then resubmits the Pod deactivate command using the new nonce.

Clone this wiki locally