Skip to content
Joe Moran edited this page Nov 27, 2022 · 34 revisions

0x1A Command for Table 2: Bolus

When the 1A command is given a TableNum of 2, the command specifies a bolus to be delivered. The 1A command for Table 2 command can be either an immediate bolus &/or an extended bolus. This page documents the details of the 1A command for this case. See the Command 1A Insulin Schedule page for general background on the 1A Insulin Schedule command.

The $1A command format for a bolus command is as follows:

00 01 02030405 06 0708 09 0A0B 0C0D 0E0F  1011
1a LL NNNNNNNN 02 CCCC HH SSSS PPPP napp [napp...]  17...
  • 1a (1 byte): Mtype value of $1a specifies a generic insulin schedule command

  • LL (1 byte): Length, == $0e for a normal bolus and >= $0e for an extended bolus

  • NNNNNNNN (4 bytes): Nonce, the 32-bit validator (random looking numbers for Eros and a fixed constant value for Dash)

  • 02 (1 byte): TableNum of $02 specifies this is a bolus command

  • CCCC (2 bytes): CheckSum, byte sum of the following 3 fields along with the bytes in the generated insulin schedule table

  • HH (1 byte): Number of resulting Half Hour insulin table entries. For a normal (immediate) bolus this will be 1, for an extended or dual-wave bolus, HH will be 1 plus the # of half-hours in the extended bolus duration.

  • SSSS (2 bytes): PPPP times $10 (for a standard two seconds between pulse immediate bolus) or times 8 (for an one second between pulse bolus during priming and cannula insertion).

  • PPPP (2 bytes): Pulses, # of pulses to deliver immediately. The maximum documented value is $0258 (30U bolus).

  • napp (2 bytes): For a normal immediate bolus the first InsulinScheduleElement will be of the form 0ppp and will match PPPP. For certain "dual wave" and extended bolus only situations, the first InsulinScheduleElement may also describe part of or all of the extended bolus portion of the bolus. In all cases, the ppp value (i.e., the # of 0.05U pulses) in the first InsulinScheduleElement will always match the number of immediate pulses (if any) to be delivered.

  • [napp...] (2 bytes per additional element): 1 or more InsulinScheduleElements used to describe any (remaining) extended bolus.

  • 17... The Next Command for a bolus is always a $17 Bolus Extra subcommand which describes the delivery rate for the immediate and extended bolus portions of the $1A bolus command.

For example, consider the following command for a normal (immediate) 0.30U bolus:

00 01 02030405 06 0708 09 0A0B 0C0D 0E0F  1011
1a LL NNNNNNNN 02 CCCC HH SSSS PPPP 0ppp  17...
1a 0e fcc35735 02 006d 01 0060 0006 0006  17...

This command is parsed as:

  • 1a: Mtype of $1a specifies some insulin schedule command

  • 0e: Fixed command length of $0e for a normal bolus (i.e., only one InsulinScheduleElement)

  • fcc35735: The nonce value in this example

  • 02: TableNum value of $02 specifies this is a bolus command

  • 006d: CheckSum, byte sum of remaining 7 bytes

  • 01: 1 entry in the resulting insulin schedule table for a normal bolus

  • 0060: The InsulinScheduleElement value of 0006 x $10 (0006 << 4)

  • 0006: Same as the InsulinScheduleElement value of 0006

  • 0006: InsulinScheduleElement for a single six 0.05U pulse element

  • 17... The start of the fixed next subcommand as documented in Command 17 Bolus extra

Checksum for a Normal Bolus

For the 1A Insulin Schedule commands, the CheckSum is the byte sum of the bytes in 3 following fields in the command along with the bytes in the generated insulin schedule table. However for a normal bolus command, this value will end up being the same as sum of the following 7 bytes the command due to the fixed nature of the normal bolus insulin schedule command format which always uses a single InsulinScheduleElement which is just the number of 0.05U pulses.

The CheckSum value was $006d in the given example for a normal bolus. The field bytes from the 3 following fields in this command are 01 00 60 00 06 which sums to $67. The insulin schedule table bytes for $0006 is just a single insulin schedule table entry of [6]. $67 + 6 = $6d which matches the expected CheckSum value. Because the normal immediate bolus command always has a single InsulinScheduleElement of the form 0ppp (where ppp is the number of 0.05U pulses up to a max of $258 or 30U max/0.05U), this generates a single entry insulin schedule table with the value of [ppp]. Thus since for the normal bolus command the sum of the bytes for the single InsulinScheduleElement ppp is always the same as the sum of the bytes in the generated single entry insulin schedule table [ppp], the CheckSum for a normal bolus command turns out to just be the sum of the remaining 7 bytes in the command.

One can verify that all of these bytes sum to $6d (=109 decimal) as shown in python below:

hex_data = '010060000606'
b = bytearray.fromhex(hex_data)
checksum = sum((b))
print(checksum)  # 109
print(hex(checksum))  # 0x6d

Example Normal Bolus Commands

1a 0e NNNNNNNN 02 CCCC HH SSSS PPPP 0ppp  17...
1a 0e 92142003 02 0013 01 0010 0001 0001  17...  0.05U
1a 0e 03117123 02 0025 01 0020 0002 0002  17...  0.10U
1a 0e 464be60d 02 0037 01 0030 0003 0003  17...  0.15U
1a 0e 6c5412e1 02 0049 01 0040 0004 0004  17...  0.20U
1a 0e 8ef824bb 02 005b 01 0050 0005 0005  17...  0.25U
1a 0e fcc35735 02 006d 01 0060 0006 0006  17...  0.30U
1a 0e f4f0bfed 02 007f 01 0070 0007 0007  17...  0.35U
1a 0e 7cfd3642 02 0091 01 0080 0008 0008  17...  0.40U
1a 0e 1335474a 02 00a3 01 0090 0009 0009  17...  0.45U
1a 0e 84a6fb7f 02 00b5 01 00a0 000a 000a  17...  0.50U
1a 0e d9d7fb3f 02 011e 01 01e0 001e 001e  17...  1.50U
1a 0e ae89f72a 02 02fe 01 0ff0 00ff 00ff  17... 12.75U
1a 0e f3e10cc3 02 0013 01 1000 0100 0100  17... 12.80U
1a 0e c36ef335 02 0310 01 1ff0 01ff 01ff  17... 25.55U

In all of these examples, the SSSS field is $10 times (<< 4) the InsulinScheduleElement value which generates a pulse every 2 seconds for normal boluses. For the special priming and cannula insertion boluses used during pod startup, the SSSS field is 8 times InsulinScheduleElement which generates a pulse every 1 second.

Cannula Insertion Bolus

00 01 02030405 06 0708 09 0A0B 0C0D 0E0F  10 11 12 1314 15161718 1A1B 1C1D1E1F
1a LL NNNNNNNN 02 CCCC HH SSSS PPPP napp  17 LL BO NNNN XXXXXXXX YYYY ZZZZZZZZ
1a 0e 7e30bf16 02 0065 01 0050 000a 000a  17 0d 00 0064 000186a0 0000 00000000

For this special case 0.50U bolus, the SSSS value is 8 times (instead of the typical 16 = $10 times) the PPPP value for one second between pulses instead of the default 2 seconds between boluses that the Pod uses for normal immediate bolus delivery.

Extended Boluses

Extended bolus commands use a single $1A command with potentially additional InsulinScheduleElement to describe both the immediate and the extended bolus delivery. There can only be one active extended bolus in effect at one time. As illustrated in Bolus with active extended bolus, it appears that the PDM apparently also needs to send a remaining extended bolus insulin schedule when a normal bolus is done while an extended bolus is still active. It appears that the immediate and the extended portions of a bolus are tightly tied together.

Consider the following example taken from Bolus with extended delivery of an 6.0U extended bolus with 2.0U delivered now and 4.0U delivered over 3 hours:

00 01 02030405 06 0708 09 0A0B 0C0D 0E0F 1011 1213 1415 1617  18
1a LL NNNNNNNN 02 CCCC HH SSSS PPPP napp napp napp napp napp  17...
1a 16 01e475cb 02 0129 07 0280 0028 0028 100d 000e 100d 000e  17...

This command is parsed as:

  • 1a: Mtype of $1a specifies some insulin schedule command

  • 16: Length which will be >= $10 for extended bolus, ($16-$C)/2 = Five InsulinScheduleElements

  • 01e475cb: The nonce value in this example

  • 02: TableNum value of $02 specifies this is a bolus command

  • 0129: CheckSum, byte sum of remaining 7 bytes and of the resulting insulin schedule table

  • 07: HH, 7 total entries in the resulting insulin schedule table

  • 0280: SSSS, the first InsulinScheduleElement value of 0028 * $10

  • 0028: Pulses, the first InsulinScheduleElement value of 0028 (# of pulses to deliver immediately)

  • 0028: 1 entry (immediate) of [40] * 0.05U = 2.0U immediate bolus

  • 100d: n=1+1 = 2 entries (1 hour) of [13 13]

  • 000e: n=0+1 = 1 entry (0.5 hour) of [14]

  • 100d: n=1+1 = 2 entries (1 hour) of [13 13]

  • 000e: n=0+1 = 1 entry (0.5 hour) of [14]

  • 17... The start of the fixed next subcommand as documented in Command 17 Bolus extra

The five InsulinScheduleElements in this extended bolus command example expand to make the following 7 entry insulin schedule table which describes the immediate bolus and the 3 hour extended bolus:

1: 40 pulses x 0.05U/pulse = 2.0U immediate

2: 13 pulses x 0.05U/pulse = 0.65U 1/2 hour
3: 13 pulses x 0.05U/pulse = 0.65U 1/2 hour
4: 14 pulses x 0.05U/pulse = 0.70U 1/2 hour
5: 13 pulses x 0.05U/pulse = 0.65U 1/2 hour
6: 13 pulses x 0.05U/pulse = 0.65U 1/2 hour
7: 14 pulses x 0.05U/pulse = 0.70U 1/2 hour
                             4.0U total over 3 hours extended bolus

Extended Bolus Checksum

For the 1A Insulin Schedule command, the CheckSum is the byte sum of the bytes in 3 following fields in the command along with the bytes in the generated insulin schedule table. An extended bolus command can have more than one InsulinScheduleElement to create a non-trivial insulin schedule table that will need to be generated and summed to compute the command 1A CheckSum value.

The CheckSum value was $129 in the given example for an extended bolus command. The field bytes from the 3 following fields in this example are 07 02 80 00 28 which sum to $b1. The insulin schedule table for the five InsulinScheduleElement values of $0028, $100d, $000e, $100d, $000e is [40i+13 13 14 13 13 14] which sums to 120 or $78. $b1 + $78 = $129 which matches the expected CheckSum value.

One can verify that all of these bytes sum to $129 (=297 decimal) as shown in python below:

hex_data = '0702800028280d0d0e0d0d0e'
b = bytearray.fromhex(hex_data)
checksum = sum((b))
print(checksum)  # 297
print(hex(checksum))  # 0x129

Extended Bolus with No Immediate Bolus

In this example taken from Bolus with only extended delivery, a 1.0U extended bolus is given over 1 hour with no immediate bolus:

00 01 02030405 06 0708 09 0A0B 0C0D 0E0F 1011  18
1a LL NNNNNNNN 02 CCCC HH SSSS PPPP 0ppp napp  17...
1a 10 2d312781 02 0017 03 0000 0000 0000 100a  17...

This example with 2 InsulinScheduleElements creates a 3 entry (as specified by the 03 value in the HH field) insulin schedule table of [0i+10e 10e] to deliver the extended bolus with no immediate bolus as shown:

1:  0 pulses x 0.05U/pulse = 0.0U immediate
2: 10 pulses x 0.05U/pulse = 0.50U 1/2 hour
3: 10 pulses x 0.05U/pulse = 0.50U 1/2 hour
                             1.00U total over 1 hour extended bolus

Note that in this example with no immediate bolus, that the first InsulinScheduleElement value is 0000 which also means that the FieldA and FieldC values are also both 0000. The Checksum in this case is the byte sum of the following 5 bytes in the next 3 fields (03 0000 0000) = 3 plus the byte sum of the generated insulin schedule table [0 $a $a] = $14 and so 3 + $14 = $17 which is the expected Checksum value.

Advanced Extended Bolus Encoding

The Omnipod PDM's will encode the insulin delivery using the fewest # of InsulinScheduleElements to correctly describe the delivery. If the # of immediate pulses to be delivered matches or is one less than the # of extended pulses to be delivered in the first half hour of the extended delivery portion, the PDM will encode the first InsulinScheduleElement to describe the immediate bolus portion (if any) and at least the first part of the extended bolus portion and the n value for the first InsulinScheduleElement will be non-zero. If the n value for the first InsulinScheduleElement is zero, then it only describes the immediate portion of the bolus and the next InsulinScheduleElement starts to describe the insulin delivery for the extended bolus portion. Some examples will help demonstrate the encoding method and the resulting insulin delivery schedule tables. The first half hour in the insulin delivery schedule tables below are composed of both the immediate and extended pulses.

Immediate Bolus of 0.00U with Varying Extended Bolus Amounts and Durations
                * * * 0.05U Extended Bolus (0i 1e) * * *
       napp  napp  napp  napp  napp  napp         Insulin Schedule Table
0.5hr $1800                                       [ 0i+1 ]
1.0hr $1000 $0001                                 [ 0i+0 1 ]

                * * * 0.10U Extended Bolus (0i 2e) * * *
       napp  napp  napp  napp  napp  napp         Insulin Schedule Table
0.5hr $0000 $0002                                 [ 0i+2 ]
1.0hr $1800 $0001                                 [ 0i+1 1 ]
1.5hr $1000 $1001                                 [ 0i+0 1 1 ]
2.0hr $1000 $0001 $1800                           [ 0i+0 1 0 1 ]

                * * * 0.15U Extended Bolus (0i 3e) * * *
       napp  napp  napp  napp  napp  napp         Insulin Schedule Table
0.5hr $0000 $0003                                 [ 0i+3 ]
1.0hr $1800 $0002                                 [ 0i+1 2 ]
1.5hr $1800 $1001                                 [ 0i+1 1 1 ]
2.0hr $1000 $2001                                 [ 0i+0 1 1 1 ]
2.5hr $1000 $0001 $1800 $0001                     [ 0i+0 1 0 1 1 ]
3.0hr $1000 $0001 $3800                           [ 0i+0 1 0 1 0 1 ]

                * * * 0.20U Extended Bolus (0i 4e) * * *
       napp  napp  napp  napp  napp  napp         Insulin Schedule Table
0.5hr $0000 $0004                                 [ 0i+4 ]
1.0hr $0000 $1002                                 [ 0i+2 2 ]
1.5hr $1800 $1801                                 [ 0i+1 1 2 ]
2.0hr $1800 $2001                                 [ 0i+1 1 1 1 ]
2.5hr $1000 $3001                                 [ 0i+0 1 1 1 1 ]
3.0hr $1000 $1001 $1800 $0001                     [ 0i+0 1 1 0 1 1 ]
3.5hr $1000 $0001 $3800 $0001                     [ 0i+0 1 0 1 0 1 1 ]
4.0hr $1000 $0001 $5800                           [ 0i+0 1 0 1 0 1 0 1 ]

                * * * 0.25U Extended Bolus (0i 5e) * * *
       napp  napp  napp  napp  napp  napp         Insulin Schedule Table
0.5hr $0000 $0005                                 [ 0i+5 ]
1.0hr $0000 $1802                                 [ 0i+2 3 ]
1.5hr $1800 $1002                                 [ 0i+1 2 2 ]
2.0hr $1800 $1001 $0002                           [ 0i+1 1 1 2 ]
2.5hr $1800 $3001                                 [ 0i+1 1 1 1 1 ]
3.0hr $1000 $4001                                 [ 0i+0 1 1 1 1 1 ]
3.5hr $1000 $1001 $1800 $1001                     [ 0i+0 1 1 0 1 1 1 ]
4.0hr $1000 $0001 $1800 $0001 $1800 $0001         [ 0i+0 1 0 1 1 0 1 1 ]
4.5hr $1000 $0001 $5800 $0001                     [ 0i+0 1 0 1 0 1 0 1 1 ]
5.0hr $1000 $0001 $7800                           [ 0i+0 1 0 1 0 1 0 1 0 1 ]
Immediate Bolus of 0.05U with Varying Extended Bolus Amounts and Durations
                * * * 0.05U Extended Bolus (1i 1e) * * *
       napp  napp  napp  napp  napp  napp         Insulin Schedule Table
0.5hr $1001                                       [ 1i+1 ]
1.0hr $0001 $1800                                 [ 1i+0 1 ]

                * * * 0.10U Extended Bolus (1i 2e) * * *
       napp  napp  napp  napp  napp  napp         Insulin Schedule Table
0.5hr $1801                                       [ 1i+2 ]
1.0hr $2001                                       [ 1i+1 1 ]
1.5hr $0001 $1800 $0001                           [ 1i+0 1 1 ]
2.0hr $0001 $3800                                 [ 1i+0 1 0 1 ]

                * * * 0.15U Extended Bolus (1i 3e) * * *
       napp  napp  napp  napp  napp  napp         Insulin Schedule Table
0.5hr $0001 $0003                                 [ 1i+3 ]
1.0hr $1001 $0002                                 [ 1i+1 2 ]
1.5hr $3001                                       [ 1i+1 1 1 ]
2.0hr $0001 $1800 $1001                           [ 1i+0 1 1 1 ]
2.5hr $0001 $3800 $0001                           [ 1i+0 1 0 1 1 ]
3.0hr $0001 $5800                                 [ 1i+0 1 0 1 0 1 ]

                * * * 0.20U Extended Bolus (1i 4e) * * *
       napp  napp  napp  napp  napp  napp         Insulin Schedule Table
0.5hr $0001 $0004                                 [ 1i+4 ]
1.0hr $1801 $0002                                 [ 1i+2 2 ]
1.5hr $2001 $0002                                 [ 1i+1 1 2 ]
2.0hr $4001                                       [ 1i+1 1 1 1 ]
2.5hr $0001 $1800 $2001                           [ 1i+0 1 1 1 1 ]
3.0hr $0001 $1800 $0001 $1800 $0001               [ 1i+0 1 1 0 1 1 ]
3.5hr $0001 $5800 $0001                           [ 1i+0 1 0 1 0 1 1 ]
4.0hr $0001 $7800                                 [ 1i+0 1 0 1 0 1 0 1 ]

                * * * 0.25U Extended Bolus (1i 5e) * * *
       napp  napp  napp  napp  napp  napp         Insulin Schedule Table
0.5hr $0001 $0005                                 [ 1i+5 ]
1.0hr $1801 $0003                                 [ 1i+2 3 ]
1.5hr $1001 $1002                                 [ 1i+1 2 2 ]
2.0hr $3001 $0002                                 [ 1i+1 1 1 2 ]
2.5hr $5001                                       [ 1i+1 1 1 1 1 ]
3.0hr $0001 $1800 $3001                           [ 1i+0 1 1 1 1 1 ]
3.5hr $0001 $1800 $0001 $1800 $1001               [ 1i+0 1 1 0 1 1 1 ]
4.0hr $0001 $3800 $0001 $1800 $0001               [ 1i+0 1 0 1 1 0 1 1 ]
4.5hr $0001 $7800 $0001                           [ 1i+0 1 0 1 0 1 0 1 1 ]
5.0hr $0001 $9800                                 [ 1i+0 1 0 1 0 1 0 1 0 1 ]
Immediate Bolus of 0.10U with Varying Extended Bolus Amounts and Durations
                  * * * 0.05U Extended Bolus (2i 1e) * * *
       napp  napp  napp  napp  napp  napp         Insulin Schedule Table
0.5hr $0002 $0001                                 [ 2i+1 ]
1.0hr $0002 $1800                                 [ 2i+0 1 ]

                  * * * 0.10U Extended Bolus (2i 2e) * * *
       napp  napp  napp  napp  napp  napp         Insulin Schedule Table
0.5hr $1002                                       [ 2i+2 ]
1.0hr $0002 $1001                                 [ 2i+1 1 ]
1.5hr $0002 $1800 $0001                           [ 2i+0 1 1 ]
2.0hr $0002 $3800                                 [ 2i+0 1 0 1 ]

                  * * * 0.15U Extended Bolus (2i 3e) * * *
       napp  napp  napp  napp  napp  napp         Insulin Schedule Table
0.5hr $1802                                       [ 2i+3 ]
1.0hr $0002 $1801                                 [ 2i+1 2 ]
1.5hr $0002 $2001                                 [ 2i+1 1 1 ]
2.0hr $0002 $1800 $1001                           [ 2i+0 1 1 1 ]
2.5hr $0002 $3800 $0001                           [ 2i+0 1 0 1 1 ]
3.0hr $0002 $5800                                 [ 2i+0 1 0 1 0 1 ]

                  * * * 0.20U Extended Bolus (2i 4e) * * *
       napp  napp  napp  napp  napp  napp         Insulin Schedule Table
0.5hr $0002 $0004                                 [ 2i+4 ]
1.0hr $2002                                       [ 2i+2 2 ]
1.5hr $0002 $1001 $0002                           [ 2i+1 1 2 ]
2.0hr $0002 $3001                                 [ 2i+1 1 1 1 ]
2.5hr $0002 $1800 $2001                           [ 2i+0 1 1 1 1 ]
3.0hr $0002 $1800 $0001 $1800 $0001               [ 2i+0 1 1 0 1 1 ]
3.5hr $0002 $5800 $0001                           [ 2i+0 1 0 1 0 1 1 ]
4.0hr $0002 $7800                                 [ 2i+0 1 0 1 0 1 0 1 ]

                * * * 0.25U Extended Bolus (2i 5e) * * *
       napp  napp  napp  napp  napp  napp         Insulin Schedule Table
0.5hr $0002 $0005                                 [ 2i+5 ]
1.0hr $1002 $0003                                 [ 2i+2 3 ]
1.5hr $0002 $1801 $0002                           [ 2i+1 2 2 ]
2.0hr $0002 $2001 $0002                           [ 2i+1 1 1 2 ]
2.5hr $0002 $4001                                 [ 2i+1 1 1 1 1 ]
3.0hr $0002 $1800 $3001                           [ 2i+0 1 1 1 1 1 ]
3.5hr $0002 $1800 $0001 $1800 $1001               [ 2i+0 1 1 0 1 1 1 ]
4.0hr $0002 $3800 $0001 $1800 $0001               [ 2i+0 1 0 1 1 0 1 1 ]
4.5hr $0002 $7800 $0001                           [ 2i+0 1 0 1 0 1 0 1 1 ]
5.0hr $0002 $9800                                 [ 2i+0 1 0 1 0 1 0 1 0 1 ]
Immediate Bolus of 0.15U with Varying Extended Bolus Amounts and Durations
                * * * 0.05U Extended Bolus (3i 1e) * * *
       napp  napp  napp  napp  napp  napp         Insulin Schedule Table
0.5hr $0003 $0001                                 [ 3i+1 ]
1.0hr $0003 $1800                                 [ 3i+0 1 ]

                * * * 0.10U Extended Bolus (3i 2e) * * *
       napp  napp  napp  napp  napp  napp         Insulin Schedule Table
0.5hr $0003 $0002                                 [ 3i+2 ]
1.0hr $0003 $1001                                 [ 3i+1 1 ]
1.5hr $0003 $1800 $0001                           [ 3i+0 1 1 ]
2.0hr $0003 $3800                                 [ 3i+0 1 0 1 ]

                * * * 0.15U Extended Bolus (3i 3e) * * *
       napp  napp  napp  napp  napp  napp         Insulin Schedule Table
0.5hr $1003                                       [ 3i+3 ]
1.0hr $0003 $1801                                 [ 3i+1 2 ]
1.5hr $0003 $2001                                 [ 3i+1 1 1 ]
2.0hr $0003 $1800 $1001                           [ 3i+0 1 1 1 ]
2.5hr $0003 $3800 $0001                           [ 3i+0 1 0 1 1 ]
3.0hr $0003 $5800                                 [ 3i+0 1 0 1 0 1 ]

                * * * 0.20U Extended Bolus (3i 4e) * * *
       napp  napp  napp  napp  napp  napp         Insulin Schedule Table
0.5hr $1803                                       [ 3i+4 ]
1.0hr $0003 $1002                                 [ 3i+2 2 ]
1.5hr $0003 $1001 $0002                           [ 3i+1 1 2 ]
2.0hr $0003 $3001                                 [ 3i+1 1 1 1 ]
2.5hr $0003 $1800 $2001                           [ 3i+0 1 1 1 1 ]
3.0hr $0003 $1800 $0001 $1800 $0001               [ 3i+0 1 1 0 1 1 ]
3.5hr $0003 $5800 $0001                           [ 3i+0 1 0 1 0 1 1 ]
4.0hr $0003 $7800                                 [ 3i+0 1 0 1 0 1 0 1 ]

                * * * 0.25U Extended Bolus (3i 5e) * * *
       napp  napp  napp  napp  napp  napp         Insulin Schedule Table
0.5hr $0003 $0005                                 [ 3i+5 ]
1.0hr $0003 $1802                                 [ 3i+2 3 ]
1.5hr $0003 $1801 $0002                           [ 3i+1 2 2 ]
2.0hr $0003 $2001 $0002                           [ 3i+1 1 1 2 ]
2.5hr $0003 $4001                                 [ 3i+1 1 1 1 1 ]
3.0hr $0003 $1800 $3001                           [ 3i+0 1 1 1 1 1 ]
3.5hr $0003 $1800 $0001 $1800 $1001               [ 3i+0 1 1 0 1 1 1 ]
4.0hr $0003 $3800 $0001 $1800 $0001               [ 3i+0 1 0 1 1 0 1 1 ]
4.5hr $0003 $7800 $0001                           [ 3i+0 1 0 1 0 1 0 1 1 ]
5.0hr $0003 $9800                                 [ 3i+0 1 0 1 0 1 0 1 0 1 ]

Immediate Bolus with an Active Extended Delivery

The Omnipod only supports one active extended bolus. The way the bolus commands are defined, when another immediate bolus command is given to a pod with an active extended bolus, the PDM needs to cancel the in-progress extended bolus and then send information for the remaining extended bolus on the subsequent bolus command. In this example taken from Bolus extended with superimposed immediate bolus, an immediate bolus of 1.0U is requested 35 minutes into a 1.0U extended bolus over 1.5 hours (which is an extended pulse every 4.5 minutes).

00 01 02030405 06 0708 09 0A0B 0C0D 0E0F 1011 1213  14
1A LL NNNNNNNN 02 CCCC HH SSSS PPPP napp napp napp  17...
1a 12 31f9bb6b 02 0079 03 0140 0014 0014 0007 0006  17 0d 7c 0000 00030d40 00c8 019bfcc0

This example has 3 InsulinScheduleElements creates a 3 entry insulin schedule table of [20 7 6] to deliver the requested immediate 1.0U bolus along with the remaining extended bolus as shown:

1: 20 pulses x 0.05U/pulse = 1.0U immediate
2:  7 pulses x 0.05U/pulse = 0.35U 30 min
3:  6 pulses x 0.05U/pulse = 0.30U 27 min (6 pulses x 4.5 min/pulse)
                             0.65U total over 57 minute remaining extended bolus

The remaining extended bolus calculations values make sense as 35m/90m of the 1.0U (20 pulses) = 7.8 pulses (rounded down to 7) will have been delivered and the remaining 13 pulses are still be delivered and 55m/90m of 20 pulses is 12.2 pulses (which will be rounded up for the needed 20 total pulses).

Immediate Bolus with 2:32 Remaining in a 3.5 Hour Extended Bolus

An immediate 1.0U bolus is given with 2:32 remaining in a 1.0U extended bolus over 3.5 hours. The $1D Status Response from the cancel bolus command done before this bolus command returned 15 bolus pulses not yet delivered.

1A LL NNNNNNNN 02 CCCC HH SSSS PPPP napp napp napp napp  17 LL BO NNNN XXXXXXXX YYYY ZZZZZZZZ
1a 14 d3039c04 02 007f 07 0140 0014 0014 1802 2003 0001  17 0d 00 00c8 00030d40 0096 03a00a20
  • napp napp napp napp = $0014 $1802 $2003 $0001 => [ 20i+2 3 3 3 3 1 ] or 20i 15e, 1.0U immediate and 0.75U extended
  • NNNN $00c8 = 1.0U immediate bolus
  • XXXXXXXX $00030d40 = 200000/100000 = 2 sec/immediate pulse
  • YYYY $0096 = 150/10 = 15 extended pulses = 0.75U extended bolus
  • ZZZZZZZZ $03a00a20 = 60820000/100000 = 608.2 sec/extended pulse
  • 15 extended pulses x 608.2 sec/pulse = 9123 seconds = 2:32:05

Immediate Bolus with 56 Minutes Remaining in a 3.5 Hour Extended Bolus

An immediate 1.0U bolus is given with 56 minutes remaining in a 1.0U extended bolus over 3.5 hours. The $1D Status Response from the cancel bolus command done before this bolus command returned 6 bolus pulses not yet delivered.

1A LL NNNNNNNN 02 CCCC HH SSSS PPPP napp napp  17 LL BO NNNN XXXXXXXX YYYY ZZZZZZZZ
1a 10 1304de22 02 0072 03 0140 0014 0014 1003  17 0d 00 00c8 00030d40 003c 03574150
  • napp napp = $0014 $1003 => [ 20i+3 3 ] or 20i 6e, 1.0U immediate and 0.3U extended
  • NNNN $00c8 = 1.0U immediate bolus
  • XXXXXXXX $00030d40 = 200000/100000 = 2 sec/immediate pulse
  • YYYY $003c = 60/10 = 6 extended pulses = 0.3U extended bolus
  • ZZZZZZZZ $03574150 = 56050000/100000 = 560.5 sec/extended pulse
  • 6 extended pulses x 560.5 sec/pulse = 3363 seconds = 56:03

Immediate Bolus with 6 Minutes Remaining in a 3.5 Hour Extended Bolus

An immediate 1.0U bolus is given with 6 minutes remaining in a 1.0U extended bolus over 3.5 hours. The $1D Status Response from the cancel bolus command done before this bolus command returned 1 bolus pulse not yet delivered.

1A LL NNNNNNNN 02 CCCC HH SSSS PPPP napp napp  17 LL BO NNNN XXXXXXXX YYYY ZZZZZZZZ
1a 10 10bbea5c 02 006c 02 0140 0014 0014 0001  17 0d 00 00c8 00030d40 000a 0246e2c0
  • napp napp = $0014 $0001 => [ 20i+1 ] or 20i 1e, 1.0U immediate and 0.05U extended
  • NNNN $00c8 = 1.0U immediate bolus
  • XXXXXXXX $00030d40 = 200000/100000 = 2 sec/immediate pulse
  • YYYY $000a = 10/10 = 1 pulses = 0.05U extended bolus
  • ZZZZZZZZ $0246e2c0 = 38200000/100000 = 382 sec/extended pulse
  • 1 extended pulse x 382 sec/pulse = 382 seconds = 6:22

Restrictions

The restrictions for use of the $1A Command for Table 2 (Bolus) are those of the accompanying $17 Bolus Extra subcommand. The $17 subcommand must always appear directly after the $1A Command for Table 2 (Bolus) and cannot be combined with any other commands in the same message.

Extended bolus durations are limited to an hour per the number of extended pulses to be delivered (i.e., the lowest supported extended bolus rate is 0.05U/hr) up to a maximum of 8 hours.

Clone this wiki locally