Skip to content

Command 1D Status response

Joe Moran edited this page Apr 23, 2021 · 24 revisions

0x1D Status Response

The $1D status response is sent from the Pod to provide information on its internal state, including insulin delivery, unacknowledged alerts, Pod active time, reservoir level, etc. as the normal response to non-specialized commands. This page explains how the different values are packed into the $1D status response.

The $1D status response has the following form:

00 01 02030405 06070809
1d SS 0PPPSNNN AATTTTRR
  • 1d byte $1d: The message type
  • SS byte: bits abcdeeee
    • 4-bit abcd nibble is a bit mask for active insulin delivery
      • a 8: Extended bolus active, exclusive of 4 bit
      • b 4: Immediate bolus active, exclusive of 8 bit
      • c 2: Temp basal active, exclusive of 1 bit
      • d 1: Basal active, exclusive of 2 bit
    • 4-bit eeee nibble is the Pod Progress State value (0 thru to F)
  • 0PPPSNNN dword = 0000 pppp pppp pppp psss snnn nnnn nnnn
    • 0000 4 zero bits
    • ppppppppppppp 13 bits, total # of pulses delivered during life of Pod
    • ssss 4 bits, message sequence # of last processed programming command (3, 8, $11, $19, $1A, $1C, $1E & $1F)
    • nnn nnnn nnnn 11 bits, total # of (immediate and extended) bolus pulses not (yet) delivered from the last requested bolus operation
  • AATTTTRR dword = faaa aaaa attt tttt tttt ttrr rrrr rrrr
    • f 1 bit, 0 or 1 if the Pod has faulted with occlusion fault code $14
    • aaaaaaaa 8 bits, bit mask of the active, unacknowledged alerts (1 << alert #) from the Command 19 Configure Alerts; this bit mask is the same as the TT byte in the 02 Error Response Type 2
    • ttttttttttttt 13 bits, Pod active time in minutes
    • rrrrrrrrrr 10 bits, Reservoir pulses remaining (if <= 50U) or $3ff (if > 50U left)

Unlike other messages, the second byte for a $1D status response is not a message length. It is speculated that this is because it was deemed important enough to save a byte on this often used and densely packed response.

The $1D status response is the normal (i.e., non-error) response to every non-specialized (i.e., non-startup & non-zero get status) command including 0x0E, 0x11, 0x19, 0x1A, 0x1C, 0x1E & 0x1F.

Detailed Example

PDM: press Home then Status:

2017-09-29T17:03:54.111984 ID1:1f0b3557 PTYPE:PDM SEQ:27 ID2:1f0b3557 B9:34 BLEN:3 BODY:0e0100808f CRC:da
2017-09-29T17:03:54.396382 ID1:1f0b3557 PTYPE:PDM SEQ:27 ID2:1f0b3557 B9:34 BLEN:3 BODY:0e0100808f CRC:da
2017-09-29T17:03:54.463921 ID1:1f0b3557 PTYPE:POD SEQ:28 ID2:1f0b3557 B9:38 BLEN:10 BODY:1d180258f80000146fff81f8 CRC:ce
2017-09-29T17:03:54.501481 ID1:1f0b3557 PTYPE:ACK SEQ:29 ID2:00000000 CRC:60

1d SS 0PPPSNNN AATTTTRR
1d 18 0258f800 00146fff

$18: $10 => Basal active, $08 = Running

0PPPSNNN = 0258f800 => 0000|0010 0101 1000 1|111 1|000 0000 0000
                       0000 pppp pppp pppp p sss s nnn nnnn nnnn
ppppppppppppp = $4B1 (13 bits) = 1201 pulses at 0.05U/pulse = 60U total insulin delivered
ssss = $F (4 bits), sequence #
nnnnnnnnnnn = 0 (11 bits), no units of bolus insulin not delivered from last bolus

AATTTTRR = 00146fff => 0|000 0000 0|001 0100 0110 11|11 1111 1111
                       f aaa aaaa a ttt tttt tttt tt rr rrrr rrrr
f = 0, not in fault state $14
aaaaaaaa = 0 (8 bits), no unacknowledged alerts
ttttttttttttt = $51B (13 bits) = 1307 minutes, Pod active 21 hours, 47 minutes
rrrrrrrrrr = $3FF (10 bits) = 1023 (the value when > 50U insulin left)

Other Example Responses

The following examples are grouped by the Pod Progress State:

1d 03 00001000 000003ff
  Pod progress = 3
  Sequence # = 2
  Pod alive time = 0 minutes
  Insulin remaining = $3ff (> 50U)

1d 03 00002000 000003ff
  Pod progress = 3
  Sequence # = 4
  Pod alive time = 0 minutes
  Insulin remaining = $3ff (> 50U)


1d 44 00003034 000003ff
  Immediate bolus activate
  Pod progress = 4
  Sequence # = 6
  Pod alive time = 0 minutes
  Insulin remaining = $3ff (> 50U)


1d 05 00174000 000007ff
  Pod progress = 5
  Insulin = $2E pulses (46 x 0.05U = 2.30U)
  Sequence # = 8
  Pod alive time = 1 minute
  Insulin remaining = $3ff (> 50U)


1d 16 00175000 000007ff
  Basal active
  Pod progress = 6
  Insulin = $2E pulses (46 x 0.05U = 2.30U)
  Sequence # = $A
  Pod alive time = 1 minute
  Insulin remaining = $3ff (> 50U)

1d 16 00176000 00000bff
  Basal active
  Pod progress = 6
  Insulin = $2E pulses (46 x 0.05U = 2.30U)
  Sequence # = $C
  Pod alive time = 2 minutes
  Insulin remaining = $3ff (> 50U)


1d 57 0017700a 00000bff
  Basal activate
  Immediate bolus active
  Pod progress = 7
  Insulin = $2E pulses (46 x 0.05U = 2.30U)
  Sequence # = $E
  Pod alive time = 2 minutes
  Insulin remaining = $3ff (> 50U)


1d 18 001c7000 00000bff
  Basal active
  Pod progress = 8 (Running)
  Insulin = $38 pulses (56 x 0.05U = 2.80U)
  Sequence # = $E
  Pod alive time = 2 minutes
  Insulin remaining = $3ff (> 50U)

1d 18 001c7000 000017ff
  Basal active
  Pod progress = 8 (Running)
  Insulin = $38 pulses (56 x 0.05U = 2.80U)
  Sequence # = $E
  Pod alive time = 5 minutes
  Insulin remaining = $3ff (> 50U)

Many $1D status response examples can be found in Status Response 1D.

Clone this wiki locally