Adjustment of advertising interval in communications between an implantable medical device and an external device
11576223 · 2023-02-07
Assignee
Inventors
- Berj Doudian (Sun Valley, CA, US)
- Chirag Shah (Valencia, CA, US)
- Joshua Uyeda (Los Angeles, CA, US)
- Sridhar Kothandaraman (Valencia, CA, US)
- John Rivera (Oxnard, CA, US)
- Damon Moazen (Northridge, CA, US)
Cpc classification
H04W4/80
ELECTRICITY
A61N1/37276
HUMAN NECESSITIES
A61N1/37252
HUMAN NECESSITIES
International classification
A61N1/372
HUMAN NECESSITIES
H04W4/80
ELECTRICITY
Abstract
An advertising algorithm is disclosed which operates in an Implantable Medical Device (IMD) to adjust an interval at which the IMD will transmit advertising data packets to an external device able to connect with the IMD. When a communication session between the IMD and an external device is terminated, the advertising algorithm will issue advertising data packets at a higher rate for a set duration. This will allow the external device to connect more quickly with the IMD in a next communication session. After the set duration, when it may be assumed that the external device is less likely to connect with the IMD, the algorithm reduces that rate at which advertising data packets are issued, which saves power in the IMD.
Claims
1. An implantable medical device (IMD) configured to communicate with an external device, comprising: control circuitry programmed with an advertising algorithm, wherein the advertising algorithm is configured to: establish a first communication session with the external device, wherein the first communications session enables the exchange of first data between the external device and the IMD; terminate the first communication session; upon terminating the first communication session, cause advertisement data to be repeatedly transmitted to the external device, wherein the advertisement data is configured to allow the external device to establish a second communication session with the IMD; and increase a time interval between the transmitted advertisement data over time.
2. The IMD of claim 1, wherein the control circuitry is programmed with an inactivity duration, wherein the advertising algorithm is configured to terminate the first communication session after the inactivity duration is exceeded.
3. The IMD of claim 2, wherein the advertising algorithm is configured to determine a first time when the first data is no longer being exchanged during the first communication session, wherein the advertising algorithm is configured to terminate the first communication session when a duration after the first time exceeds the inactivity duration.
4. The IMD of claim 1, wherein the advertising algorithm is configured to terminate the first communication session by transmitting a disconnection instruction to the external device.
5. The IMD of claim 1, wherein the advertising algorithm is configured to establish the first communication session by receiving a connection request from the external device.
6. The IMD of claim 5, wherein the advertising algorithm is further configured to establish the first communication session by transmitting an acknowledgment to the external device in response to the connection request.
7. The IMD of claim 1, wherein the advertising algorithm is configured, upon terminating the first communication session, to cause the advertisement data to be repeatedly transmitted to the external device at a first time interval for a first duration, and thereafter to cause the advertisement data to be repeatedly transmitted to the external device at a second time interval, wherein the first time interval is shorter than the second time interval.
8. The IMD of claim 7, wherein the control circuitry is configured to store programmable values for the first duration, the first time interval, and the second time interval.
9. The IMD of claim 1, wherein the advertising data is transmitted using a Bluetooth or Bluetooth Low Energy communication standard.
10. The IMD of claim 1, wherein the advertising algorithm is further configured to establish the second communication session with the external device, wherein the second communications session enables the exchange of second data between the external device and the IMD.
11. The IMD of claim 1, wherein the control circuitry stores pairing information for the external device indicating that the IMD and external device are paired, wherein the advertising algorithm is configured to establish the first communication session with the paired external device.
12. A method for facilitating communications between an implantable medical device (IMD) and an external device, comprising: establishing a first communication session between the external device and the IMD, wherein the first communications session enables the exchange of first data between the external device and the IMD; terminating the first communication session; and upon terminating the first communication session, repeatedly transmitting from the IMD advertisement data to the external device, wherein the advertisement data is configured to allow the external device to establish a second communication session with the IMD, wherein a time interval between the transmitted advertisement data increases over time.
13. The method of claim 12, wherein the first communication session is terminated after an inactivity duration stored in the IMD is exceeded, wherein the first communication session is terminated by transmitting a disconnection instruction from the IMD to the external device.
14. The method of claim 13, further comprising determining a first time when the first data is no longer being exchanged during the first communication session, wherein the first communication session is terminated a duration after the first time exceeds the inactivity duration.
15. The method of claim 12, wherein the first communication session is established by receiving at the IMD a connection request from the external device, and by transmitting an acknowledgment from the IMD to the external device in response to the connection request.
16. The method of claim 12, wherein, upon terminating the first communication session, the advertisement data is repeatedly transmitted to the external device at a first time interval for a first duration, and thereafter the advertisement data is repeatedly transmitted to the external device at a second time interval, wherein the first time interval is shorter than the second time interval.
17. The method of claim 16, further comprising programming into the IMD values for the first duration, the first time interval, and the second time interval.
18. The method of claim 12, wherein the advertising data comprises an identification code for the IMD.
19. The method of claim 12, wherein the advertising data is transmitted using a Bluetooth or Bluetooth Low Energy communication standard.
20. The method of claim 12, further comprising establishing the second communication session between the external device and the IMD, wherein the second communications session enables the exchange of second data between the external device and the IMD.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
DETAILED DESCRIPTION
(6) As noted earlier, communications between an IPG 10 and an external device such as the remote controller (RC) 50 or clinician programmer (CP) 60 can occur in accordance with a communication scheme such as Bluetooth or Bluetooth Low Energy (BLE). BLE is favored as a standard for such communications as it includes mechanisms that reduce power consumption in the devices. This is especially beneficial as concerns the IPG 10. As noted earlier, the IPG 10 includes a battery 14 to provide its power, and it is preferred that communications not unduly drain this battery. If communication schemes are used that are too power intensive, the IPG 10 will need to be replaced early if the battery 14 is a primary cell, or recharged too frequently if the battery is rechargeable.
(7) When a communication standard such as BLE is used between the IPG 10 and an external device, the devices will operate in either a central role or a peripheral role, with the BLE chips in the devices being programmed to operate in these roles. Typically, the IPG 10 acts in the peripheral role, and so is able advertise its presence (provide advertising data packets) to allow an external device to which it is paired to connect with the IPG 10. The external device, acting in the central role, is able to scan for the IPG 10 and to receive its advertising data, which then allows the external device to connect to the IPG 10. After a central role device and peripheral role device connect, a communication session is started, with these devices respectively operating as a server (master) and client (slave) to transmit data between them as dictated by the BLE standard.
(8) A goal of BLE communications, as already noted, is to reduce power consumption, and in this regard advertising data is broadcast only periodically from the IPG 10. This means that the IPG 10 need only enable and power its telemetry circuitry (e.g., antenna 34b and its related modulation/demodulation circuitry) for limited times. The constant time interval at which advertising data packets is broadcast is programmable, and typically is programmed into the BLE chip that governs the IPG's communications. This advertising interval can range from 20 ms to as long as 10.24 seconds. In reality, advertising data is transmitted on up to three dedicated channels (frequencies) to reduce interference. Still further, to avoid consecutive collisions, a random delay of up to 10 ms can be added to each advertising data packet. That being said, the advertising interval is still said to be constant for all intents and purposes.
(9) The constant advertising interval can thus be adjusted (increased) to reduce power consumption in the IPG 10. However, in the inventors' view, this can come at a disadvantage. The goal of the IPG 10 in advertising its presence is to enable a paired external device to connect it so that a communication session can be established between them, during which data can be exchanged. For example, during such a communication session, a user (patient or clinician) can use their RC 50 or CP 60 to transmit new stimulation parameters for the IPG 10 to execute. Eventually, the established communication session will end. As explained further below, this can occur automatically when the IPG 10 and the external device stop transmitting data. Specifically, the IPG can end the communication session after data transmission between the IPG 10 and external device have ceased for an inactivity duration. Because maintaining the communication session takes power in the IPG 10, this inactivity period is preferably kept to a minimum (e.g., a few minutes) so as not to waste power in the IPG 10. Once the communication session has ended, the IPG 10 will again begin transmitting its advertisement data at its constant advertising interval. That way, the external device can again connect with the IPG if need be, and a second communication session can be established.
(10) But this can be frustrating from the perspective of the user of the external device. Suppose for example that a clinician is using an external device such as CP 60 to try and find optional stimulation parameters for a patient. This may occur during a patient fitting session, which may take tens of minutes, or even hours. At a first point in time, the clinician may use the CP 60 to transmit stimulation parameters to the patient's IPG 10 during a first communication session. It may then be a while (several minutes) before the clinician uses the CP 60 again to transmit new stimulation parameters, at which time the first communication session may have ended and the IPG 10 and external device are disconnected. The CP 60 can connect again to the IPG 10, but it will have to wait until it receives an advertising data packet to do so. If the constant advertising interval is set to a long value (to save power in the IPG 10), it may be slow to establish this connection. This is particularly true if an advertising data packet is not reliably received at the external device and thus the external device needs to wait for receipt of a next advertising packet. As a result, the clinician may not be able to transmit the new stimulation parameters quickly to the IPG 10. Particularly if the fitting session with the patient is long, with the external device and IPG 10 needing to connect and disconnect several times, delay in reestablishing communication sessions with the IPG can negatively impact the timeliness of the programming session. This problem is exacerbated if the inactivity duration is set to a short value in the IPG 10 (again, to save power), as this will cause the IPG to disconnect from communication sessions more quickly.
(11) To address this concern, the inventors disclose an advertising algorithm, which can operate in the IPG 10 to adjust the interval at which the IPG will transmit advertising data packets. When a communication session between the IPG and an external device is terminated, the advertising algorithm will issue advertising data packets at a higher rate for a set duration. This will allow the external device to connect more quickly with the IPG. After the set duration, when it may be assumed that the external device is less likely to connect with the IPG, the algorithm reduces the rate at which advertising data packets are issued, which saves power in the IPG.
(12)
(13) The IPG 10's control circuitry 38 is programmed with mode logic 102 which can set the IPG 10 into different modes, and can issue control signals consistent with those modes. For example, the IPG 10 can operate in a normal mode, which comprises the basic mode in which the IPG is active and providing stimulation to the patient, and where telemetry is enabled with a paired external device. Mode logic 102 can also cause IPG 10 to operate in a pairing mode to allow the IPG to be paired for communications with the external devices 100. Pairing can occur using a bar magnet 90 (
(14) Mode logic 102 can also cause the IPG 10 to operate in a peripheral role, which as noted above enables the IPG 10 advertise its presence (provide advertising data packets) to external devices to which it is paired. Mode logic 102 can further cause the IPG 10 to enter into a communication session with an external device, and to enter either a slow or fast advertising mode, as explained further below. Control of the peripheral role, communication sessions, and operation in the slow or fast advertising modes can occur through use of an advertisement algorithm 104 explained further below. Mode logic 102 can also cause the IPG to operate in other modes not of importance here.
(15) As just noted, the IPG 10 can include an advertisement algorithm 104, which may be programmed into the IPG 10's control circuitry 38, and more specifically may comprise part of the IPG's mode logic 102. The advertising algorithm 104 generally speaking dictates how the IPG 10 will advertise its presence, and under what circumstances, as explained further below. Aspects of the advertising algorithm 104 are preferably programmable, and the algorithm 104 may include or communicate with a number of programmable memories that hold parameters of interest.
(16) For example, memory 106 can store a value for a first advertising interval (Adv Int 1) which dictates a first set time interval at which the IPG 10 will issue advertising data packets. In the example that follows, this first advertising interval is a longer interval that operates during the slow advertising mode. In one example, the first advertising interval may be approximately 2.9 seconds. Memory 108 can store a value for a second advertising interval (Adv Int 2) which dictates a second set time interval at which the IPG 10 will issue advertising data packets. In the example that follows, this second advertising interval is a shorter interval that operates during the fast advertising mode. In one example, the second advertising interval may be on the order of tenths of seconds, such as 0.3 seconds.
(17) Memory 110 sets a value for an inactivity duration. The inactivity duration comprises a time period of inactivity during a communication session. When this time period is exceeded, the advertisement algorithm 104 causes the IPG 10 to enter the fast advertising mode, as explained further below. In one example, the inactivity duration may be on the order of one minute or so. Memory 112 sets a value for the duration of the fast advertising mode, and after the expiration of this duration the advertising algorithm 104 causes the IPG 10 to enter the slow advertising mode. In one example, the inactivity duration may be on the order of one minute or so. The fast advertising mode duration may be on the order of a few minutes, such as 3 minutes. A timer 114 can be used to control and monitoring the various timings that are used in the advertising algorithm 104. The values in memories 106-112 can be programmed or adjusted using the GUI of the external device 100, although the interface for doing so isn't shown for simplicity.
(18) The advertising algorithm 104 preferably works in conjunction with a communications chip, such as BLE chip 115. BLE chip 115 as per its normal function can control many of the communication aspects in the IPG 10, and is preferably programmable by the advertising algorithm 104. For example, when the advertising algorithm 104 decides to enter the slow or fast advertising modes, the algorithm 104 can transmit the relevant advertising intervals (Adv Int 1 of Adv Int 2) to the BLE chip 115 for implementation. In this regard, the BLE chip 115 can include memories to hold relevant values, and may include memories duplicative of the memories 106-112, although this detail isn't shown. Alternatively, memories 106-112 can appear exclusively within the BLE chip 115. Because the BLE chip 115 can be used to control the IPG's various modes, it can be considered as part of the mode logic 102.
(19) As also shown in
(20) The control circuitries 38 and 120 in the IPG 10 and external device 100 can further include memories that are relevant to establishing communications with each other. Memories 116 and 126 store the devices' ID codes (IPG1, Ext1), and possibly other credentials or certificates that allow the device to communicate with other devices in the system. These ID codes can include or comprise serial numbers for the respective devices. Memories 118 and 128 store the ID codes (and other credentials and certificates) for devices which with they have previously been paired for communications. For example, it is assumed in
(21)
(22) Operation is explained chronologically starting with
(23) At time t1, after the devices are paired, the IPG 10 preferably enters a slow advertisement mode, and begins transmitting advertising data packets 130 in accordance with the slower advertising interval (Adv Int 1; e.g., 2.9 s) stored in memory 106 (
(24) At time t2, it is assumed that the external device 100 has prepared “payload data” for the IPG 10 (204,
(25) In any event, once such payload data is prepared for transmission to the IPG 10, the external device 100 will issue one or more listening windows 132 (204,
(26) Upon receipt of an advertising data packet 130, which includes the IPG 10's ID code (IPG1), the external device 100 can realize that the received packet is from a device with which it is paired (see memory 128,
(27) During the communication session, the external device 100 and IPG 10 can exchange data 136 (208,
(28) Timer 114 monitors data 136 exchange between the external device 100 and the IPG 10, and in particular monitors a duration after data exchange has ceased. This can occur in different manners, but in a simple example the timer 114 counts, but is reset when data 136 is transmitted or received during the communication session (210,
(29) Once the communication session has ended, the IPG 10 will once again start transmitting advertising data packets 130, although under control of the advertisement algorithm 140 it will so do at a faster rate in accordance with its fast advertisement mode. Specifically, the IPG 10 will begin transmitting advertising data packets 130 at the faster advertising interval (Adv Int 2, e.g., 0.3 s) stored in memory 108 (
(30) Although issuing fast advertising data packets will increase power consumption in the IPG 10, it can also assist the external device 100 to re-establish a connection to the IPG 10 faster. This can be particularly beneficial when the external device 100 is used during a patient fitting session, but where the clinician only occasionally uses the external device 100 to transmit new payload data to the IPG 10. In this context, it is possible or likely that the clinician will want to send data to the IPG for a short time after a previous communication session has ended (
(31) To save power in the IPG 10, it is preferred that the fast advertisement mode duration 112 is limited. Once this fast advertisement mode duration 112 has expired (
(32) To save power, the advertising algorithm 104 then enters the slow advertising mode at time t10 (
(33) Note that both the fast duration 112 and the inactivity period 110 can be adjusted to appropriate values based on user experience with the goal of reestablishing faster communications—i.e., with the goal of cause the external device 100 to connect with the IPG 10 during the fast advertising mode. For example, if the clinician realizes that he uses the external device 100 about every seven minutes or so, the inactivity period 110 and the fast advertisement mode duration 112 can be adjusted to improve the likelihood that the clinician will be able to re-establish communications quickly during the fast advertisement mode. For example, an inactivity duration of two minutes could be set in memory 110, while a fast advertisement mode duration of six minutes could be set in memory 112. Alternatively, an inactivity duration of five minutes could be set in memory 110, while a fast advertisement mode duration of three minutes could be set in memory 112. In either example, the sum of these durations (eight) is larger that the estimated seven-minute interval at which the clinician tends to use the external device 100, thus making it more likely that the external device 100 will quickly reconnect with the IPG 10 in the fast advertising mode.
(34) In the example of the advertising algorithm 104 disclosed thus far, it has been assumed that advertising data packets are sent in slow and fast modes. However, this is not strictly necessary. For example, upon disconnecting from a communication session, the advertising algorithm 104 in the IPG 10 could send advertising data packets progressively more slowly. For example, the advertising data packets could be sent at a fast rate (e.g., every 0.3 second) for a first duration, then at a medium rate (e.g., every 1 sec) for a second duration, and then at a default slow rate (e.g., every 2.9 seconds). Still alternatively, the advertising interval could be gradually increase after disconnecting from a communication session.
(35) It has also been assumed and illustrated thus far that the IPG 10 uses its advertising algorithm 104 to communicate with a single external device 100. For example, in
(36) Although disclosed in the context of an implantable medical device system that communicates in accordance with the Bluetooth or Bluetooth Low Energy communication standards, it should be appreciated that the invention is not limited to use of these communication standards.
(37) Although particular embodiments of the present invention have been shown and described, it should be understood that the above discussion is not intended to limit the present invention to these embodiments. It will be obvious to those skilled in the art that various changes and modifications may be made without departing from the spirit and scope of the present invention. Thus, the present invention is intended to cover alternatives, modifications, and equivalents that may fall within the spirit and scope of the present invention as defined by the claims.