Skip to content

Command 01 Version Response

Joe Moran edited this page Jan 29, 2021 · 19 revisions

01 Version Response

This response is sent by the Pod to the two pairing commands (07 Assign ID Command and 03 Setup Pod Command) using during Pod startup and has two formats of different lengths for the two cases.

Command 07 Response (mlen $15)

The 01 Version Response message with mlen of $15 is returned from the first pairing command 07 Command and has the following format:

OFF 1  2 3 4  5 6 7  8  9 10111213 14151617 18 19202122
01 15 MXMYMZ IXIYIZ VV 0J LLLLLLLL TTTTTTTT GS IIIIIIII
  • 01 (1 byte) [0]: mtype value of 01 specifies the Version Response command
  • 15 (1 byte) [1]: mlen of $15 is this format (the 07 Command response)
  • MXMYMZ (3 bytes) [2:4]: PM MX.MY.MZ
  • IXIYIZ (3 bytes) [5:7]: PI IX.IY.IZ
  • ``VV` (1 byte) [8]: always 2 (at least for PM == PI == 2.7.0)
  • 0J (1 byte) [9]: Pod Progress State, typically 02 (but possibly 01) for this shorter response
  • LLLLLLLL (4 bytes) [$A:$D]: Pod Lot
  • TTTTTTTT (4 bytes) [$E:$11]: Pod TID
  • GS (1 byte): [18]: bits ggssssss containing Pod radio information
    • gg: Pod's current receiver low gain, observed minimum gain is at 2 & observed maximum gain is at 0
    • ssssss: Pod's current Received Signal Strength Indictor (RSSI) value, observed maximum & minimum values of 61 & 8
  • IIIIIIII (4 bytes) [19:22]: ID (Pod address) as given in the 07 Command

When pairing using a 433 MHz RileyLink it has been observed that when the reported RSSI value is too high or too low, there is a significant increase in odds of 01 Version Response packets being dropped which can potentially lead to pairing difficulties &/or pods that won't get their radio ID register properly initialized.

Example #1 for Command 07 response (mlen $15)

Taken from Pairing 03:

01 15 MXMYMZ IXIYIZ VV 0J LLLLLLLL TTTTTTTT GS IIIIIIII
01 15 020700 020700 02 02 0000a377 0003ab37 9f 1f00ee87
  • PM = 2.7.0
  • PI = 2.7.0
  • VV = 2
  • 0J = 2 (Reminder initialized Pod Progress State)
  • Lot = $0000a377 = L41847
  • TID = $0003ab37 = 240439
  • GS = $9f: Receiver Low Gain = 2, RSSI = $1f (31)
  • IIIIIIII = $1f00ee87 Assigned connection ID (address)

Example #2 for Command 07 response (mlen $15)

Taken from Pod setup with known Lot and TID:

01 15 MXMYMZ IXIYIZ VV 0J LLLLLLLL TTTTTTTT GS IIIIIIII
01 15 020700 020700 02 02 0000a640 00097c27 9c 1f08ced2
  • PM = 2.7.0
  • PI = 2.7.0
  • VV = 2
  • 0J = 2 (Reminder initialized Pod Progress State)
  • Lot = $0000a640 = L42560
  • TID = $00087c27 = 556071
  • GS = $9c: Receiver Low Gain = 2, RSSI = $1c (28)
  • IIIIIIII = $1f08ced2 Assigned connection ID (address)

Because this format 01 Response is used to reply to 07 Command that is used as the first step of activating a new Pod, the Pod progress byte 0J must be less than 03 (Pairing completed) for this format and except in rare cases will always be 02 (Reminder initialized).

Command 03 Response (mlen $1b)

The 01 Version Response message with a mlen of $1b is returned from the Pod for the second pairing command 03 Command.

OFF 1  2 3  4  5  6  7  8  91011 121314 15 16 17181920 21222324 25262728
01 1b UUUU IB PB PP CP PL MXMYMZ IXIYIZ VV 0J LLLLLLLL TTTTTTTT IIIIIIII
01 1b 1388 10 08 34 0A 50 MXMYMZ IXIYIZ 02 0J LLLLLLLL TTTTTTTT IIIIIIII (always for PM = PI = 2.7.0)
  • 01 (1 byte) [0]: mtype value of 01 specifies the Version Response command
  • 1b (1 byte) [1]: mlen of $1b is this format (the 03 Command response)
  • UUUU (2 bytes) [2:3]: (always $1388 = 5000 for 2.7.0), # of micro Units per tenth pulse for U100 insulin
  • IB (1 byte) [4]: (always $10 for 2.7.0), # of 125 mS per pulse timing for Immediate Bolus
  • PB (1 byte) [5]: (always $08 for 2.7.0), # of 125 mS per pulse timing for Prime or Cannula Insertion Boluses
  • PP (1 byte) [6]: (always $34 for 2.7.0), # of Prime Pulses (52 pulses x 0.05U/pulse = 2.6U priming bolus)
  • CP (1 byte) [7]: (always $0A for 2.7.0), # of Cannula insertion Pulses (10 pulses x 0.05U/pulse = 0.5U cannula insertion bolus)
  • PL (1 byte) [8]: (always $50 for 2.7.0), # of hours maximum Pod Life (80 hours)
  • MXMYMZ (3 bytes) [9:11]: PM MX.MY.MZ
  • IXIYIZ (3 bytes) [12:14]: PI IX.IY.IZ
  • VV 02 (1 byte) [15]: (always $02 for 2.7.0), checked if == 2 for alternate handling by PDM when pod firmware version is 2.6.0
  • 0J (1 byte) [16]: Pod Progress State, should always be 03 for this response
  • LLLLLLLL (4 bytes) [17:20]: Pod Lot
  • TTTTTTTT (4 bytes) [21:24]: Pod TID
  • IIIIIIII (4 bytes) [25:28]: Assigned Connection ID (Pod address)

Notes

The PDM will error out on a pod if it doesn't return an UUUU value of $1388 (i.e., 0.05U per pulse for U100 insulin) and then uses the returned value in resulting insulin delivery calculations. The PDM also uses the returned IB, PB, PP and SP values for insulin delivery calculations without any checking (when UUUU == 5000).

If PL is > 72, then the PDM will set the nominal pod life to 72 hours, else the nominal pod life will be set to PL-1 hours.

Example for Command 03 response (mlen $1b)

Taken from Pod setup with known Lot and TID:

01 1b UUUU IB PB PP SP PL MXMYMZ IXIYIZ VV 0J LLLLLLLL TTTTTTTT IIIIIIII
01 1b 1388 10 08 34 0a 50 020700 020700 02 03 0000a377 0003ab37 1f00ee87
  • UUUU = $1388 = 5000 micro-Units per sub-pulse (0.05U per pulse with U100 insulin)
  • IB = $10 = 16 x 125 mS per pulse timing = 2 seconds/pulse for Immediate Boluses
  • PB = $08 = 8 x 125 mS per pulse timing = 1 second/pulse for Prime & cannula insertion Boluses
  • PP = $34 = 52 Prime Pulses needed, 52 * 0.05U/pulse = 2.6U prime bolus size
  • SP = $0a = 10 Sub-Pulses per pulse
  • PL = $50 = 80 hours maximum Pod Life
  • PM = 2.7.0
  • PI = 2.7.0
  • VV = 2
  • 0J = 3 (Pairing completed Pod Progress State)
  • Lot = $0000a377 = L41847
  • TID = $0003ab37 = 240439
  • IIIIIIII = $1f00ee87 Assigned connection ID (address)

Because this format 01 Response is used as a response to a 03 Command that is used as part of a fixed sequence when activating a new Pod, the Pod progress byte 0J should always be 03 (Pairing success) for this response format.

Observations

The shorter mlen $15 format message is the response for the first pairing command 07 Command and fits in a single packet. This shorter format contains the GS byte with the pod's radio information which can be used to verify suitable communication quality by the PDM or other controlling software before proceeding with the second step of pairing.

The longer mlen $1b format message is the response for the second pairing command 03 Command. This longer format doesn't contain a GS byte, but has a fixed byte 7 sequence (for at least pod firmware 2.7.0) of previously unknown meaning that makes this version response span a packet. The pod's radio configuration is not actually fully completed until the after this longer response has been successfully acknowledged.

The fixed 7-byte sequence (of $13881008340a50 for pod firmware 2.7.0) in the longer format is now known to have a number of basic pod configuration constants. The controlling DIY software can simply verify that the returned values match the expected constants since it's unlikely that there will be some future Eros pod with a major firmware revision returning anything other than pod firmware values of $13881008340a50. In the more general case, the controlling DIY software should verify that UUUU value is the expected value and then use the other returned values in place of using various hardcoded constant values in most places.

Clone this wiki locally