-
Notifications
You must be signed in to change notification settings - Fork 46
Command 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 is06
-
03
(1 byte): mlen for this response is always03
-
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 onEE
value- if
EE
== 0x14: encoded value with encoded sync word for new nonce sequence (typical) - if
EE
!= 0x14: Fault Event Codes byte followed by a Pod Progress State byte
- if
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).
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
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.