Systems and methods for enhanced wireless communication between an analyte sensor system and a display device
By dynamically adjusting transmit power and optimizing CCCD usage, the wireless communication protocols for analyte sensors address resource inefficiencies, enhancing battery life and communication reliability in diabetes management systems.
Patent Information
- Application Number
- JP2024577316
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-07-15
- Filing Date
- 2023-07-11
- Publication Date
- 2025-08-05
AI Technical Summary
Existing wireless communication protocols for implantable analyte sensors, such as continuous glucose monitoring devices, result in excessive resource consumption, including power, bandwidth, and computing resources, due to unnecessary transmission of messages at high power levels and frequent enabling/disabling of client characteristic configuration descriptors (CCCD), leading to reduced battery life and increased signal loss.
Implement techniques to dynamically adjust transmit power based on signal strength, use targeted invites with reduced payload sizes, and optimize CCCD usage to reduce resource consumption while maintaining reliable and accurate communication.
The proposed techniques lead to reduced power consumption, improved battery life, and enhanced communication efficiency in analyte sensor systems, providing more timely glucose level updates and reducing the risk of hypoglycemic or hyperglycemic conditions.
Smart Images

Figure 2025525463000001_ABST
Abstract
Description
[Technical Field]
[0001] (CROSS-REFERENCE TO RELATED APPLICATIONS) This application claims the benefit of and priority to U.S. Provisional Patent Application No. 63 / 368,631, filed July 15, 2022, which is hereby assigned to the assignee herein and is expressly incorporated by reference in its entirety as if fully set forth below and for all applicable purposes.
[0002] FIELD OF THE INVENTION The present application relates generally to medical devices such as analyte sensors, and more particularly to systems, devices, and methods relating to wireless communication between analyte sensor systems (e.g., continuous glucose monitoring (CGM) devices) and one or more display devices. [Background technology]
[0003] Diabetes is a metabolic disease related to the body's production or use of insulin, a hormone that allows the body to use glucose for energy or store it as fat.
[0004] Diabetes mellitus is a disease in which the pancreas cannot make enough insulin (type 1 or insulin-dependent) and / or insulin is ineffective (type 2 or non-insulin-dependent). In the diabetic state, patients suffer from hyperglycemia, which leads to many physiological abnormalities associated with microvascular deterioration (renal failure, skin ulcers, or bleeding into the vitreous humor of the eye). A hypoglycemic response (hypoglycemia) can be induced by inadvertent overadministration of insulin or after normal administration of insulin or glucose-lowering agents accompanied by abnormal exercise or inadequate food intake.
[0005] Traditionally, diabetics carry self-monitoring blood glucose (SMBG) monitors, which can require uncomfortable fingerstick techniques. Due to a lack of comfort and convenience, diabetics typically only measure their glucose levels two to four times per day. Unfortunately, because these time intervals are so far apart, diabetics are likely to receive delayed alerts about hyperglycemic or hypoglycemic conditions and may suffer dangerous side effects as a result. In fact, diabetics are unlikely to measure their SMBG values in a timely manner, and furthermore, diabetics are unaware of whether their blood glucose levels are rising (higher) or falling (lower) due to limitations of conventional methods.
[0006] To this end, various noninvasive, transcutaneous (e.g., transdermal), and / or implantable sensors have been developed to continuously detect and / or quantify blood glucose levels. Generally, in diabetes management systems, a transmitter associated with the sensor wirelessly transmits raw or minimally processed data for subsequent display and / or analysis at one or more remote devices, which may include a remote device, a server, or any other type of communication device. A remote device, such as a mobile device, can then utilize a trusted software application (e.g., approved and / or provided by the sensor manufacturer) that retrieves the raw or minimally processed data and provides the user with information regarding the user's blood glucose level. Diabetes management systems using such implantable sensors may provide the user with more up-to-date information, thereby reducing the risk that the user will fail to regulate the user's blood glucose level.
[0007] While existing wireless communication protocols and techniques for wireless communication between implantable analyte sensors and remote devices may be acceptable, they also have certain drawbacks. Thus, there is a need to improve upon the existing wireless communication protocols and techniques used for wireless communication between implantable analyte sensors and one or more remote devices.
[0008] This background is provided to introduce a brief context for the summary and detailed description that follow. This background is not intended to aid in determining the scope of the claimed subject matter, nor is it intended to limit the claimed subject matter to implementations that solve any or all of the disadvantages or problems discussed above. Summary of the Invention [Means for solving the problem]
[0009] Certain embodiments provide a method for wireless communication performed by an analyte sensor system. The method includes transmitting one or more first advertising messages having a first payload size when a whitelist of previously authenticated devices has at least one blank entry. The method also includes transmitting one or more second advertising messages having a second payload size smaller than the first payload size when the whitelist lists at least one device. The method further includes establishing a communication session between the analyte sensor system and the at least one device based on at least one of the first advertising message or the second advertising message.
[0010] Certain embodiments provide a method for wireless communication performed by an analyte sensor system. The method includes establishing a connection between a transmitter of the analyte sensor system and a display device. The method also includes receiving at least a first packet from the display device after establishing the connection. The method also includes determining a transmit power for a second packet based at least in part on a current transmit power level of the transmitter and a signal strength of the first packet. The method further includes transmitting the second packet to the display device at the transmit power determined for the second packet.
[0011] Certain embodiments provide a method for wireless communication performed by an analyte sensor system. The method includes determining one or more properties of a predetermined set of characteristics associated with the analyte sensor system. The method also includes configuring, via a custom profile for the analyte sensor system, each of the one or more properties to have a client characteristic configuration descriptor (CCCD) that is enabled as a default setting upon each connection between the analyte sensor system and a display device. The method further includes configuring a processor of the analyte sensor system with the configured one or more properties prior to initialization of the processor.
[0012] Further embodiments include a non-transitory computer-readable storage medium storing executable instructions that, when executed by a computer system, cause the computer system to perform the above-described method, and an apparatus including at least one processor and memory configured to perform the above-described method. [Brief explanation of the drawings]
[0013] [Figure 1] 1 illustrates an exemplary analyte monitoring system according to certain embodiments disclosed herein. [Figure 2A] FIG. 1 illustrates a perspective view of an exemplary enclosure according to certain embodiments disclosed herein. [Figure 2B]1 is a cross-sectional view of an exemplary enclosure according to certain embodiments disclosed herein. [Figure 3A] 1 illustrates an exemplary system for communicating analyte data, according to certain embodiments disclosed herein. [Figure 3B] 1 illustrates an exemplary system for communicating analyte data, according to certain embodiments disclosed herein. [Figure 4] FIG. 10 is a network sequence diagram illustrating the execution of a communication procedure between an analyte sensor system and a display device, according to certain embodiments disclosed herein. [Figure 5] FIG. 10 is another network sequence diagram illustrating the execution of a communication procedure between an analyte sensor system and a display device, according to certain embodiments disclosed herein. [Figure 6] 10 shows a table containing exemplary invite packet sizes in accordance with certain embodiments disclosed herein. [Figure 7] FIG. 1 is a flow diagram illustrating exemplary operations for wireless communication in accordance with certain embodiments disclosed herein. [Figure 8] 1 illustrates an example of dynamic transmit power adjustment in accordance with certain embodiments disclosed herein. [Figure 9] 10 is a flowchart of example operations for dynamically adjusting transmit power associated with communication between an analyte sensor system and a display device, according to certain embodiments disclosed herein. [Figure 10] FIG. 1 is a flow diagram illustrating exemplary operations for wireless communication by an analyte sensor system according to certain embodiments disclosed herein. [Figure 11] 1 illustrates an exemplary communications protocol stack architecture, in accordance with certain embodiments disclosed herein. [Figure 12] 1 illustrates an exemplary connection flow between an analyte sensor system and a display device. [Figure 13] 1 illustrates an example connection flow with reduced handshake messages, in accordance with certain embodiments disclosed herein. [Figure 14] FIG. 1 is a flow diagram illustrating exemplary operations for wireless communication by an analyte sensor system according to certain embodiments disclosed herein. [Figure 15] FIG. 1 is a flow diagram illustrating exemplary operations for wireless communication by an analyte sensor system according to certain embodiments disclosed herein. DETAILED DESCRIPTION OF THE INVENTION
[0014] Detailed Description of Certain Inventive Embodiments Certain embodiments described herein relate to several techniques for use in wireless communication between display devices, analyte sensor systems, and / or medical devices (e.g., medical delivery devices) to exchange data, such as analyte data and other types of data. Certain embodiments can reduce the technical issues associated with wireless transmission of analyte data that lead to increased power consumption (and thus reduced battery life) of the devices, as mentioned above. Such technical issues may include, for example, transmitting messages with high overhead, transmitting messages at unnecessarily high transmit power levels, transmitting an unnecessary number of messages as part of data communication between devices, etc. Although certain embodiments herein are described with respect to diabetes management, glucose sensor systems, and transmission of glucose measurements between devices, the protocols and techniques described herein are similarly applicable to any type of health care system that includes any type of analyte sensor (e.g., lactate sensors, ketone sensors, potassium sensors, etc.).
[0015] Battery consumption is a significant concern for devices that wirelessly exchange analyte data (e.g., display devices, analyte sensor systems, medical devices, etc.). Current wireless communication protocols used to transmit analyte data can consume excessive resources, such as power resources, bandwidth and other communication resources, and computing resources. For example, such wireless communication protocols can cause a device (e.g., an analyte sensor system) to transmit messages at unnecessarily high transmit power levels, cause a device to transmit messages with high overhead, or cause a device to transmit an unnecessary number of messages when connecting or communicating with another device (e.g., a display device), any one of which (or a combination thereof) can lead to increased power (and battery) consumption.
[0016] For example, according to a particular communication protocol between the analyte sensor system and the display device, upon startup of the analyte sensor system, the analyte sensor system begins to periodically broadcast invitation packets (e.g., advertisement packets) at defined intervals over a particular length of time (e.g., every 5 minutes for up to 22 seconds) to be identified by and connect with a user's display device. Typically, as described in more detail herein, the length of time over which the analyte sensor system broadcasts invitation packets includes a general invitation period (e.g., 2 seconds) as well as a target invitation period (e.g., 20 seconds).
[0017] Generic inviting (also referred to as generic invite) refers to broadcasting an invite packet (or message) at the analyte sensor system to initially (or initially) connect with a user's display device. For example, when a patient initially attempts to pair a display device with the analyte sensor system, the analyte sensor system may broadcast a generic invite packet. When the generic invite packet (e.g., generic advertisement packet) is received by the intended display device, the display device issues a connection request to the analyte sensor system. The analyte sensor system can then receive the connection request from the display device and grant the connection request to the display device. The analyte sensor system and display device may then proceed to engage in further data communication involving authentication, pairing, bonding, etc. after the initial connection has been made.
[0018] In comparison to a generic invite, a targeted invite (also referred to as a targeted invite) refers to an invite packet (e.g., a targeted advertisement packet) being sent by the analyte sensor system to reconnect with a display device with which the analyte sensor system has already been paired and bonded once. Continuing with the example above, when a patient's analyte sensor system attempts to reconnect with the patient's display device, the analyte sensor system can send one or more targeted invite packets to the display device. Upon receiving the targeted invite, the display device issues a connection request to the analyte sensor system. The analyte sensor system can grant the connection request and engage in further data communication with the display device.
[0019] One problem with using the above wireless communication protocol(s) is unnecessary battery consumption in the patient's analyte sensor system. In particular, once a connection is made between the analyte sensor system and a display device, the analyte sensor system may transmit packets at a constant transmit power level regardless of the strength of the signal received from the display device in response. However, transmitting at a constant transmit power level may not be necessary to communicate with the intended display device, and therefore using a constant transmit power may lead to increased power consumption and, therefore, unnecessary battery consumption in the analyte sensor system. Additionally, using the above wireless communication protocol(s), the analyte sensor system may transmit packets with the same full payload during both the general invite and the target invite. However, because the full payload may not be necessary for the target invite, as described further below, transmitting a full payload target invite packet may lead to increased power consumption and, therefore, unnecessary battery consumption in the analyte sensor system.
[0020] Additionally, certain analyte sensor systems may use a client characteristic configuration descriptor (CCCD) to allow a display device to opt in to “push”-style data updates from the analyte sensor system, as opposed to simply reading data from the analyte sensor system. In such analyte sensor systems, before the display device can acquire any of this “pushed” data, the display device must separately enable the CCCD for each portion of data, and then the display device must separately disable the CCCD for the portion of data once it has been acquired. This frequent enabling and disabling of the CCCD for each characteristic (or data) can lead to unnecessary battery drain on the analyte sensor system. Additionally, enabling and disabling the CCCD can cause increased signal loss due to errors associated with enabling the CCCD.
[0021] Therefore, what is needed are techniques, methods, and systems for wirelessly communicating analyte data that enable a reduction in resource consumption (e.g., power, computation, bandwidth, etc.) in an analyte sensor system while maintaining and / or improving the reliability, speed, and accuracy of wireless communication and performance related to associated connection protocols. While the embodiments described herein refer to an analyte sensor system that performs communication with one or more display devices, it should be understood that it is a transmitter within the analyte sensor system that performs communication with the one or more display devices.
[0022] Certain embodiments described herein provide various extensions to wireless communication protocols, such as the BLE protocol, used to exchange data, such as analyte data obtained from a continuous analyte sensor configured to continuously measure the concentration of an analyte in a host. A transmitter coupled to the continuous analyte sensor can use various extensions when transmitting the analyte data to one or more display devices. Such extensions may include, for example, dynamically adjusting transmit power when transmitting packets (e.g., data, invitations, etc.), sending invitations with alternative (or different) payloads during different invitation periods, reducing handshake messages (e.g., CCCD messaging), etc. The various extensions described herein may relate to various aspects of the wireless communication protocol, including, for example, authentication, connection protocols, invitation message structure and content, device pairing, data transmission, etc.
[0023] The techniques described herein that enable reduced power consumption during wireless transmission of analyte data are more fully described herein with respect to Figures 1-15 below. The techniques described herein can provide power cost savings for the analyte sensor system and one or more display devices, as well as an improved user experience.
[0024] Exemplary Analyte Sensor System FIG. 1 depicts an analyte monitoring system 100 (“system 100”), such as a diabetes management system, that may be used in connection with certain embodiments of the present disclosure, involving collecting, monitoring, and / or providing information regarding analyte values present in a user's body, including, for example, the user's blood glucose levels.
[0025] Analyte monitoring system 100 in the illustrated embodiment includes analyte sensor system 102, which can be configured to monitor one or more analytes of a user. Analyte sensor system 102 includes sensor electronics module 106 and one or more analyte sensor(s) 104 (individually referred to herein as analyte sensors 104 and collectively referred to herein as analyte sensors 104) associated with sensor electronics module 106. Sensor electronics module 106 can wirelessly communicate (e.g., directly or indirectly) with one or more of display devices 112, 120, 130, and 140. In certain embodiments, the sensor electronics module 106 may also wirelessly communicate (e.g., directly or indirectly) with one or more medical devices, such as medical devices 110 (individually referred to herein as medical devices 110 and collectively referred to herein as medical devices 110), and / or one or more other non-analyte sensors 108 (individually referred to herein as non-analyte sensors 108 and collectively referred to herein as non-analyte sensors 108).
[0026] In certain embodiments, analyte sensor system 102 is provided for measuring analyte(s) within a host or user. By way of overview and example, and not limitation, analyte sensor system 102 may be implemented as an encapsulated microcontroller that performs sensor measurements, generates analyte data (e.g., by calculating values of continuous glucose monitoring data), engages in wireless communication (e.g., via Bluetooth and / or other wireless protocols), and transmits such data to one or more display devices, such as display devices 112, 120, 130, and 140.
[0027] The analyte sensor(s) 104 are configured to measure the concentration or level of an analyte(s) in a host. The term analyte is further defined by paragraph
[0117] of U.S. Patent Application No. 2019 / 0336053. Paragraph
[0117] of U.S. Patent Application No. 2019 / 0336053 is incorporated herein by reference. In certain embodiments, the analyte sensor 104 comprises a continuous glucose sensor, such as a subcutaneous, transcutaneous (e.g., transdermal), or intravascular device. In certain embodiments, the analyte sensor 104 is capable of analyzing multiple intermittent blood samples. The analyte sensor 104 can use any glucose measurement method, such as enzymatic, chemical, physical, electrochemical, spectrophotometric, polarimetric, calorimetric, iontophoretic, radiometric, or immunochemical method. Additional details regarding continuous glucose sensors are provided in U.S. Patent Application No. 13 / 827,577, paragraphs
[0072] -
[0076] , which are incorporated herein by reference.
[0028] In the particular example, the analyte sensor system 102 is assumed to be a glucose sensor system, although it should be noted that the analyte sensor system 102 can operate to monitor one or more additional or alternative analytes. As used herein, the term "analyte" is a broad term that should be given its ordinary and customary meaning to those of skill in the art (and should not be limited to any special or customized meaning) and refers, without limitation, to a substance or chemical component within the body or a biological sample (e.g., bodily fluids, including blood, serum, plasma, interstitial fluid, cerebrospinal fluid, lymphatic fluid, ocular fluid, saliva, oral fluid, urine, feces, or exudates). Analytes can include naturally occurring substances, man-made substances, metabolites, and / or reaction products. In some embodiments, the analytes for measurement by the sensor regions, devices, and methods are albumin, alkaline phosphatase, alanine transaminase, aspartate aminotransferase, bilirubin, blood urea nitrogen, calcium, CO2, chloride, creatinine, glucose, gamma-glutamyl transpeptidase, hematocrit, lactate, lactate dehydrogenase, magnesium, oxygen, pH, phosphorus, potassium, sodium, total protein, uric acid, metabolic markers, and drugs.
[0029] Acetaminophen, dopamine, ephedrine, terbutaline, ascorbate, uric acid, oxygen, d-amino acid oxidase, plasma amine oxidase, xanthine oxidase, NADPH oxidase, alcohol oxidase, alcohol dehydrogenase, pyruvate dehydrogenase, diol, Ros, NO, bilirubin, cholesterol, triglycerides, gentisic acid, ibuprofen, L-dopa, methyldopa, salicylate, tetracycline, tolazamide, tolbutamide, acetylcholinesterase, acetylcarnitine, acetylprothrombin, acetylcarnitine, acetylcholinesterase ... adenine phosphoribosyltransferase; adenosine deaminase; albumin; α-fetoprotein; amino acid profile (arginine (Krebs cycle), histidine / urocanic acid, homocysteine, phenylalanine / tyrosine, tryptophan); andrenostenedione; antipyrine; arabinitol enantiomers; arginase; benzoylecgonine (cocaine); biotinidase; biopterin; c-reactive protein; carnitine; carnosinase; CD4; ceruloplasmin; chenodeoxycholic acid; Chloroquine; cholesterol; cholinesterase; conjugated 1-β-hydroxycholic acid; cortisol; creatine kinase; creatine kinase MM isoenzyme; cyclosporine A; d-penicillamine; deethylchloroquine; dehydroepiandrosterone sulfate; DNA (acetylation polymorphisms), alcohol dehydrogenase, α1-antitrypsin, cystic fibrosis, Duchenne / Becker muscular dystrophy, glucose-6-phosphate dehydrogenase, hemoglobin A, hemoglobin S, hemoglobin C, hemoglobin D , hemoglobin E, hemoglobin F, D-Punjab, beta-thalassemia, hepatitis B virus, HCMV, HIV-1, HTLV-1, Leber's hereditary optic neuropathy, MCAD, RNA, PKU, Plasmodium vivax, sex differentiation, 21-deoxycortisol); desbutylhalofantrine; dihydropteridine reductase; diphtheria / tetanus antitoxin; erythrocyte arginase; erythrocyte protoporphyrin; esterase D; fatty acids / acylglycines; free beta-human chorionic gonadotropin; free erythrocyte porphyrin; free thyroxine (FT4);Free triiodothyronine tri-iodothyronine, FT3); fumarylacetoacetase; galactose / gal-1-phosphate; galactose-1-phosphate uridyltransferase; gentamicin; glucose-6-phosphate dehydrogenase; glutathione; glutathione peroxidase; glycocholate; glycosylated hemoglobin; halofantrine; hemoglobin variants; hexosaminidase A; human erythrocyte carbonic anhydrase I; 17-α-hydroxyprogesterone; hypoxanthine phosphoribosyltransferase; immunoreactive trypsin; lactate; lead; lipoproteins ((a), B / A-1, β); lysozyme; mefloquine; netilmicin; phenobarbitone; phenytoin; phytanic acid / pristanic acid; progesterone; prolactin; prolidase; purine nucleoside phosphorylase; quinine; reverse triiodothyronine tri-iodothyronine, rT3); selenium; serum pancreatic lipase; sisomicin; somatomedin C; specific antibodies (adenovirus, antinuclear antibody, anti-zeta antibody, arbovirus, pseudorabies virus, dengue virus, guinea worm, Echinococcus granulosus, Entamoeba histolytica, enterovirus, giardiasis, Helicobacter pylori, hepatitis B virus, herpes virus, HIV-1, IgE (atopic disease), influenza virus, Leishmania donovani, Leptospirosis, measles / mumps / rubella, Mycobacterium leprae, Mycoplasma pneumoniae, myoglobin, Onchocerciasis volvulus, parainfluenza) Viruses, malaria parasites, poliovirus, Pseudomonas aeruginosa, respiratory syncytial virus, rickettsia (tsutsugamushi disease), Schistosoma mansoni, Toxoplasma gondii, Treponema pallidum, Trypanosoma cruzi / rangeli, vesicular stomatitis virus, Wuchereria bancrofti, yellow fever virus); specific antigens (hepatitis B virus, HIV-1); succinylacetone; sulfadoxine; theophylline; thyrotropin (TSH); thyroxine (T4); thyroxine-binding globulin; trace elements; transferrin; UDP-galactose-4-epimerase; urea; uroporphyrinogen I synthase; vitamin A; leukocytes;and zinc protoporphyrin. Salts, sugars, proteins, fats, vitamins, and hormones naturally present in blood or interstitial fluid may also constitute analytes in certain embodiments.
[0030] The analyte may be naturally occurring in a biological fluid, e.g., a metabolite, hormone, antigen, antibody, etc. Alternatively, the analyte may be introduced into the body, e.g., a contrast agent for imaging, a radioisotope, a chemical agent, a fluorocarbon-based synthetic blood, or a drug or pharmaceutical composition, including, but not limited to, insulin; ethanol; cannabis (marijuana, tetrahydrocannabinol, hashish); inhalants (nitrous oxide, amyl nitrite, butyl nitrite, chlorohydrocarbons, hydrocarbons); cocaine (crack cocaine); stimulants (amphetamine, methamphetamine, Ritalin, Silurt, Preludine, Didrex, Prestate, Boranil, Sandrex, Pregin); depressants (barbiturates, methaqualone, valium tranquilizers such as benzodiazepines, ... Analytes such as neurochemicals and other chemicals produced in the body, such as ascorbic acid, uric acid, dopamine, noradrenaline, 3-methoxytyramine (3MT), 3,4-dihydroxyphenylacetic acid (DOPAC), homovanillic acid (HVA), 5-hydroxytryptamine (5HT), histamine, advanced glycation end products (AGEs), and 5-hydroxyindoleacetic acid (FHIAA), can also be analyzed.
[0031] 1 , in certain embodiments, the sensor electronics module 106 includes electronic circuitry associated with measuring and processing analyte sensor data or information, including algorithms associated with processing and / or calibrating the analyte sensor data / information. The sensor electronics module 106 may be physically / mechanically connected to the analyte sensor(s) 104, and may be integral with (i.e., non-releasably attached to) or releasably attachable to the analyte sensor(s) 104.
[0032] The sensor electronics module 106 may also be electrically coupled to the analyte sensor(s) 104 such that the components may be electromechanically coupled to one another (e.g., (a) prior to insertion into the patient's body or (b) during insertion into the patient's body). The sensor electronics module 106 may include hardware, firmware, and / or software that enables measurement and / or estimation of analyte levels within a host / user via the analyte sensor 104 (which may be / include, for example, a glucose sensor). For example, the sensor electronics module 106 may include one or more potentiostats, a power supply for providing power to the analyte sensor 104, other components useful for signal processing and data storage, and a telemetry module for transmitting data from the sensor electronics module to one or more display devices. The electronics may be mounted on a printed circuit board (PCB) or platform within the SS8 and may take a variety of forms. For example, the electronics may take the form of integrated circuits (ICs), such as application-specific integrated circuits (ASICs), microcontrollers, processors, and / or state machines.
[0033] The sensor electronics module 106 may include sensor electronics configured to process sensor information, such as sensor data, and generate transformed sensor data and displayable sensor information. Examples of systems and methods for processing sensor analyte data are described in more detail herein and in U.S. Pat. Nos. 7,310,544 and 6,931,327, and U.S. Patent Publication Nos. 2005 / 0043598, 2007 / 0032706, 2007 / 0016381, 2008 / 0033254, 2005 / 0203360, 2005 / 0154271, 2005 / 0192557, 2006 / 0222566, 2007 / 0203966, and 2007 / 0208245, all of which are incorporated by reference herein in their entireties.
[0034] Display devices 112, 120, 130, and / or 140 are configured to display displayable sensor data, including analyte data, that may be transmitted by sensor electronics module 106. Each of display devices 112, 120, 130, and 140 may include a display, such as touchscreen displays 114, 122, 132, and 142, respectively, to display sensor data to a user and / or receive input from a user. For example, a graphical user interface (GUI) may be presented to the user for such purposes. In some embodiments, the display devices may include other types of user interfaces, such as a voice user interface, instead of or in addition to a touchscreen display, to communicate sensor data to a user of the display device and / or accept user input. In some embodiments, one, some, or all of display devices 112, 120, 130, and 140 are configured to display or otherwise communicate sensor data as it is communicated from sensor electronics module 106 (e.g., in data packages sent to the respective display devices) without any additional anticipated processing required for calibration and / or real-time display of the sensor data.
[0035] 1 may include custom or proprietary display devices specifically designed to display a particular type of displayable sensor information (e.g., in certain embodiments, numerical values and / or arrows) associated with analyte data received from sensor electronics module 106. Display device 112 is an example of such a custom device. In certain embodiments, one of the display devices depicted in FIG. 1 is a smartphone, such as display device 120, which may be based on Android, iOS, or another operating system (OS), configured to display a graphical representation of continuous sensor data (e.g., including current and / or historical data). Other display devices may include display device 130 representing a tablet, display device 140 representing a smartwatch, medical device 110 (e.g., an insulin delivery device or a blood glucose meter), and / or other handheld devices, such as a desktop or laptop computer (not shown).
[0036] Because different display devices provide different user interfaces, the contents of the data package (e.g., the amount, format, and / or type of data to be displayed, alarms, etc.) may be customized (e.g., programmed differently by the manufacturer and / or by the end user) for each particular display device. Thus, in certain embodiments, multiple different display devices may wirelessly communicate directly with the sensor electronics module (e.g., the on-skin sensor electronics module 106 physically connected to the analyte sensor(s) 104) during a sensor session to enable multiple different types and / or levels of display and / or functionality associated with the displayable sensor data.
[0037] As mentioned above, the sensor electronics module 106 may be in communication with the medical device 110. The medical device 110 may be a passive device in some exemplary embodiments of the present disclosure. For example, the medical device 110 may be an insulin pump for administering insulin to a user. For various reasons, it may be desirable for such an insulin pump to receive and track potassium and / or glucose values transmitted from the analyte sensor system 102, and the analyte sensor 104 may be configured to measure potassium and / or glucose. For example, the medical device 110 may be configured to administer a particular dosage of insulin or another medication to the user based on the sensor information and / or analyte data received from the analyte sensor system 102.
[0038] Additionally, as previously mentioned, the sensor electronics module 106 may also communicate with other non-analyte sensors 108. The non-analyte sensors 108 may include, but are not limited to, altimeter sensors, accelerometer sensors, temperature sensors, respiration rate sensors, sweat sensors, etc. The non-analyte sensors 108 may also include monitors such as heart rate monitors, ECG monitors, blood pressure monitors, pulse oximeters, calorie intake, and drug delivery devices. The non-analyte sensors 108 may also include data systems for measuring non-patient-specific phenomena such as time, ambient pressure, or ambient temperature, which may include barometric pressure sensors, outside air temperature sensors, or clocks, timers, or other time measurements of when the sensor was initially inserted, or the time of remaining sensor life compared to the insertion time, which may be used as calibration or other data inputs for algorithmic models.
[0039] In certain embodiments, the non-analyte sensors 108 may be combined in any other configuration, such as combined with one or more analyte sensors 104. As an illustrative example, a non-analyte sensor, e.g., a temperature sensor, may be combined with an analyte sensor 104 configured to measure potassium to form a potassium / temperature sensor that is used to transmit sensor data to the sensor electronics module 106 using a common communications circuit. As another illustrative example, a non-analyte sensor, e.g., a temperature sensor, may be combined with an analyte sensor 104 configured to measure potassium and glucose (e.g., multiple analytes) to form a potassium / glucose / temperature sensor that is used to transmit sensor data to the sensor electronics module 106 using a common communications circuit.
[0040] In certain embodiments, the analyte sensor system 102, the plurality of display devices 112, 120, 130, 140, the medical device 110, and / or the non-analyte sensor(s) 108 are configured to communicate wirelessly over the wireless communication path 152 using a short-range wireless communication protocol. Examples of short-range wireless communication protocols include Bluetooth and BLE protocols. In certain embodiments, other short-range wireless communication may include near field communication (NFC), radio frequency identification (RFID) communication, IR (infrared) communication, etc.
[0041] In certain embodiments, wireless communication protocols other than a short-range wireless communication protocol may be used for the wireless communication path 152, such as WiFi Direct. In certain embodiments, a wireless access point (WAP) (not shown) is used to couple one or more of the analyte sensor system 102, display devices 112, 120, 130, and 140, medical device 110, and / or non-analyte sensor(s) 108 to one another. For example, the WAP may provide WiFi and / or cellular connectivity between these devices.
[0042] 2A and 2B are perspective and cross-sectional views of an enclosure 200 that may be used in connection with implementing an embodiment of the analyte sensor system 102, according to certain embodiments. The enclosure 200, in certain embodiments, includes a mounting unit 214 and a sensor electronics module 106 attached thereto. The enclosure 200 is shown in its functional position, with the mounting unit 214 and the sensor electronics module 106 matingly engaged therein. The mounting unit 214, also referred to as a housing or sensor pod in some embodiments, includes a base 234 adapted for fastening to the skin of a host or user. The base 234 may be formed from a variety of rigid or flexible materials and may include a low profile to minimize protrusion of the device from the host during use. In some embodiments, the base 234 is formed at least in part from a flexible material, which can provide numerous advantages over other transcutaneous sensors that, unfortunately, may suffer from motion-related artifacts associated with host movement as the host uses the device. The mounting unit 214 and / or sensor electronics module 106 may be positioned over the sensor insertion site to protect the site and / or provide a minimal footprint (utilization of the surface area of the host's skin).
[0043] In some embodiments, a removable connection between the mounting unit 214 and the sensor electronics module 106 is provided, which allows for improved manufacturability; i.e., the potentially relatively inexpensive mounting unit 214 can be disposed of when refurbishing or maintaining the analyte sensor system 102, while the relatively more expensive sensor electronics module 106 can be reusable with multiple sensor systems. In some embodiments, the sensor electronics module 106 is configured with signal processing (programming) to, for example, filter, calibrate, and / or perform other algorithms useful for calibrating and / or displaying sensor information. However, an integrated (non-removable) sensor electronics module may also be configured.
[0044] In some embodiments, the contacts 238 are mounted on or in a subassembly (hereinafter referred to as the contact subassembly 236) configured to fit within the base 234 of the mounting unit 214, and a hinge 248 that allows the contact subassembly 236 to pivot relative to the mounting unit 214 between a first position (for insertion) and a second position (for use). As used herein, the term "hinge" is a broad term and is used in its ordinary sense to refer to any of a variety of pivoting, articulating, and / or hinging mechanisms, such as, but not limited to, adhesive hinges, sliding joints, etc. The term hinge does not necessarily imply a fulcrum or fixed point through which articulation occurs. In some embodiments, the contacts 238 are formed from a conductive elastomeric material, such as a carbon black elastomer, through which the analyte sensor 104 extends.
[0045] 2A and 2B , in certain embodiments, the mounting unit 214 is provided with an adhesive pad 208 disposed on the back of the mounting unit and including a peelable backing layer. Thus, the mounting unit 214 is adhered to the host's skin by removing the backing layer and pressing at least a portion of the base 234 of the mounting unit 214 against the host's skin. Additionally or alternatively, after sensor insertion is complete, an adhesive pad may be placed over some or all of the analyte sensor system 102 and / or analyte sensor 104 to ensure adhesion and, optionally, an airtight or watertight seal around the wound exit site (or sensor insertion site) (not shown). A suitable adhesive pad can be selected and designed to stretch, expand, conform to, and / or vent the area (e.g., the host's skin). The configuration and arrangement can provide the water-resistant, waterproof, and / or hermetic properties associated with the mounting unit / sensor electronics module embodiments described herein.
[0046] 3A illustrates an exemplary system 300 that may be used in connection with implementing certain embodiments of the disclosed systems, methods, and devices. By way of example, various below-described components of FIG. 3A may be used to provide wireless communication of glucose data, for example, between an analyte sensor system and multiple display devices, medical devices, servers, etc.
[0047] As shown, system 300 includes an analyte sensor system 308 and one or more display devices 310. Analyte sensor system 308 is coupled to display device(s) 310 via a communication medium 305. Analyte sensor system 308 and display device(s) 310 may exchange messaging via communication medium 305, which may be used to deliver analyte data to display device(s) 310. In certain embodiments, analyte sensor system 308 represents analyte sensor system 102 in FIG. 1 (e.g., analyte sensor system 308 may also be designated analyte sensor system 102 in FIG. 1).
[0048] The display device(s) 310 may include various electronic computing devices, such as smartphones, tablets, laptops, and wearable devices such as smartwatches. In certain embodiments, the display device(s) 310 include any one (or combination) of the display devices 112, 120, 130, and 140 depicted in FIG. 1 . Note that a graphical user interface (GUI) of the display device 310 may perform such functions as accepting user input and displaying menus and information derived from analyte data. The GUI may be provided by various operating systems known in the art, such as iOS, Android, Windows Mobile, Windows, Mac OS, Chrome OS, Linux, Unix, and gaming platform OSs (e.g., Xbox, PlayStation, Wii). In certain embodiments, the communication medium 305 is based on one or more wireless communication protocols, such as Bluetooth, BLE, ZigBee, Wi-Fi, 802.11 protocols, IR, radio frequency (RF), 2G, 3E, 4G, 7G, etc., and / or wired protocols and media.
[0049] In certain embodiments, elements of system 300 may be used to perform various processes described herein and / or to perform various operations described herein with respect to one or more of the disclosed systems and methods. Upon studying this disclosure, one skilled in the art will understand that system 300 may include multiple analyte sensor systems 308, communication media 305 for communication utilizing the same or different communication protocols, and / or display devices 310.
[0050] As described above, the communication medium 305 may be used to connect or communicatively couple the analyte sensor system 308 and the display device 310 to each other or to a network, and the communication medium 305 may be implemented in various forms. For example, the communication medium 305 may include an Internet connection, such as a local area network (LAN), a wide area network (WAN), an optical fiber network, the Internet over power lines, a hardwired connection (e.g., a bus), or any other type of network connection. The communication medium 305 may be implemented using any combination of routers, cables, modems, switches, optical fibers, wires, wireless (e.g., microwave / RF links), etc. Furthermore, the communication medium 305 may be implemented using various wireless standards, such as Bluetooth®, BLE, Wi-Fi, 3 EPP standards (e.g., 2G GSM / GPRS / EDGE, 3E UMTS / CDMA2000, 4G LTE / LTE-U, 5G), etc. After reading this disclosure, those skilled in the art will recognize other ways to implement the communication medium 305 for communication purposes.
[0051] 3B illustrates an exemplary system 302 including an example of a display device and an analyte sensor system that may be used in connection with implementing the wireless communication protocols and techniques described herein. As shown in FIG. 3B, the system 302 includes an analyte sensor system 308. As shown, the analyte sensor system 308 may include an analyte sensor 375 (e.g., which may also be referred to as analyte sensor 104 in FIG. 1 ) coupled to a sensor measurement circuit 370 for processing and managing sensor data. The sensor measurement circuit 370 may be coupled to a processor / microprocessor 380 (hereinafter “processor 380”) (e.g., which may be part of the sensor electronics module 106 in FIG. 1 ). In some embodiments, the processor 380 may perform some or all of the functions of the sensor measurement circuit 370 for obtaining and processing sensor measurements from the analyte sensor 375. The processor 380 may further be coupled to a wireless unit or transceiver 360 (which may be part of the sensor electronics module 106 in FIG. 1, for example) to transmit sensor data and receive requests, commands, and / or temporary power from an external device, such as a display device 310, which may be used to display or otherwise provide the sensor data (or analyte data) to a user.
[0052] As used herein, the terms “radio,” “radio unit,” “transceiver,” “wireless transceiver,” and “transceiver radio” are used interchangeably and generally refer to a device, circuit, or module that can transmit and receive data wirelessly. Additionally, according to some embodiments, the transceiver 360 may further comprise an NFC antenna and associated circuitry configured to receive power from another device, e.g., the display device 310, via near-field wireless communication, which the analyte sensor system 308 may utilize to temporarily power one or more of its components necessary to communicate with another device, for example, when an internal battery (not shown) of the analyte sensor system 308 has insufficient power or is otherwise unable to properly power such components. The analyte sensor system 308 may further include a memory device 365 (e.g., which may be part of the sensor electronics module 106 in FIG. 1 ) and a real-time clock (RTC) 385 (e.g., which may be part of the sensor electronics module 106 in FIG. 1 ) for storing and tracking sensor data.
[0053] As described above, a wireless communication protocol can be used to transmit and receive data between the analyte sensor system 308 and the display device 310 over the communication medium 305. Such a wireless protocol may be designed for use in a wireless network optimized for periodic, small-data transmissions (which may be transmitted at a slower rate if necessary) between multiple devices over short distances (e.g., a personal area network (PAN)). For example, one such protocol may be optimized for periodic data transfers in which a transceiver may be configured to transmit data at short intervals and then enter a low-power mode at longer intervals. The protocol may have low overhead requirements for both normal data transmissions and for initially setting up a communication channel to reduce power consumption (e.g., by reducing overhead). In some embodiments, a burst broadcasting scheme (e.g., one-way communication) may be used. This may eliminate the overhead required for acknowledgement signals and allow for periodic transmissions that consume little power. In other embodiments, to reduce overhead (e.g., overhead associated with typical pairing operations) and / or increase security, passive or active proximity-based protocols may be employed, NFC being one particular example.
[0054] The protocol may further be configured to establish communication channels with multiple devices while implementing interference avoidance schemes. In some embodiments, the protocol may utilize an adaptive isochronous network topology that defines various time slots and frequency bands for communication with several devices. Thus, the protocol may modify transmission windows and frequencies in response to interference to support communication with multiple devices. Thus, the wireless protocol may use a time and frequency division multiplexing (TDMA)-based scheme. The wireless protocol may also employ direct sequence spread spectrum (DSSS) and frequency-hopping spread spectrum schemes. Various network topologies, such as peer-to-peer, start, tree, or mesh network topologies, such as Wi-Fi, Bluetooth, and BLE, may be used to support short-range and / or low-power wireless communications. The wireless protocol may operate in various frequency bands, such as the open ISM band, such as 2.4 GHz. Furthermore, to reduce power usage, the wireless protocol may adaptively configure data rates according to power consumption.
[0055] 3B, system 302 includes a display device 310 communicatively coupled to analyte sensor system 308 via a communication medium 305. Display device 310 includes a connection interface 315 (including a transceiver 320), a memory device 325 (which stores analyte sensor application 330 and / or additional applications), a processor / microprocessor 335 (hereinafter “processor 335”), a GUI 340 that may be presented using a display 345 of display device 310, and an RTC 350. A bus (not shown herein) may be used to interconnect the various elements of display device 310 and transfer data between these elements.
[0056] The display device 310 may be used to alert and present sensor information or analyte data to a user and may use a processor 335 to process and manage the sensor data. The display device 310 may use a display 345, a storage device 325, an analyte sensor application 330, and an RTC 350 to display, store, and track sensor data. The transceiver 320 may be used to receive sensor data and send requests, commands, data, and / or power to the analyte sensor system 308. The transceiver 320 may also use a communication protocol. The storage device 325 may also be used to store an operating system for the display device 310 and / or custom (e.g., proprietary) applications designed for wireless data communication between the transceiver and the display device 310. The storage device 325 may be a single memory device or multiple memory devices and may be volatile or non-volatile memory for storing data and / or executable instructions for software programs and applications. The executable instructions may be executed by the processor 335 to control and manage the transceiver 320 .
[0057] In certain embodiments, when a standardized communication protocol is used, commercially available transceiver circuits may be utilized that incorporate processing circuitry for handling low-level data communication functions such as managing data encoding, transmission frequency, handshaking protocols, and the like. In these embodiments, the processor 335, 380 need not manage these operations, but rather manages high-level functions such as providing desired data values for transmission, powering up or down, setting the rate at which messages are transmitted, etc. Instructions and data values for performing these high-level functions may be provided to the transceiver circuitry via a data bus and transfer protocol established by the manufacturer of the transceiver 320, 360.
[0058] Components of the analyte sensor system 308 may require periodic replacement. For example, the analyte sensor system 308 may include an implantable analyte sensor 375 that may be attached to a sensor electronics module, e.g., the sensor electronics module 106, including a sensor measurement circuit 370, a processor 380, a memory device 365, a transceiver 360, and a battery (not shown). The analyte sensor 375 may require periodic replacement (e.g., every 7-30 days). The sensor electronics module may be configured to remain powered and active much longer than the analyte sensor 375 (e.g., 3-6 months or longer) before the battery requires replacement. Replacing these components can be difficult and require the assistance of trained personnel. Reducing the need to replace such components, particularly the battery, significantly improves the convenience and cost of using the analyte sensor system 308, including for users. In some embodiments, when the sensor electronics module is used for the first time (or possibly restarted after the battery has been replaced), it may be connected to the analyte sensor 375, and a sensor session may be established.
[0059] As described further below, there may be a process for initially establishing communication between the display device 310 and the sensor electronics module, e.g., the sensor electronics module 106, when the module is first used or restarted (e.g., the battery is replaced). Once the display device 310 and the sensor electronics module have established communication, they may communicate periodically and / or continuously over the life of several analyte sensors 375, for example, until the battery needs to be replaced. A new sensor session may be established each time an analyte sensor 375 is replaced. A new sensor session may be initiated through a process completed using the display device 310, or the process may be triggered by notification of a new analyte sensor via communication between the sensor electronics module and the display device 310, which may be persistent for the duration of the sensor session.
[0060] The analyte sensor system 308 typically collects analyte data from the analyte sensor 375 and transmits it to the display device 310. Data points regarding the analyte value may be collected and transmitted over the life of the analyte sensor 375 (e.g., ranging from 1 to 30 days or more). New measurements may be transmitted frequently enough to adequately monitor the glucose level. Rather than having the transmitting and receiving circuitry of each of the analyte sensor system 308 and the display device 310 in continuous communication, the analyte sensor system 308 and the display device 310 may periodically and / or periodically establish a communication channel between them. Thus, the analyte sensor system 308 may communicate with the display device 310 (e.g., a handheld computing device, a medical device, or a proprietary device) via wireless transmission, in some cases at predetermined time intervals. The duration of the predetermined time interval may be selected to be long enough so that the analyte sensor system 308 does not consume too much power by transmitting data more frequently than necessary, but frequent enough to provide substantially real-time sensor information (e.g., measured glucose values or analyte data) to the display device 310 for output to the user (e.g., via the display 345). The predetermined time interval is every 5 minutes in a particular embodiment, although it will be understood that this time interval may be varied to be any desired length of time.
[0061] 3B , the connection interface 315 may interface the display device 310 to the communication medium 305 such that the display device 310 may be communicatively coupled to the analyte sensor system 308 via the communication medium 305. The transceiver 320 of the connection interface 315 may include multiple transceiver modules and / or circuits capable of operating on different wireless standards. The transceiver 320 may be used to receive analyte data and associated commands and messages from the analyte sensor system 308. In some embodiments, the transceiver 320 may comprise a Bluetooth controller configured to transmit Bluetooth signals for communicating with another device, for example, the analyte sensor system 308, as described in more detail in connection with one or more embodiments below. Additionally, the connection interface 315 may include additional components for controlling wireless and / or wired connections, such as a baseband and / or Ethernet modem, an audio / video codec, and / or a cellular connection.
[0062] The storage device 325 may include volatile memory (e.g., RAM) and / or non-volatile memory (e.g., flash storage), and may include EPROM, EEPROM, cache, or some combination / variation thereof. In certain embodiments, the storage device 325 may store user input data and / or other data collected by the display device 310 (e.g., input from other users collected via the analyte sensor application 330). The storage device 325 may also be used for bulk storage of analyte data received from the analyte sensor system 308 for later retrieval and use, for example, to determine trends and trigger alerts. In addition, the storage device 325 may store the analyte sensor application 330, which, when executed using the processor 335, receives input (e.g., via conventional hard / soft keys or a touch screen, voice detection, or other input mechanisms) and allows a user to interact with the analyte data and associated content via the GUI 340.
[0063] In certain embodiments, a user may interact with the analyte sensor application 330 via a GUI 340, which may be provided by a display 345 of the display device 310. By way of example, the display 345 may be a touchscreen display that accepts various hand gestures as input. The analyte sensor application 330 may process and / or present analyte-related data received by the display device 310 and present such data via the display 345 according to various operations described herein. Additionally, the analyte sensor application 330 may be used to acquire, access, display, control, and / or interface with analyte data and related messaging and processes associated with the analyte sensor system 308.
[0064] The analyte sensor application 330 may be downloaded, installed, and initially configured / setup on the display device 310. For example, the display device 310 may obtain the analyte sensor application 330 from a computing system accessed via a communication medium (e.g., communication medium 305), such as an application store. Following installation and configuration, the analyte sensor application 330 may be used to access and / or interface with analyte data (e.g., whether stored locally from storage device 325, from the analyte sensor system 308, or from another computing system). By way of example, the analyte sensor application 330 may present a menu including various controls or commands that can be performed in connection with the operation of the analyte sensor system 308 and one or more display devices 310. The analyte sensor application 330 may also be used to interface with or control other display devices 310, e.g., to deliver or make available analyte data thereto, including, e.g., by receiving / transmitting analyte data directly to the other display devices 310 and / or by transmitting instructions for the analyte sensor system 308 and other display devices 310 to be connected. Additionally, the analyte sensor application 330 in some implementations may interact with one or more additional applications supported by the display device 310, e.g., to retrieve or provide relevant data. Such applications may include, by way of example, fitness / lifestyle monitoring applications, social media applications, etc. Additionally, the analyte sensor application 330 in certain embodiments may be configured to operate according to (or support) one or more wireless communication protocols. The analyte sensor application 330 can configure the display device 310 for communication with the analyte sensor system 308 using such wireless communication protocol(s).For example, the analyte sensor application 330 may include software instructions including a custom communication profile (as described below) for configuring the display device 310 to communicate with the analyte sensor system 308 based on instructions provided by the custom profile.
[0065] The analyte sensor application 330 may include various code / functional modules, such as, for example, a display module, a menu module, a list module, etc., as will become apparent in light of the description of various functions herein (e.g., in relation to the disclosed methods). These modules may be implemented separately or in combination. Each module may include a computer-readable medium and have computer-executable code stored thereon, such that the code is operably coupled to and / or executed by the processor 335 (which may, for example, include circuitry for such execution) to perform a particular function (e.g., as described herein with respect to various operations, flowcharts, etc.) with respect to interfacing with analyte data and performing tasks related thereto. As described further below, the display module may present various screens to the user (e.g., via the display 345), along with screens containing graphical representations of information provided by the analyte sensor application 330. In further embodiments, the analyte sensor application 330 may be used to display to the user an environment for viewing and interacting with various display devices that may be connectable to the analyte sensor system 308, as well as the analyte sensor system 308 itself. The analyte sensor application 330 may include a native application modified with a software design kit (or software development kit) (SDK) (e.g., depending on the operating system) to perform the functions / features described herein.
[0066] 3B , processor 335 may include processor sub-modules, including, by way of example, an application processor that interfaces with and / or controls other elements of display device 310 (e.g., connection interface 315, analyte sensor application 330, GUI 340, display 345, RTC 350, etc.). Processor 335 may include a controller and / or microcontroller that provides various controls (e.g., interfacing with buttons and switches) related to device management, such as, for example, a list of available or previously paired devices, information related to measurements, information related to network conditions (e.g., link quality, etc.), information related to the timing, type, and / or structure of messages exchanged between analyte sensor system 308 and display device 310, etc. Additionally, the controller may include various controls related to the collection of user inputs, such as, for example, a user's fingerprint (e.g., to be used to authorize user access to data or for authorization / encryption of data, including analyte data), and analyte data.
[0067] The processor 335 may include circuits such as logic circuits, memory, battery and power circuits, and other circuit drivers for peripheral and audio components. The processor 335 and any sub-processors thereof may include logic circuits for receiving, processing, and / or storing data received and / or input by the display device 310 and data transmitted or distributed by the display device 310. The processor 335 may be coupled to the display 345, as well as the connection interface 315 and the storage device 325 (including the analyte sensor application 330) by a bus. Thus, the processor 335 may perform various functions by receiving and processing electrical signals generated by these respective elements. As an example, the processor 335 may access stored content from the storage device 325 at the direction of the analyte sensor application 330 and process the stored content for display and / or output by the display 345. Additionally, the processor 335 may process the stored content for transmission to other display devices 310, the analyte sensor system 308, or the server system 334 via the connection interface 315 and the communication medium 305. Display device 310 may include other peripheral components not shown in detail in FIG. 3B.
[0068] At this point, it should be noted that similarly named elements between the display device 310 and the analyte sensor system 308 may include similar features, structures, and / or functions. Accordingly, with respect to such elements, the above description of the display device 310 may, in some cases, be applied to the analyte sensor system 308.
[0069] Exemplary Authentication and Pairing Establishing a secure wireless connection between the analyte sensor system 308 and the display device 310 may include engaging in identification, authentication, pairing, and / or bonding protocols or methods. The identification protocol may be designed, for example, to enable the display device 310 to effectively identify the analyte sensor system 308. The authentication protocol may be designed to enable the analyte sensor system 308 and the display device 310 to verify whether other peer devices are trusted devices. The pairing and bonding protocols may be designed to enable the exchange of information between the analyte sensor system 308 and the display device 310 and to establish an encrypted connection for communication.
[0070] 4 is a network sequence diagram 400 illustrating the execution of a communication procedure between the analyte sensor system 308 and the display device 310, according to certain embodiments. In certain embodiments, the communication procedure may include invitation, authentication, pairing, and / or bonding between the analyte sensor system 308 and the display device 310.
[0071] The various tasks performed in connection with the procedures shown in FIG. 4 may be performed, for example, by respective processors executing instructions embodied in respective non-transitory computer-readable media. The tasks or operations performed in connection with the procedures may be performed by hardware, software, firmware, or any combination thereof incorporated in one or more of the computing devices. It will be understood, upon review of this disclosure, that such procedures may include any number of additional or alternative tasks or operations. It should be noted that some of the steps shown in FIG. 4 may be performed in a different order than that shown in FIG. 4, or may be performed in parallel or overlapping in time. Thus, the reference numbers assigned to different steps shown in FIG. 4 may not indicate the order in which they are performed in a particular embodiment. Furthermore, the procedures may be combined into a more comprehensive procedure or process having additional functionality not described in detail herein with specific reference to FIG. 4.
[0072] Also, although network sequence diagram 400 illustrates the execution of communication procedures for wireless communication between analyte sensor system 308 and display device 310, the steps illustrated in network sequence diagram 400 may similarly be followed when establishing wireless communication between analyte sensor system 308 and one of various other devices (e.g., a router, a hub, or any other computing device). In certain embodiments, network sequence diagram 400 illustrates communication procedures for an initial connection between analyte sensor system 308 and a first display device 310. That is, in certain embodiments, the steps of network sequence diagram 400 may be performed when analyte sensor system 308 is not yet paired with any display device.
[0073] 4 , before performing authentication, pairing, and bonding, the analyte sensor system 308 may be configured to send an invitation to a display device, such as the display device 310 depicted in FIG. 4 , that is available for connection. This may be performed, for example, by sending a general invitation, as shown in step(s) 402 1-N of FIG. 4 . Step(s) 402 1-N may be performed as part of an “invitation phase.” In certain embodiments, the display device 310 may scan for the analyte sensor system 308 or another similar sensor system to connect to. Scanning for the analyte sensor system 308 generally involves receiving and processing an invitation message being broadcast by the analyte sensor system 308.
[0074] Generally, when the analyte sensor system 308 (or its sensor electronics module 106) is first powered up, the analyte sensor system 308 is configured to broadcast a general invitation to be identified by and paired with one or more display devices. In the embodiment of FIG. 4 , in steps 402 1-N, the analyte sensor system 308 broadcasts the general invitation(s). The general invitation may be broadcast over multiple frequency channels. The analyte sensor system 308 may broadcast the general invitation periodically at defined intervals. In certain embodiments, the analyte sensor system 308 broadcasts the general invitation as soon as the analyte sensor system 308 is powered on.
[0075] The generic invite packet may include a header (e.g., a 2-byte header) and a variable-sized payload (e.g., 6-37 bytes). The header may include one or more fields, including, for example, a PDU type field, one or more reserved fields, etc. The payload may include an invite address (e.g., a 48-bit BLE MAC address or a Generic Address Profile (GAP) address of the analyte sensor system 308) and one or more invite data structures, as described in more detail below.
[0076] After detecting the general invitation, the display device 310 may respond to the general invitation by sending a connection request to the analyte sensor system 308 in step 404. Upon receiving the connection request, the analyte sensor system 308 may accept, reject, or simply ignore the request. If there is no basis for rejecting or ignoring the connection request, the analyte sensor system 308 may accept the request and connect to the display device that sent the request. As shown in step 406, for example, the analyte sensor system 308 may send a connection response message to the display device 310 indicating that the request was granted. A data connection between the analyte sensor system 308 and the display device 310 may then be established.
[0077] In certain embodiments, after a data connection is established between the analyte sensor system 308 and the display device 310, an authentication procedure may be employed before data (e.g., analyte data) is actually exchanged (e.g., in step 416). For example, in step 408, the analyte sensor system 308 and the display device 310 perform authentication during an authentication phase. The authentication may be performed according to an authentication protocol, examples of which may include a challenge-response protocol, a certificate-based protocol, token authentication, a public key infrastructure (PKI) protocol, a password-authenticated key exchange (PAKE) protocol, etc.
[0078] After the authentication phase, the analyte sensor system 308 and the display device 310 may perform pairing and bonding. Steps 410, 412, and / or 414 may be performed as part of a “pairing and bonding phase.” In step 410, the display device 310 may send a pairing request to the analyte sensor system 308, and in step 412, the analyte sensor system 308 may respond with a pairing response. In some examples, the pairing process includes an exchange of information, such as information related to input / output (IO) capabilities, man-in-the-middle (MITM) protection, etc. During pairing between the analyte sensor system 308 and the display device 310, the two devices may agree on a temporal key (TK), the value of which may depend on the pairing method used.
[0079] In step 414, the analyte sensor system 308 and the display device 310 engage in bonding. During bonding, the devices may store additional information about each other. For example, after exchanging security features during pairing and encrypting the connection, the devices bond by generating and exchanging long term keys (LTKs) and storing the LTKs for later use.
[0080] After bonding with the display device 310, the analyte sensor system 308 may add the display device 310 to a target device list. The target device list may be a data array or some other data structure maintained in memory by the analyte sensor system 308 and may include devices that the analyte sensor system 308 has previously paired and bonded with. By adding the display device 310 to the target device list, the analyte sensor system 308 and the display device 310 may reconnect more quickly for a subsequent connection. For example, as described in more detail with respect to FIG. 5, certain authentication and pairing and bonding steps may be skipped for the reconnection.
[0081] After pairing and bonding, the analyte sensor system 308 and the display device 310 are ready to exchange data over the secure connection. For example, the analyte sensor system 308 can use the LTK to encrypt data (e.g., at the BLE layer) including the analyte measurements associated with the user for transmission to the display device 310 in step 424. The display device 310 can similarly use the LTK to encrypt data for transmission to the analyte sensor system 308.
[0082] As described above, the analyte sensor system 308 collects analyte data and transmits the same or modified versions of the collected data to the display device 310. Data points regarding the analyte value may be collected and transmitted over the life of the analyte sensor 104 (e.g., ranging from 1 to 30 days or more). New measurements may be transmitted frequently enough to adequately monitor the analyte levels of a user of the analyte sensor system 308. In certain embodiments, to conserve power, rather than having the transmitting and receiving circuitry of each of the analyte sensor system 308 and the display device 310 in continuous communication, the analyte sensor system 308 and the display device 310 may periodically and / or periodically establish a communication channel between each other.
[0083] Thus, in such an embodiment, the analyte sensor system 308 may communicate with the display device 310, for example, at predetermined time intervals (e.g., by periodically switching between sleep and operational modes). The duration of the predetermined time interval may be selected to be long enough so that the analyte sensor system 308 does not consume too much power by transmitting data more frequently than necessary, but frequent enough to provide substantially real-time sensor information (e.g., measured glucose values or analyte data) to the display device 310 for output to the user. This time interval may be modified to be any desired length of time. For example, in certain embodiments, the analyte sensor system 308 may “wake up” every few minutes (e.g., 5 minutes) to exchange data with the display device 310, but may enter a sleep mode between the intervals. Each time the analyte sensor system 308 “wakes up,” the analyte sensor system 308 and the display device 310 may perform a connection procedure to re-establish a secure wireless connection between the two devices. In other embodiments, the analyte sensor system 308 and the display device 310 may communicate continuously. For example, in certain embodiments, the analyte sensor system 308 and the display device 310 may establish a session or connection between them and continue to communicate with each other until the connection is lost.
[0084] 4, the analyte sensor system 308 is configured to enter a sleep mode after pairing, bonding, and exchanging data with the display device 310. Thus, in step 418, the analyte sensor system 308 and the display device 310 are disconnected.
[0085] As described above, after bonding with the display device 310, the analyte sensor system 308 adds information about the display device 310 (e.g., the GAP address) to a target device list for reconnection. In certain embodiments, a threshold may be configured for the target device list. The target device list threshold may be used by the analyte sensor system 308 to determine whether to continue a general invitation after disconnecting from the display device 310 or during subsequent invitation sessions (e.g., every 5 minutes) when the analyte sensor system 308 wakes up. For example, the analyte sensor system 308 may have a single target device list and a corresponding threshold of 1, meaning that the analyte sensor system 308 is configured to connect with only one device at a time. In such an example, if the analyte sensor system 308 is configured to perform a two-second generic invite when first powered up, the analyte sensor system 308, once paired and bonded with the display device 310, may decide to stop broadcasting generic invites for the remainder of the first two-second generic invite session and / or during the next invite session (e.g., every five minutes). In such an example, the analyte sensor system 308 would only make a target invite during the next invite session to reconnect with the display device 310, as further described in connection with FIG. 5.
[0086] In certain embodiments, the analyte sensor system 308 may be configured with multiple target device lists, each with a corresponding configured threshold. In such embodiments, each target device list may be associated with a different type of device. For example, the analyte sensor system 308 may have a first target device list for a commercially available display device (e.g., display device 112 of FIG. 1 ) and a second target device list for a medical device, such as an insulin pump (e.g., medical device 110 of FIG. 1 ). In the above example, the analyte sensor system's 308 first target device list threshold for the commercially available display device may be 1 (or some other number), and the second target device list threshold for the medical device may also be 1 (or some other number).
[0087] In such an example, assuming display device 310 is a commercially available display device, after pairing and bonding with display device 310, analyte sensor system 308 may determine that the analyte sensor system's 308 target device list threshold for the commercially available display device has been met. However, in this example, the analyte sensor system's 308 threshold for its second target device list has not yet been met, so analyte sensor system 308 may continue to send additional general invitations for additional devices to pair with analyte sensor system 308. If analyte sensor system 308 determines that both target device list thresholds have been met, analyte sensor system 308 stops broadcasting the general invitation and proceeds by broadcasting only the target invitation, as shown in FIG. 5 .
[0088] In certain embodiments, the analyte sensor system 308 has a configured period for sending target invitations and a configured period for sending general invitations. For example, during an invitation session (or invitation period) in which the analyte sensor system 308 runs both general invitations and target invitations, the analyte sensor system 308 may broadcast the general invitation for a first length of time (e.g., 2 seconds) and the target invitation for a second length of time (e.g., 20 seconds).
[0089] As described above, when one or more target device list thresholds are met, the analyte sensor system 308 may stop sending general invitations and may only send target invitations to reconnect to one or more devices previously paired with the analyte sensor system 308. FIG. 5 is a network sequence diagram 500 illustrating the execution of a communication procedure between the analyte sensor system 308 and the display device 310, according to certain embodiments. In certain embodiments, the communication procedure may be for re-establishing communication between the analyte sensor system 308 and the display device 310, according to certain embodiments. While the network sequence diagram 500 depicts a communication procedure in which target invitation(s) are sent to the display device 310, it should be noted that in certain embodiments, general invitation(s) may also be sent to the display device 310, for example, if at least one target device list threshold is not met.
[0090] The various tasks performed in connection with the procedures shown in FIG. 5 may be performed, for example, by respective processors executing instructions embodied in respective non-transitory computer-readable media. The tasks or operations performed in connection with the procedures may be performed by hardware, software, firmware, or any combination thereof incorporated in one or more of the computing devices. It will be understood, upon review of this disclosure, that such procedures may include any number of additional or alternative tasks or operations. It should be noted that some of the steps shown in FIG. 5 may be performed in a different order than that shown in FIG. 5, or may be performed in parallel or overlapping in time. Thus, the reference numbers assigned to different steps shown in FIG. 5 may not indicate the order in which they are performed in a particular embodiment. Furthermore, the procedures may be combined into a more comprehensive procedure or process having additional functionality not described in detail herein with specific reference to FIG. 5.
[0091] At 504, the analyte sensor system 308 broadcasts one or more targeted invitations. Each targeted invitation may include the same or similar packet format as the generic invitation. For example, each targeted invitation may include a header (e.g., a 2-byte header) and a variable-sized payload (e.g., 6-37 bytes). The payload of the targeted invitation may include an invitation address (e.g., the 48-bit BLE MAC address or GAP address of the analyte sensor system 308), an intended recipient address (e.g., the address of a previously connected display device 310), and one or more invitation data structures, as described in more detail below.
[0092] In step 404, the display device 310 sends a connection request to the analyte sensor system 308. In step 406, the analyte sensor system 308 grants the connection request based on determining that the display device 310 has previously paired with the analyte sensor system 308 and appears on the analyte sensor system 308's list of target devices. In certain embodiments, because the display device 310 has previously paired with the analyte sensor system 308, the authentication, pairing, and bonding steps may be skipped. After connecting, the analyte sensor system 308 and the display device 310 may exchange data (in step 416) and then disconnect in step 418.
[0093] With the above description of aspects of systems and methods for wireless communication of analyte data, several specific further improvements are now provided. Those skilled in the art will understand, upon reviewing this disclosure, that these improvements may be implemented using features and combinations of features of the exemplary configurations described above, whether or not explicitly referenced.
[0094] Exemplary Techniques for Inviting to Connect Wirelessly with Reduced Payload As mentioned above, one technical deficiency with certain existing connection procedures, such as those of the network sequence diagrams 400 and 500 illustrated in Figures 4 and 5, respectively, is that such procedures may cause the analyte sensor system 308 to send messages, such as invitation packets (e.g., advertisement packets), with high overhead. By way of example, as noted above, the invitation may be in the form of a packet (e.g., a protocol data unit (PDU)) that includes a header (e.g., a 2-byte header) and a variable-sized payload (e.g., 6-37 bytes).
[0095] In some cases, when broadcasting the generic invitation and the target invitation, the analyte sensor system 308 may include various types of data within the payload portion of the generic and target invitation packets. However, while the display device 310 may be configured to parse and use the complete contents (including the payload) of the generic invitation during a generic invitation (e.g., when the display device 310 is initially attempting to pair with the analyte sensor system 308), the display device 310 may not need the complete contents (including the payload) of the target invitation during a target invitation (e.g., when the analyte sensor system 308 is attempting to reconnect with the display device 310). Rather, during a target invitation, the display device 310 may simply examine the invitation address (e.g., GAP address) of the target invitation (e.g., in the payload of the PDU) and determine whether the invitation address is the same as the invitation address of the analyte sensor system 308 with which the display device 310 was previously paired and bonded. If the display device 310 determines that the invitation address is the same as the invitation address of an analyte sensor system 308 with which the display device 310 was previously paired and bonded, the display device 310 may send a connection request to the analyte sensor system 308 and may not need to parse the remainder of the invitation payload. In such instances, including the full payload in the target invitation may lead to resource inefficiencies, such as increased or unnecessary overhead, and may result in unnecessary power consumption in the analyte sensor system 308.
[0096] To address the resource inefficiencies discussed above, certain embodiments described herein provide techniques for reducing the payload of a particular invite message based on whether the analyte sensor system 308 is in pairing mode (e.g., a generic invite period) or reconnection mode (e.g., a target invite period). In certain embodiments, the analyte sensor system 308 may determine whether to use a reduced payload in the invite message based on the state of one or more target device lists associated with the analyte sensor system 308. As shown in table 600 of FIG. 6 , for example, when the analyte sensor system 308 is not connected to any display devices (e.g., one or more target device list thresholds are not met), the analyte sensor system 308 may broadcast a generic invite having a first payload size during the generic invite period, and once the generic invite period has elapsed, the analyte sensor system 308 may send a target invite having a second payload size (smaller than the first payload size) during the target invite period. In particular embodiments, the first payload size may be the full payload size (e.g., 37 bytes) and may include an invite address (e.g., a 6-byte GAP address) and one or more invite data structures (e.g., up to 31 bytes). Examples of invite data structures may include, but are not limited to, a universally unique identifier (UUID) of the service provided by the analyte sensor system 308, a service class UUID, a shortened local name, a full local name, etc. The shortened local name may include a subset of characters from the full local name. For example, if the full local name is "Device_Name," the shortened local name may be "Device" or "Device_N," or some other subset of "Device_Name." An exemplary full payload of an invite message may include a GAP address, GAP flags, a full local name, a service UUID, and manufacturer-specific data.
[0097] Also, as shown in table 600, if the analyte sensor system 308 has one or more target device lists for which the corresponding threshold(s) are not met, the analyte sensor system 308 may broadcast a general invitation with a first payload size during the general invitation period, and once the general invitation period has elapsed, the analyte sensor system 308 may send a target invitation with a second payload size (smaller than the first payload size) during the whitelist advertising period.
[0098] As further shown in table 600, when all threshold(s) for the target device list(s) of the analyte sensor system 308 are met, the analyte sensor system 308 may refrain from sending a general invitation and may send a target invitation with a reduced payload size (e.g., compared to the payload size of a previously sent general invitation).
[0099] 7 is a flow diagram illustrating example operations 700 for wireless communication, for example, to reduce the payload of a particular invite message, in accordance with certain embodiments disclosed herein. The operations 700 may be performed by an analyte sensor system (e.g., analyte sensor system 308).
[0100] At operation 702, the analyte sensor system 308 sends one or more first invite messages (e.g., generic invites) having a first payload size during a first predetermined communication interval if a target device list of previously authenticated devices has at least one unpopulated entry (e.g., at least one target device list threshold has not been met). Each first invite message may include a header portion and a payload portion. Further, the payload portion of each first invite message may have the first payload size.
[0101] In certain embodiments, operation 702 may be performed when the analyte sensor system 308 is in the general invite phase of an advertising or invite period. For example, when the target device list of the analyte sensor system 308 has at least one unpopulated entry, the analyte sensor system 308 may perform the general invite up to a first length of time (e.g., 2 seconds) into the invite period (e.g., 22 seconds). In certain embodiments, the first payload size may be the full payload size for the general invite (e.g., the maximum payload size of an invite PDU).
[0102] At operation 704, the analyte sensor system 308 transmits one or more second invite messages having a second payload size smaller than the first payload size during the first predetermined communication interval if the target device list of the analyte sensor system 308 includes at least one device, such as the display device 310. Each second invite message may include a header portion and a payload portion. Further, the payload portion of each second invite message may have a second payload size smaller than the first payload size, as described above.
[0103] In certain embodiments, operation 704 may be performed when the analyte sensor system 308 is in the target invitation portion of the invitation period. For example, if the target device list includes at least one device, the analyte sensor system 308 may perform the target invitation up to the second length of time (e.g., 20 seconds) of the invitation period. In certain embodiments, the one or more second invite messages may include the GAP address of the analyte sensor system 308 but may not include payload content. In contrast, in certain embodiments, the one or more first invite messages may include the GAP address of the analyte sensor system 308 and payload content (e.g., analyte data). The second invite messages may be sent after the first invite message.
[0104] At operation 706, the analyte sensor system 308 establishes a communication session between the analyte sensor system 308 and the at least one device during the first predetermined communication interval based on at least one of the first invite message or the second invite message. In certain embodiments, the communication session may be an initial communication session established between the analyte sensor system 308 and the at least one device based on the first invite message. In certain embodiments, the communication session may be a re-established (or subsequent) communication session between the analyte sensor system 308 and the at least one device based on the second invite message.
[0105] Exemplary Techniques for Dynamic Transmit Power Adjustment As mentioned above, another technical deficiency with certain existing connection procedures, such as those of network sequence diagrams 400 and 500 shown in Figures 4 and 5, respectively, is that such procedures may cause the analyte sensor system 308 to transmit messages (e.g., packets) at a constant power level regardless of the strength of the response signal received from the display device. As a non-limiting example, after a connection is made as a result of a general invite or a targeted invite, the analyte sensor system 308 may transmit packets (e.g., authentication messages, pairing messages, bonding messages, sensor data, etc.) using the same transmit power level regardless of the signal strength of the response message from a display device, such as display device 310. Transmitting packets in this manner may lead to increased or unnecessary power consumption in the analyte sensor system 308. For example, if the patient's analyte sensor system is in close proximity to the display device (e.g., the patient is holding the display device, the patient is sleeping next to the display device, etc.), it may not be necessary to use the same constant power level to transmit packets compared to if the patient's analyte sensor system is further away from the display device or has a poor connection to the display device (e.g., the patient is sleeping on the analyte sensor system transmitter).
[0106] Accordingly, certain embodiments described herein provide techniques for dynamically adjusting the transmit power of a packet based on the signal strength (e.g., received signal strength indicator (RSSI)) of the display device 310. More specifically, in certain embodiments, for each packet received from the display device 310 (e.g., on a packet-by-packet basis), the analyte sensor system 308 may determine whether to maintain the transmit power at a current transmit power level, increase the transmit power, or decrease the transmit power based at least in part on the signal strength of the received packet. For example, when the analyte sensor system 308 receives a packet from the display device 310 with a signal strength below a threshold, the analyte sensor system 308 may increase its transmit power by a predetermined amount. Thereafter, when the analyte sensor system 308 receives a packet with a signal strength greater than the threshold, the analyte sensor system 308 may decrease its transmit power by a predetermined amount. By dynamically adjusting the transmit power of packets in this manner, power consumption at the analyte sensor system 308 may be reduced based on the current quality of the connection (e.g., as inferred by signal strength) between the analyte sensor system 308 and the display device 310. For example, assuming a patient is asleep on their analyte sensor system 308 (e.g., its TRX 360) at a first time point, the analyte sensor system 308 may increase its transmit power by a predetermined amount. If the patient then changes position / orientation such that their analyte sensor system 308 (its TRX 360) has a substantial line-of-sight to the display device 310 at a second time point, the analyte sensor system 308 may reduce its transmit power by a predetermined amount to reduce power consumption at the analyte sensor system 308.
[0107] Additionally, dynamically adjusting the transmit power of packets may enable more reliable communication between the analyte sensor system 308 and the display device 310. For example, if the analyte sensor system 308 begins transmitting a packet(s) at a first transmit power level (e.g., 0 decibels per milliwatt (dBm)) and determines that the signal strength of the packet received from the display device 310 is below a threshold, the analyte sensor system 308 may increase the transmit power, thereby increasing the likelihood that the display device 310 will receive a subsequent packet from the analyte sensor system 308. Continuing with the above example, at a subsequent third time point, if the patient moves to a different location such that their analyte sensor system 308 (TRX 360) is located farther away from the display device 310, the analyte sensor system 308 may increase the transmit power to increase the likelihood that the display device 310 will receive a subsequent packet from the analyte sensor system 308.
[0108] 8 illustrates an example of dynamic transmit power adjustment, according to certain embodiments. As shown in 802, the analyte sensor system 308 may begin transmitting a general invitation at a first transmit power level (e.g., 0 dBm) during the general invitation period. As discussed above, in certain embodiments, the analyte sensor system 308 may begin transmitting the general invitation when the analyte sensor system 308 is first powered up and is not connected to any display device 310.
[0109] After the analyte sensor system 308 connects with the display device 310 based on sending one or more general invites, the analyte sensor system 308 may exchange one or more messages with the display device 310. In particular embodiments, these messages may be associated with authentication, pairing, bonding, and / or secure data exchange. For each message received from the display device 310, the analyte sensor system 308 may measure the signal strength of the message (e.g., an RSSI value measured in dBm) and determine whether the signal strength is less than a first threshold (e.g., −80 dBm).
[0110] If the signal strength is below the first threshold, the analyte sensor system 308 may increase 806 its transmit power from a first transmit power level (e.g., 0 dBm) to a second transmit power level (e.g., 4 dBm). As a non-limiting example, the transmit power may be increased from the first transmit power level to the second transmit power level when at least one of (i) the analyte sensor system 308 is currently located far away from the display device 310 or (ii) the analyte sensor system 308 does not have a substantial line of sight to the display device 310 (e.g., the patient may be asleep over the transmitter of the analyte sensor system 308).
[0111] Alternatively, if the signal strength is greater than or equal to the first threshold, the analyte sensor system 308 may maintain its transmit power at a first transmit power level (e.g., 0 dBm), as shown at 804. As a non-limiting example, the transmit power may be maintained at the first transmit power level when the analyte sensor system 308 is at least one of: (i) currently proximate to the display device 310; or (ii) has a substantial line of sight to the display device 310.
[0112] Once the general invitation period has elapsed, the analyte sensor system 308 may begin transmitting target invitations at a second transmit power level (e.g., 4 dBm) during the target invitation period, as shown at 808 in FIG. 8 . In certain cases, the analyte sensor system 308 may transmit the target invitation at a second transmit power level (e.g., 4 dBm) that is higher than the first transmit power level (e.g., 0 dBm) to increase the likelihood that a previously connected display device 310 will receive the target invitation. Once a connection with the display device 310 is made as a result of the target invitation, the analyte sensor system 308 may exchange one or more messages with the display device 310. For each message received from the display device 310, the analyte sensor system 308 may measure the signal strength of the packet and determine whether the signal strength is greater than a second threshold (e.g., −70 dBm).
[0113] If the signal strength is greater than the second threshold, the analyte sensor system 308 may reduce its transmit power from the second transmit power level (e.g., 4 dBm) to the first transmit power level (e.g., 0 dBm) at 812. As a non-limiting example, the analyte sensor system 308 may reduce its transmit power from the second transmit power level to the first transmit power level when at least one of (i) the analyte sensor system 308 is currently proximate to the display device 310 or (ii) the analyte sensor system 308 has substantial line of sight to the display device 310, as maintaining the transmit power at the higher second transmit power may not be necessary in these scenarios. Alternatively, if the signal strength is less than or equal to the second threshold, the analyte sensor system 308 may maintain its transmit power at the second transmit power level (e.g., 4 dBm), as shown at 810. As a non-limiting example, the analyte sensor system 308 may maintain its transmit power at the second transmit power level when at least one of (i) the analyte sensor system 308 is currently located at a large distance from the display device 310, or (ii) the analyte sensor system 308 does not currently have a substantial line of sight to the display device 310 (e.g., the patient may be asleep over the transmitter of the analyte sensor system 308).
[0114] 9 is a flowchart of example operations 900 for dynamically adjusting the transmit power of an invitation based on the signal strength of a message(s) from a display device (e.g., display device 310), according to certain embodiments. The operations 900 may be performed by an analyte sensor system (e.g., analyte sensor system 308).
[0115] As shown, the operations 900 may begin at 902 where the analyte sensor system 308 begins transmitting a general invitation for a general invitation period using a first transmit power level (e.g., 0 dBm). If the general invitation period has elapsed (or timed out), the analyte sensor system 308 begins transmitting a target invitation for a target invitation period using a second transmit power level (e.g., 4 dBm) at 908. If the target invitation period has elapsed (or timed out), the analyte sensor system 308 waits for the next invitation period (or interval) before returning to 902, as shown at 910.
[0116] If the analyte sensor system 308 connects with the display device 310 as a result of the general invite at 902, then the analyte sensor system determines, for each packet received from the display device 310, whether the signal strength of the packet is less than a first threshold (e.g., −80 dBm) at 904. If the signal strength is greater than or equal to the first threshold, then the analyte sensor system 308 maintains its transmit power at a first transmit power level at 904. In certain scenarios, a signal strength greater than (or equal to) the first threshold may indicate at least one of: (i) the analyte sensor system is in close proximity to the display device; or (ii) the analyte sensor system has substantial line of sight to the display device.
[0117] On the other hand, if the signal strength is less than the first threshold, the analyte sensor system 308 proceeds to 906. In certain scenarios, a signal strength less than the first threshold may indicate at least one of: (i) the analyte sensor system is located far away from the display device; or (ii) the analyte sensor system no longer has a substantial line of sight to the display device. Transitioning from 904 to 906, the analyte sensor system 308 increases its transmit power from the first transmit power level to a second transmit power level (e.g., 4 dBm) (e.g., to increase the likelihood that the display device 310 will receive subsequent packet(s) transmitted from the analyte sensor system 308). Additionally, at 906, the analyte sensor system 308 determines, for each packet received from the display device 310, whether the signal strength of the packet is greater than a second threshold (e.g., −70 dBm).
[0118] If the signal strength is less than or equal to the second threshold, then at 906, the analyte sensor system 308 maintains its transmit power at a second transmit power level. In certain scenarios, a signal strength less than the second threshold may indicate at least one of (i) the analyte sensor system 308 being located far away from the display device 310, or (ii) the analyte sensor system 308 not having a substantial line of sight to the display device 310. On the other hand, if the signal strength is greater than the second threshold, then the analyte sensor system 308 proceeds to 904. In certain scenarios, a signal strength greater than the second threshold may indicate at least one of (i) the analyte sensor system 308 being in proximity to the display device 310, or (ii) the analyte sensor system 308 having a substantial line of sight to the display device 310. Transitioning from 906 to 904, the analyte sensor system 308 reduces its transmit power from the second transmit power level (e.g., 4 dBm) to the first transmit power level (e.g., 0 dBm). For example, in these scenarios, it may be unnecessary to continue transmitting at the higher second transmit power level. Further, at 904, the analyte sensor system 308 determines, for each packet received from the display device 310, whether the signal strength of the packet is less than a first threshold (e.g., −80 dBm).
[0119] As discussed above, in certain embodiments where the analyte sensor system's target device list is full, instead of sending a general invitation at 902, the operations 900 can begin at 908 where the analyte sensor system 308 begins sending a targeted invitation. Thereafter, if a connection is established between the analyte sensor system 308 and the display device 310 as a result of the targeted invitation, the analyte sensor system 308 can proceed to 906. In this case, at 906, the analyte sensor system 308 determines, for each packet received from the display device 310, whether the signal strength of the packet is greater than a second threshold (e.g., −70 dBm).
[0120] If the signal strength is less than or equal to the second threshold, then at 906, the analyte sensor system 308 maintains its transmit power at the second transmit power level. However, if the signal strength is greater than the second threshold, then the analyte sensor system 308 proceeds to 904. Transitioning from 906 to 904, the analyte sensor system 308 reduces its transmit power from the second transmit power level (e.g., 4 dBm) to the first transmit power level (e.g., 0 dBm). Additionally, at 904, the analyte sensor system 308 determines, for each packet received from the display device 310, whether the signal strength of the packet is less than a first threshold (e.g., −80 dBm), and so on.
[0121] In other words, once a connection is made, whether for the first time (as a result of a general invite) or in reconnection mode (as a result of a targeted invite), the analyte sensor system 308 can dynamically adjust its transmit power for each response packet received from the display device. For example, if the current transmit power is equal to a first transmit power level (e.g., 0 dBm) and the signal strength of the response packet is less than a first threshold (e.g., −80 dBm), the analyte sensor system 308 can increase its transmit power from the first transmit power level to a second transmit power level (e.g., 4 dBm). Alternatively, if the current transmit power is equal to the first transmit power level (e.g., 0 dBm) and the signal strength of the response packet is greater than or equal to the first threshold, the analyte sensor system 308 can maintain its current transmit power at the first transmit power level (e.g., 0 dBm).
[0122] However, if the current transmit power is equal to the second transmit power level (e.g., 4 dBm) and the signal strength of the response packet is greater than a second threshold (e.g., −70 dBm), the analyte sensor system 308 may reduce its transmit power from the second transmit power level to the first transmit power level (e.g., 0 dBm). Alternatively, if the current transmit power is equal to the second transmit power level (e.g., 4 dBm) and the signal strength of the response packet is less than or equal to the second threshold, the analyte sensor system 308 may maintain its current transmit power at the second transmit power level (e.g., 4 dBm).
[0123] 10 is a flow diagram illustrating example operations 1000 for wireless communication, for example, for dynamically adjusting the transmit power of a message(s) based on the signal strength of the message(s) from a display device (e.g., display device 310), according to certain embodiments disclosed herein. Operations 1000 may be performed by an analyte sensor system (e.g., analyte sensor system 308).
[0124] In operation 1002, the analyte sensor system 308 establishes a connection between a transmitter (e.g., TRX 360) of the analyte sensor system 308 and the display device 310. In certain embodiments, the connection may be established as a result of a general invitation from the analyte sensor system 308. In certain embodiments, the connection may be established as a result of a targeted invitation from the analyte sensor system 308.
[0125] At operation 1004, the analyte sensor system 308 receives at least a first packet from the display device 310 after establishing the connection. In certain embodiments where the connection is established based on a general invitation, the first packet may be associated with at least one of an authentication procedure, a pairing procedure, a bonding procedure, or a secure data exchange between the analyte sensor system 308 and the display device 310. In certain embodiments where the connection is established based on a targeted invitation, the first packet may be associated with at least one of a reconnection request or a secure data exchange between the analyte sensor system 308 and the display device 310.
[0126] At operation 1006, the analyte sensor system 308 determines a transmit power for the second packet based at least in part on the current transmit power level of the transmitter and the signal strength of the first packet. In particular embodiments, the signal strength includes RSSI. At operation 1008, the analyte sensor system 308 transmits the second packet to the display device 310 at the transmit power determined for the second packet.
[0127] In certain embodiments, the operations 1000 may further include receiving at least a third packet from the display device 310 after transmitting the second packet, and determining a transmit power for a fourth packet based at least in part on the current transmit power level of the transmitter and the signal strength of the third packet. The analyte sensor system may then transmit the fourth packet to the display device 310 at the transmit power determined for the fourth packet.
[0128] In particular embodiments, determining the transmit power of the second packet in 1006 may include increasing the transmit power from a first transmit power level to a second transmit power level when the signal strength of the first packet is less than a threshold and the current transmit power level at the analyte sensor system is equal to the first transmit power level. In such embodiments, the first transmit power level may be 0 dBm, the second transmit power level may be 4 dBm, and the threshold may be −80 dBm. However, it should be noted that other values may be used for the first transmit power level, the second transmit power level, and / or the threshold.
[0129] In particular embodiments, determining the transmit power for the second packet at 1006 may include maintaining the transmit power at a current transmit power level if the signal strength of the first packet is greater than or equal to a threshold. In such embodiments, the current transmit power level in the analyte sensor system may be 0 dBm and the threshold may be −80 dBm. However, it should be noted that other values for the current transmit power level and / or threshold may be used.
[0130] In particular embodiments, determining the transmit power of the second packet in 1006 may include reducing the transmit power from a first transmit power level to a second transmit power level when the signal strength of the first packet is greater than a threshold and the current transmit power level at the analyte sensor system is equal to the first transmit power level. In such embodiments, the first transmit power level may be 4 dBm, the second transmit power level may be 0 dBm, and the threshold may be −70 dBm. However, it should be noted that other values may be used for the first transmit power level, the second transmit power level, and / or the threshold.
[0131] In a particular embodiment, determining the transmit power for the second packet in 1006 includes maintaining the transmit power at the current transmit power level if the signal strength is less than or equal to the threshold. In such an embodiment, the current transmit power level may be 4 dBm and the threshold may be −70 dBm. However, it should be noted that other values for the current transmit power level and / or the threshold may be used.
[0132] Attribute Protocol and Generic Attribute Protocol In certain embodiments, the analyte sensor system 308 and the display device 310 may communicate wirelessly according to the Attribute Protocol (ATT). The ATT defines how a server (e.g., the analyte sensor system 308) exposes and transmits its data to a client (e.g., the display device 310) and how the data is structured. Within the ATT, there are two roles: server and client.
[0133] A server exposes data that it controls or contains to clients, accepts incoming commands from clients, and sends responses, notifications, and indications to clients. For example, the analyte sensor system 308 may act as a server when it exposes one or more analyte values associated with a host to clients. As described in more detail below, the analyte sensor system 308 may also notify clients when analyte values or other data change, rather than having clients poll for data waiting for changes to occur.
[0134] A client is a device that interfaces with a server for the purpose of reading the server's published data and / or controlling the server's behavior. The client is also configured to send commands and requests and accept incoming notifications and indications from the server. For example, a display device 310 that connects to an analyte sensor system 308 and reads one or more analyte values may function as a client. Thus, as used herein, the analyte sensor system 308 may be referred to as the "server" and the display device 310 may be referred to as the "client."
[0135] In some embodiments, data exposed by a server is generally structured as attributes. An attribute is a generic term for any type of data exposed by a server and defines the structure of the data. An attribute may consist of (i) an attribute type, (ii) an attribute handle, and (iii) attribute permissions. The attribute type may be a UUID indicating the type of data (e.g., the UUID for a SIG-adopted temperature measurement is 0x2A1C). In particular embodiments, the attribute type may use a SIG-adopted UUID or a custom UUID. The attribute handle may be a 16-bit value that the server assigns to each of its attributes and serves as an address for a given attribute. This value may be used by the client and / or server to reference a particular attribute. Attribute permissions determine whether an attribute can be read or written, whether it can be advertised or indicated, and what security level is required for each of these actions. These permissions are defined at a higher layer (e.g., the Generic Attribute Protocol (GATT) layer or the application layer), which are described in more detail below.
[0136] In certain analyte sensor system applications, GATT can be used to exchange data, and GATT can be considered a meta-layer "on top" of ATT. GATT defines the format of services and their characteristics, as well as the procedures used to interface with attributes. Examples of attributes include service discovery, characteristic read, characteristic write, notification, and indication. A service is a group of one or more attributes, some of which are characteristics. A service is a grouping of related attributes that fulfill a specific function on a server. For example, the SIG-adopted battery service includes one characteristic known as battery level.
[0137] A characteristic is part of a service and represents a piece of information / data that the server wants to expose to clients. For example, a battery level characteristic represents the remaining power level of a battery in a device that can be read by a client (e.g., display device 310). A characteristic can include attributes such as a (characteristic) property, a characteristic value, and zero or more descriptors. A property can define how the characteristic value can be used. Some examples include read, write, write without response, notification, and indication. A descriptor is generally used to contain relevant information about the characteristic value. Some examples include extended properties, user descriptions, fields used to subscribe to notifications and indications (e.g., CCCD), and fields that define the presentation of the characteristic value, such as the value format and units.
[0138] Profiles are also defined by GATT and are broader in definition than services. Profiles typically define the behavior of both clients and servers in terms of services, characteristics, connectivity, security requirements, etc. In particular embodiments, profiles may be Bluetooth SIG adopted profiles or custom-defined profiles (e.g., defined at the application layer).
[0139] The CCCD is a descriptor that can be included within each property (specifically, the Client Property Configuration Descriptor). In a CCCD, the server may allow clients to opt in to having "pushed" style data updates from the server, as opposed to the client sending read requests for any data updates. Properties that properly support CCCD also support "push" style notifications (if the client opts in). Rather than the client continually reading values, the client can configure the server to send updates when updates occur. For example, if a client wants data pushed when the data changes, the client can write a value to the CCCD. This value depends on the style of update. In general, there are two styles of push updates: (i) notification and (ii) indication. With an "indication," the server gets confirmation that the client has gotten the update. With a "notification," the server does not get confirmation that the client has received the update.
[0140] BLE Architecture Example 11 illustrates an exemplary communication protocol architecture 1100 (e.g., a short-range communication protocol such as the Bluetooth Low Energy protocol) according to a particular embodiment. In the illustrated embodiment, the communication protocol architecture 1100 includes an application 1104, a host 1108, and a controller 1110. The application 1104 is generally a user application that interfaces with a communication protocol stack 1150 that includes the host 1108 and the controller 1110. The application 1104 may include a standard profile (with one or more services), a custom profile (with one or more services), and / or a library imported from an SDK. In a particular embodiment, a (software) image 1106 can implement the communication protocol stack 1150 for a system on a chip (SoC) (e.g., a processor).
[0141] The controller 1110 includes the lower layers of the communication protocol stack 1150. In Figure 11, the controller 1110 includes a link layer (LL) 1122 and a physical layer (PHY) 1124. The PHY 1124 is the lowest layer of the communication protocol stack 1150 and provides its services to the LL 1122. The PHY 1124 may include analog communication circuitry responsible for converting digital data over the air. The LL1122 interfaces directly with the PHY1124 and is generally responsible for tasks such as (i) advertising, scanning, and creating / maintaining connections, (ii) encapsulating data received from upper layers and generating packets that are passed bit by bit to the PHY1124, (iii) performing packet error detection, (iv) encryption / decryption of communications, (v) device address management, and (vi) defining device roles and states (e.g., inviter—device that sends invite packets; scanner—device that scans for invite packets; master—device that initiates and manages connections; or slave—device that accepts connection requests and follows the master's timing).
[0142] Although not shown in FIG. 11, in certain embodiments, the communication protocol stack 1150 may also include a host controller interface (HCI), which is a thin layer that transports commands and events between the host 1108 and controller 1110 of the BLE protocol stack 1150.
[0143] The host 1108 includes the upper layers of a communication protocol stack 1150, including GATT 1112, GAP 1114, ATT 1116, SM (Security Manager) 1118, and L2CAP (Logical Link Control and Adaptation Layer Protocol) 1120. L2CAP 1120 performs multiplexing for the upper layers, allowing protocols such as ATT 1116 and SM 1118 to share the same controller 1110. This layer is also responsible for segmentation and reassembly operations for packets exchanged between the upper layers and the controller 1110.
[0144] The SM 1118 is generally responsible for enabling security for applications running over the communication protocol. For example, the SM 1118 can provide device authentication, device authorization, device privacy, data integrity, etc. As described above, the ATT 1116 is a client / server protocol based on attributes presented by devices. For example, the ATT 1116 can define how units of data (attributes) are transferred. Generally, a client requests data from a server, and the server sends the data to the client. The server can also initiate data transfer using an indication or notification.
[0145] As mentioned above, the GATT 1112 typically interacts frequently with layers of the communication protocol stack 1150. The GATT 1112 is implemented on top of the ATT 1116 and uses it as its transport layer. The application 1102 can exchange data information with the communication protocol stack 1150 through the GATT 1112. The GAP 1114 defines procedures for how devices discover and connect. It also provides the SM 1118 with a layer for pairing, creating bonds, and ensuring privacy. The application 1102 can exchange control information with the communication protocol stack 1150 through the GAP 1114.
[0146] Exemplary Techniques for Reducing CCCD Messaging As mentioned above, one technical deficiency of the particular communication protocol supporting the CCCD is that repeatedly enabling and disabling the CCCD can result in an unnecessary number of messages being exchanged between the analyte sensor system 308 and the display device 310. This, in turn, can significantly increase power consumption in the analyte sensor system 308.
[0147] In general, there are a variety of properties that the analyte sensor system 308 may be configured to expose to the display device 310. By way of example, authentication information, synchronization information, and readout estimated glucose value are properties that the analyte sensor system 308 may want to expose to the display device 310. However, according to current communication protocols, before the display device 310 can obtain any of this information, the display device 310 may have to enable the CCCD for each of these properties. In other words, the display device 310 must send a separate packet with a bit set to enable the CCCD to the analyte sensor system 308, which causes the analyte sensor system 308 to transmit the respective information to the display device 310.
[0148] 12 shows an exemplary connection flow 1200 that includes repeatedly enabling / disabling CCCD for different characteristics. Using authentication information, synchronization information, and analyte information as reference examples of characteristic data, currently, if the display device 310 does not separately enable CCCD for each of the authentication information, synchronization information, and analyte information, the analyte sensor system 308 cannot transmit any of this information to the display device 310, delaying connection procedures and / or other procedures that the display device 310 may perform using such information. Thus, to perform connection procedures and / or other procedures, the display device 310 may have to separately enable CCCD for each characteristic (stream of data). Furthermore, the display device 310 may have to separately disable CCCD for each characteristic so that the display device 310 does not receive, or have the space to receive, information it does not want to receive.
[0149] More specifically, as shown in FIG. 12 , upon connecting with the analyte sensor system 308 at 1202, the display device 310 enables the CCCD to receive authentication information (e.g., a first characteristic) from the analyte sensor system 308 at 1204, authenticates with the analyte sensor system 308 based on the authentication information “pushed” from the analyte sensor system 308 at 1206, and disables the CCCD for the authentication information at 1208.
[0150] The display device 310 then enables the CCCD to receive synchronization information (e.g., the second characteristic) from the analyte sensor system 308 at 1210, performs synchronization with the analyte sensor system 308 based on the synchronization information "pushed" from the analyte sensor system 308 at 1212, and disables the CCCD for the synchronization information at 1214. Again, the display device 310 then enables the CCCD to receive analyte information (e.g., the third characteristic) from the analyte sensor system 308 at 1216, processes the analyte information "pushed" from the analyte sensor system 308 at 1218, and disables the CCCD for the analyte information at 1220. The display device 310 then disconnects (1222).
[0151] As discussed above, repeatedly enabling / disabling the CCCD can lead to increased and unnecessary power consumption in the analyte sensor system 308 and the display device 310. Additionally, enabling and disabling the CCCD can cause signal loss due to errors associated with enabling the CCCD indication. For example, each time the CCCD is enabled and disabled, the likelihood of transmission errors may increase. These transmission errors may cause the display device 310 to miss data updates from the analyte sensor system 308. Furthermore, another technical issue associated with repeatedly enabling and disabling the CCCD is that whether or not the CCCD is enabled in the analyte sensor system 308 may not affect data transmission by the analyte sensor system 308, because certain proprietary transmitters may be configured to transmit data only in response to a data request (and not when data is available).
[0152] To address the above technical deficiencies, certain embodiments described herein provide techniques for reducing one or more CCCD messages exchanged between the analyte sensor system 308 and the display device 310. For example, in certain embodiments, a custom profile may be created (or defined) for use by the display device 310. In some embodiments, the custom profile may be provided as part of an analyte sensor application (e.g., the analyte sensor application 330 of FIG. 3B ) and executed at an application layer on the display device 310. The custom profile may configure the display device 310 to refrain from (or prevent) enabling and disabling CCCD for each set of predetermined characteristics as part of the communication between the analyte sensor system 308 and the display device 310.
[0153] In some embodiments, the predetermined characteristics may include, for example, authentication information, synchronization information, analyte information, etc. By using a custom profile to prevent the display device 310 from enabling / disabling the CCCD by default, the number of messages sent by the display device 310 to the analyte sensor system 308 may be reduced, as shown in Figure 13. For example, compared to the connection flow 1200 depicted in Figure 12, in the connection flow 1300 depicted in Figure 13, the display device 310 can perform the operations at 1206, 1212, and / or 1218 without enabling / disabling the CCCD.
[0154] Note that in certain embodiments, eliminating CCCD messaging for the analyte sensor system 308 and display device 310 executing proprietary software instructions may not affect data flow. The proprietary software instructions may be provided (e.g., by the sensor manufacturer) in the form of an analyte sensor application (e.g., analyte sensor application 330 of FIG. 3B) for use by the display device 310. The proprietary software instructions may also be provided (e.g., by the sensor manufacturer) in the form of an application for execution on the analyte sensor system 308. The above-described proprietary software instructions can configure the display device 310 and the analyte sensor system 308 such that (i) the analyte sensor system 308 only transmits data in response to a request from the display device 310, (ii) the display device 310 only transmits a request when data is needed, (iii) transmitting a request from the display device 310 captures the same function as enabling the CCCD, and / or (iv) after the response is transmitted, the behavior of the analyte sensor system 308 is the same as if the display device 310 had disabled the CCCD (e.g., therefore, the display device 310 does not need to disable the CCCD in the analyte sensor system 308).
[0155] In certain embodiments, when the display device 310 runs a first operating system (e.g., an Android operating system), the custom profile can eliminate the need for an analyte sensor application (e.g., a mobile application) executing on the display device 310 to enable / disable the CCCD each time the analyte sensor application accesses the characteristic. In certain embodiments, when the display device 310 runs a second operating system (e.g., an iOS operating system), the custom profile can eliminate the need for the analyte sensor application to disable the CCCD each time the analyte sensor application accesses the characteristic. However, due to limitations from the interface of the second operating system, the custom profile may not be able to prevent the analyte sensor application from enabling the CCCD.
[0156] In certain embodiments, a custom profile may be created and defined on the analyte sensor system 308 (e.g., at the application layer). For example, prior to initialization of a processor (e.g., processor 380 of FIG. 3B ) of the analyte sensor system 308, including the communication protocol stack 1150, the custom profile may configure the processor to: (i) obtain properties for each set of predetermined properties (e.g., authentication information, synchronization information, analyte information, etc.), obtain attribute handles to be used by the processor for each property in the set of predetermined properties, and set or define a CCCD configuration for the processor. As part of the CCCD configuration, the processor may be configured to have each property have CCCD enabled by default (across all connections with display devices, whether bonded or unbonded).
[0157] In certain embodiments, the custom profile can configure / load the processor of the analyte sensor system 308 with properties (that have CCCD enabled by default) because the custom profile does not have control over the communication protocol stack 1150 once the processor is initialized. Furthermore, with current communication protocols, the analyte sensor system 308 may not be able to send any data to the display device unless CCCD is enabled for that data. Therefore, the custom profile is configured to enable CCCD for all properties of all display devices 310, whether bonded or unbonded.
[0158] In certain embodiments, regardless of whether the display device 310 is bonded or unbonded, a custom profile on the analyte sensor system 308 may be configured to enable CCCD by default on every new connection with the display device 310 (as opposed to, e.g., preserving the CCCD value across connections for bonded devices).
[0159] In certain embodiments, the analyte sensor system 308 may still be able to interact with certain display devices (referred to herein as "third-party display devices") if not configured by default to prevent enabling / disabling CCCD. For example, if a third-party display device (configured to enable / disable CCCD) sends a CCCD enable indication to an analyte sensor system 308 that already has CCCD enabled (based on a customer profile), the CCCD configuration of the analyte sensor system 308 may not change (e.g., CCCD is already enabled). In another example, if a third-party display device (configured to enable / disable CCCD) sends a CCCD disable indication to an analyte sensor system 308 that already has CCCD enabled, the CCCD configuration may change (e.g., that CCCD may be disabled). In this example, for subsequent connections, the CCCD configuration is re-enabled regardless of any previous override of the CCCD configuration by the third-party display device (e.g., as opposed to preserving the CCCD configuration across connections for bonded devices and automatically disabling CCCD for reconnections with unbonded devices).
[0160] 14 is a flow diagram illustrating example operations 1400 for wireless communication, for example, to reduce the number of CCCD messages exchanged between the analyte sensor system 308 and the display device 310, according to certain embodiments disclosed herein. The operations 1400 may be performed by an analyte sensor system (e.g., the analyte sensor system 308).
[0161] In operation 1402, the analyte sensor system 308 determines one or more properties of a set of predetermined characteristics associated with the analyte sensor system 308. The set of predetermined characteristics may include authentication information, synchronization information, analyte information, etc.
[0162] In operation 1404, the analyte sensor system 308 configures, via the analyte sensor system's custom profile, each of the one or more properties to have CCCD enabled as a default setting upon each connection between the analyte sensor system 308 and the display device 310.
[0163] In operation 1406, prior to initialization of the processor of the analyte sensor system 308, the analyte sensor system 308 configures the processor with the one or more configured properties.
[0164] In certain embodiments, operations 1400 may also include analyte sensor system 308 establishing a connection with display device 310 and, after establishing the connection, receiving a CCCD enable indication for at least one of the one or more properties from display device 310. Thereafter, in response to the CCCD enable indication, analyte sensor system 308 may refrain from modifying the respective CCCD for at least one of the one or more properties.
[0165] In certain embodiments, operations 1400 may also include analyte sensor system 308 establishing a connection with a display device and, after establishing the connection, receiving a CCCD disable indication for at least one of the one or more properties from display device 310. Thereafter, in response to the CCCD disable indication, analyte sensor system 308 may modify at least one of the one or more properties to cause the respective CCCD to be disabled.
[0166] 15 is a flow diagram illustrating example operations 1500 for wireless communication, for example, to reduce the number of CCCD messages exchanged between the analyte sensor system 308 and the display device 310, according to certain embodiments disclosed herein. The operations 1500 may be performed by a display device (e.g., the display device 310).
[0167] In operation 1502, the display device 310 configures the application, via the custom profile of the display device 310, to refrain from at least one of enabling or disabling the respective CCCD for each set of predetermined characteristics associated with the analyte sensor system 308.
[0168] At operation 1504, the display device 310 establishes a connection with the analyte sensor system 308. At 1506, after the connection is established, the display device 310 performs at least one procedure with the analyte sensor system without enabling and disabling the CCCD for a first characteristic of the set of predetermined characteristics associated with the at least one procedure. In certain embodiments, the at least one procedure includes an authentication procedure, a synchronization procedure, and / or a readout of an analyte value.
[0169] Example clauses Example implementations are described in the following numbered clauses. Clause 1: A method for wireless communication performed by an analyte sensor system, the method including: sending one or more first invite messages having a first payload size when a list of previously authenticated devices has at least one blank entry; sending one or more second invite messages having a second payload size smaller than the first payload size when the list includes at least one device; and establishing a communication session between the analyte sensor system and the at least one device based on at least one of the first invite message or the second invite message.
[0170] Clause 2: The method of clause 1, further comprising refraining from sending the one or more first invitation messages when the list does not include at least one unpopulated entry.
[0171] Clause 3: The method of clause 1 or 2, wherein one or more second invitation messages are further sent when the list does not include at least one unpopulated entry.
[0172] Clause 4: The method of any one of clauses 1 to 3, wherein the one or more second invitation messages are sent after the one or more first invitation messages.
[0173] Clause 5: A method according to any one of clauses 1 to 4, wherein the one or more first invitation messages include a Universal Address Profile (GAP) address of the analyte sensor system, and the one or more first invitation messages have one or more invitation data structures.
[0174] Clause 6: The method of any one of clauses 1 to 5, wherein the one or more second invitation messages include only a Universal Address Profile (GAP) address of the analyte sensor system.
[0175] Clause 7: A method for wireless communication performed by an analyte sensor system, the method including: establishing a connection between a transmitter of the analyte sensor system and a display device; receiving at least a first packet from the display device after establishing the connection; determining a transmit power for a second packet based at least in part on a current transmit power level of the transmitter and a signal strength of the first packet; and transmitting the second packet to the display device at the transmit power determined for the second packet.
[0176] Clause 8: The method of clause 7, further comprising: receiving at least a third packet from the display device after transmitting the second packet; determining a transmit power for a fourth packet based at least in part on the current transmit power level of the transmitter and the signal strength of the third packet; and transmitting the fourth packet to the display device at the transmit power determined for the fourth packet.
[0177] Clause 9: The method of clause 7 or 8, wherein determining the transmission power includes increasing the transmission power from a first transmission power level to a second transmission power level when the signal strength of the first packet is less than a threshold and the current transmission power level is equal to the first transmission power level.
[0178] Clause 10: The method of clause 7 or 8, wherein determining the transmit power includes maintaining the transmit power at a current transmit power level if the signal strength is greater than or equal to a threshold.
[0179] Clause 11: The method described in clause 7 or 8, wherein determining the transmission power includes reducing the transmission power from a first transmission power level to a second transmission power level when the signal strength of the first packet is greater than a threshold and the current transmission power level is equal to the first transmission power level.
[0180] Clause 12: The method of clause 7 or 8, wherein determining the transmit power includes maintaining the transmit power at a current transmit power level if the signal strength of the first packet is less than or equal to a threshold.
[0181] Clause 13: The method of any one of clauses 7 to 12, wherein establishing the connection includes receiving a connection request from the display device in response to a general invitation from the transmitter.
[0182] Clause 14: The method of any one of clauses 7 to 12, wherein establishing the connection includes receiving a reconnection request from the display device in response to a target invitation from the transmitter.
[0183] Clause 15: A method for wireless communication performed by an analyte sensor system, the method including: determining one or more properties of a set of predetermined characteristics associated with the analyte sensor system; configuring each of the one or more properties via a custom profile of the analyte sensor system to have a Client Property Configuration Descriptor (CCCD) that is enabled as a default setting upon each connection between the analyte sensor system and a display device; and configuring the processor with the configured one or more properties prior to initialization of the processor of the analyte sensor system.
[0184] Clause 16: The method of clause 15, further comprising: establishing a connection with a display device; after establishing the connection, receiving a CCCD enable indication from the display device for at least one of the one or more properties; and in response to the CCCD enable indication, refraining from modifying the respective CCCD for at least one of the one or more properties.
[0185] Clause 17: A method as described in clause 15 or 16, further comprising: establishing a connection with a display device; after establishing the connection, receiving a CCCD disable indication from the display device for at least one of the one or more properties; and in response to the CCCD disable indication, modifying at least one of the one or more properties to disable the respective CCCD.
[0186] Clause 18: A method for wireless communication performed by a display device, the method including: configuring an application via a custom profile of the display device to refrain from at least one of enabling or disabling a respective Client Property Configuration Descriptor (CCCD) for each of a set of predetermined properties associated with an analyte sensor system; establishing a connection with the analyte sensor system; and, after the connection is established, performing at least one procedure using the analyte sensor system without enabling and disabling a CCCD for a first property of the set of predetermined properties associated with the at least one procedure.
[0187] Clause 19: The method of clause 18, wherein at least one procedure includes an authentication procedure.
[0188] Clause 20: The method of clause 18, wherein at least one procedure includes a synchronization procedure.
[0189] Clause 21: The method of clause 18, wherein at least one step includes reading an analyte value.
[0190] Clause 22: An analyte sensor system comprising: a memory including executable instructions; and one or more processors configured to execute the executable instructions to cause the analyte sensor system to: send one or more first invite messages having a first payload size when a list of previously authenticated devices has at least one blank entry; send one or more second invite messages having a second payload size smaller than the first payload size when the list includes at least one device; and establish a communication session between the analyte sensor system and the at least one device based on at least one of the first invite message or the second invite message.
[0191] Clause 23: The analyte sensor system of clause 22, wherein the one or more processors are further configured to cause the analyte sensor system to refrain from sending one or more first invitation messages if the list does not include at least one unpopulated entry.
[0192] Clause 24: An analyte sensor system as described in clause 22 or 23, wherein the one or more processors are further configured to cause the analyte sensor system to send one or more second invitation messages if the list does not include at least one unpopulated entry.
[0193] Clause 25: An analyte sensor system described in any one of clauses 22 to 24, wherein the one or more processors are further configured to cause the analyte sensor system to send one or more second invitation messages after the one or more first invitation messages.
[0194] Clause 26: An analyte sensor system described in any one of clauses 22 to 25, wherein the one or more first invitation messages include a Universal Address Profile (GAP) address of the analyte sensor system, and the one or more first invitation messages have one or more invitation data structures.
[0195] Clause 27: The analyte sensor system of any one of clauses 22 to 26, wherein the one or more second invitation messages include only a Universal Address Profile (GAP) address of the analyte sensor system.
[0196] Clause 28: An analyte sensor system comprising: a memory including executable instructions; and one or more processors configured to execute the executable instructions to cause the analyte sensor system to establish a connection between a transmitter of the analyte sensor system and a display device; receive at least a first packet from the display device after establishing the connection; determine a transmit power for a second packet based at least in part on a current transmit power level of the transmitter and a signal strength of the first packet; and transmit the second packet to the display device at the transmit power determined for the second packet.
[0197] Clause 29: The analyte sensor system of Clause 28, wherein the one or more processors are further configured to cause the analyte sensor system to receive at least a third packet from the display device after transmitting the second packet, determine a transmit power for a fourth packet based at least in part on the current transmit power level of the transmitter and the signal strength of the third packet, and transmit the fourth packet to the display device at the transmit power determined for the fourth packet.
[0198] Clause 30: An analyte sensor system as described in Clause 28 or 29, wherein to determine the transmit power, the one or more processors are configured to cause the analyte sensor system to increase the transmit power from the first transmit power level to the second transmit power level when the signal strength of the first packet is below a threshold and the current transmit power level is equal to the first transmit power level.
[0199] Clause 31: An analyte sensor system as described in clause 28 or 29, wherein to determine the transmit power, the one or more processors are configured to cause the analyte sensor system to maintain the transmit power at a current transmit power level if the signal strength is above a threshold.
[0200] Clause 32: An analyte sensor system as described in Clause 28 or 29, wherein to determine the transmit power, the one or more processors are configured to cause the analyte sensor system to reduce the transmit power from the first transmit power level to the second transmit power level when the signal strength of the first packet is greater than a threshold and the current transmit power level is equal to the first transmit power level.
[0201] Clause 33: An analyte sensor system as described in Clause 28 or 29, wherein to determine the transmit power, the one or more processors are configured to cause the analyte sensor system to maintain the transmit power at a current transmit power level if the signal strength of the first packet is below a threshold.
[0202] Clause 34: An analyte sensor system as described in any one of clauses 28 to 33, wherein to establish a connection, the one or more processors are configured to cause the analyte sensor system to receive a connection request from the display device in response to a general invitation from the transmitter.
[0203] Clause 35: An analyte sensor system as described in any one of clauses 28 to 33, wherein to establish a connection, the one or more processors are configured to cause the analyte sensor system to receive a reconnection request from the display device in response to a target invitation from the transmitter.
[0204] Clause 36: An analyte sensor system comprising: a memory including executable instructions; and one or more processors configured to execute the executable instructions to cause the analyte sensor system to determine one or more properties of a predetermined set of characteristics associated with the analyte sensor system; configure each of the one or more properties via a custom profile of the analyte sensor system to have a Client Property Configuration Descriptor (CCCD) that is enabled as a default setting upon each connection between the analyte sensor system and a display device; and configure the processor with the configured one or more properties prior to initialization of the processor of the analyte sensor system.
[0205] Clause 37: The analyte sensor system of Clause 36, wherein the one or more processors are further configured to cause the analyte sensor system to establish a connection with a display device, and after establishing the connection, receive a CCCD enablement indication for at least one of the one or more properties from the display device, and in response to the CCCD enablement indication, refrain from modifying the respective CCCD for at least one of the one or more properties.
[0206] Clause 38: The analyte sensor system of Clause 37, wherein the one or more processors are further configured to cause the analyte sensor system to establish a connection with a display device, and after establishing the connection, receive a CCCD invalidation indication from the display device for at least one of the one or more properties, and in response to the CCCD invalidation indication, modify at least one of the one or more properties to invalidate the respective CCCD.
[0207] Clause 39: A display device comprising: a memory including executable instructions; and one or more processors configured to execute the executable instructions and cause an analyte sensor system to configure an application to refrain from at least one of enabling or disabling a respective Client Property Configuration Descriptor (CCCD) for each of a set of predetermined properties associated with the analyte sensor system via a custom profile on the display device; establish a connection with the analyte sensor system; and, after the connection is established, perform at least one procedure using the analyte sensor system without enabling and disabling a CCCD for a first property in the set of predetermined properties associated with the at least one procedure.
[0208] Clause 40: The display device of clause 39, wherein the at least one procedure includes an authentication procedure.
[0209] Clause 41: A display device as described in clause 39, wherein at least one procedure includes a synchronization procedure.
[0210] Clause 42: A display device as described in clause 39, wherein at least one step includes reading out an analyte value.
[0211] Clause 43: An analyte monitoring system comprising: a display device; and an analyte sensor system, wherein the analyte sensor system is configured to: send one or more first invite messages having a first payload size when a list of previously authenticated devices has at least one blank entry; send one or more second invite messages having a second payload size smaller than the first payload size when the list includes at least one device; and establish a communication session between the analyte sensor system and the display device based on at least one of the first invite messages or the second invite messages; and wherein the display device is configured to receive at least one of the one or more first invite messages having the first payload size or the one or more second invite messages having the second payload size; and establish a communication session between the analyte sensor system and the display device based on at least one of the first invite messages or the second invite messages.
[0212] Clause 44: An analyte monitoring system comprising: a display device; and an analyte sensor system, wherein the analyte sensor system is configured to: establish a connection between a transmitter of the analyte sensor system and the display device; receive at least a first packet from the display device after establishing the connection; determine a transmit power for a second packet based at least in part on a current transmit power level of the transmitter and a signal strength of the first packet; and transmit the second packet to the display device at the transmit power determined for the second packet; and wherein the display device is configured to: establish a connection between the transmitter of the analyte sensor system and the display device; transmit at least a first packet to the analyte sensor system after establishing the connection; and receive the second packet from the analyte sensor system at the transmit power determined based on the signal strength of the first packet.
[0213] Clause 45: An analyte monitoring system comprising: a display device; and an analyte sensor system, wherein the analyte sensor system is configured to: determine one or more properties of a set of predetermined characteristics associated with the analyte sensor system; configure each of the one or more properties via a custom profile of the analyte sensor system to have a Client Characteristic Configuration Descriptor (CCCD) that is enabled as a default setting upon each connection between the analyte sensor system and the display device; and configure the processor with the configured one or more properties prior to initialization of the processor of the analyte sensor system; and wherein the display device is configured to: configure an application via the custom profile of the display device to refrain from at least one of enabling or disabling a respective CCCD for each of the set of predetermined characteristics associated with the analyte sensor system; establish a connection with the analyte sensor system; and after the connection is established, perform at least one procedure using the analyte sensor system without enabling and disabling the CCCD for a first characteristic of the set of predetermined characteristics associated with the at least one procedure.
[0214] Additional Considerations Each of the non-limiting examples presented above may stand on its own or may be combined in various permutations or combinations with one or more of the other examples. The above detailed description includes references to the accompanying drawings, which form a part of the detailed description. The drawings show, by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are also referred to herein as "examples." Such examples may include elements in addition to those shown or described. However, the inventors also contemplate examples in which only the elements shown or described are provided. Furthermore, the inventors also contemplate examples using any combination or permutation of those elements (or one or more aspects thereof) shown or described with respect to a particular example (or one or more aspects thereof), or with respect to any other example (or one or more aspects thereof) shown or described herein.
[0215] In the event of a conflict of usage between this document and any document incorporated by reference, the usage in this document shall take precedence.
[0216] The terms "a" or "an" are used herein, as is common in patent documents, to include one or more, regardless of other instances or uses of "at least one" or "one or more." The term "or" is used herein to refer to a non-exclusive inclusion, unless otherwise indicated, such that "A or B" includes "A but not B," "B but not A," or "A and B." The terms "including" and "in which" are used herein as the plain English equivalents of the respective terms, "comprising" and "wherein." Also, in the claims that follow, the terms "including" and "comprising" are open-ended, i.e., systems, devices, articles, compositions, formulations, or processes that include elements in addition to those recited after such terms in a claim are still deemed to be within the scope of that claim. Moreover, in the following claims, the terms "first," "second," and "third," etc., are used merely as labels and are not intended to impose numerical requirements on their objects.
[0217] Geometric terms such as "parallel," "perpendicular," "circular," and "square" are not intended to require absolute mathematical precision unless the context indicates otherwise. Instead, such geometric terms allow for variations due to manufacturing or equivalent functions. For example, if an element is described as "circular" or "approximately circular," components that are not exactly round (e.g., slightly elliptical or multi-sided polygonal) are still encompassed by this description.
[0218] The example methods described herein may be at least partially machine- or computer-implemented. Some examples may include computer-readable or machine-readable media encoded with instructions operable to configure an electronic device to perform a method such as described in the examples above. Implementations of such methods may include code, such as microcode, assembly language code, high-level language code, etc. Such code may include computer-readable instructions for performing various methods. This code may form part of a computer program product. Further, in one example, the code may be tangibly stored on one or more volatile, non-transitory, or non-volatile tangible computer-readable media, such as during execution or at other times. Examples of these tangible computer-readable media may include, but are not limited to, hard disks, removable magnetic disks, removable optical disks (e.g., compact disks and digital video disks), magnetic cassettes, memory cards or sticks, random access memory (RAM), read-only memory (ROM), etc.
[0219] The above description is intended to be illustrative, not limiting. For example, the above examples (or one or more aspects thereof) may be used in combination with each other. Other embodiments may be utilized by those of ordinary skill in the art upon reviewing the above description. The Abstract is provided to comply with 37 CFR §1.72(b) to enable the reader to quickly grasp the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or spirit of the claims. Also, in the above Detailed Description, various features may be grouped together to streamline the disclosure. This should not be construed as intending that any unclaimed disclosed feature is essential to any claim. Rather, inventive subject matter may lie in less than all features of a particular disclosed embodiment. Thus, it is contemplated that the following claims are incorporated into the Detailed Description as examples or embodiments, with each claim standing on its own as a separate embodiment, and that such embodiments can be combined with each other in various combinations or permutations. The scope of the invention should be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. [Explanation of symbols]
[0220] 104 analyte sensor(s) 106 Sensor Electronics Module 108 Non-analyte sensor(s) 110 Medical Devices 305 Communication media 308 Analyte Sensor System 310 Display Devices 315 connection interface 320 Transceiver 325 Storage device 330 Analyte Sensor App 335 Processors / Microcontrollers 340 GUI 345 Display 350 Real Time Clock 355 connection interface 360 Transceiver 365 storage device 370 Sensor measurement circuit 375 Sensors 380 Processors / Microcontrollers 385 Real Time Clock
Claims
1. 1. A method for wireless communication performed by an analyte sensor system, the method comprising: sending one or more first Invite messages having a first payload size when the list of previously authenticated devices has at least one unpopulated entry; when the list includes at least one device, sending one or more second invite messages having a second payload size smaller than the first payload size; establishing a communication session between the analyte sensor system and at least one device based on at least one of the first invitation message or the second invitation message.
2. The method of claim 1 , further comprising refraining from sending the one or more first invitation messages when the list does not include at least one unpopulated entry.
3. The method of claim 1 , wherein the one or more second invitation messages are further sent when the list does not include at least one unpopulated entry.
4. The method of claim 1 , wherein the one or more second invite messages are sent after the one or more first invite messages.
5. the one or more first invitation messages include a Universal Address Profile (GAP) address of the analyte sensor system; The method of claim 1 , wherein the one or more first invite messages comprise one or more invite data structures.
6. The method of claim 1 , wherein the one or more second invite messages include only a Universal Address Profile (GAP) address of the analyte sensor system.
7. 1. A method for wireless communication performed by an analyte sensor system, the method comprising: establishing a connection between a transmitter of the analyte sensor system and a display device; receiving at least a first packet from the display device after establishing the connection; determining a transmit power for a second packet based at least in part on a current transmit power level of the transmitter and a signal strength of the first packet; transmitting the second packet to the display device at the transmit power determined for the second packet.
8. receiving at least a third packet from the display device after transmitting the second packet; determining a transmit power for a fourth packet based at least in part on the current transmit power level of the transmitter and a signal strength of the third packet; The method of claim 7 , further comprising: transmitting the fourth packet to the display device at the transmit power determined for the fourth packet.
9. 8. The method of claim 7, wherein determining the transmit power includes increasing the transmit power from the first transmit power level to a second transmit power level when the signal strength of the first packet is less than a threshold and the current transmit power level is equal to a first transmit power level.
10. The method of claim 7 , wherein determining the transmit power comprises maintaining the transmit power at the current transmit power level if the signal strength is greater than or equal to a threshold.
11. 8. The method of claim 7, wherein determining the transmit power includes reducing the transmit power from the first transmit power level to a second transmit power level when the signal strength of the first packet is greater than a threshold and the current transmit power level is equal to a first transmit power level.
12. The method of claim 7 , wherein determining the transmit power includes maintaining the transmit power at the current transmit power level if the signal strength of the first packet is less than or equal to a threshold.
13. The method of claim 7 , wherein establishing the connection includes receiving a connection request from the display device in response to a general invitation from the transmitter.
14. The method of claim 7 , wherein establishing the connection includes receiving a reconnection request from the display device in response to a target invitation from the transmitter.
15. 1. A method for wireless communication performed by an analyte sensor system, the method comprising: determining one or more properties of a set of predetermined characteristics associated with the analyte sensor system; configuring each of the one or more properties via a custom profile of the analyte sensor system to have a Client Characteristic Configuration Descriptor (CCCD) that is enabled as a default setting upon each connection between the analyte sensor system and a display device; and configuring a processor of the analyte sensor system with the configured one or more properties prior to initialization of the processor.
16. establishing a connection with the display device; receiving, after establishing the connection, a CCCD enable indication from the display device for at least one of the one or more properties; 16. The method of claim 15, further comprising: in response to the CCCD enable indication, refraining from modifying the respective CCCD for the at least one of the one or more properties.
17. establishing a connection with the display device; receiving, after establishing the connection, a CCCD disable indication from the display device for at least one of the one or more properties; 16. The method of claim 15, further comprising: in response to the CCCD disable indication, modifying the at least one of the one or more properties to cause the respective CCCD to be disabled.
18. 1. A method for wireless communication performed by a display device, the method comprising: configuring an application via a custom profile of the display device to refrain from at least one of enabling or disabling a respective Client Characteristic Configuration Descriptor (CCCD) for each of a set of predetermined characteristics associated with an analyte sensor system; establishing a connection with the analyte sensor system; After the connection is established, performing the at least one procedure using the analyte sensor system without enabling and disabling the CCCD for a first characteristic of the set of predetermined characteristics associated with the at least one procedure.
19. The method of claim 18 , wherein the at least one procedure includes an authentication procedure.
20. 20. The method of claim 18, wherein the at least one procedure includes a synchronization procedure.
21. 20. The method of claim 18, wherein the at least one procedure includes reading an analyte value.
22. 1. An analyte sensor system comprising: a memory containing executable instructions; Executing the executable instructions to provide the analyte sensor system sending one or more first Invite messages having a first payload size when the list of previously authenticated devices has at least one unpopulated entry; when the list includes at least one device, sending one or more second invite messages having a second payload size smaller than the first payload size; and establishing a communication session between the analyte sensor system and at least one device based on at least one of the first invitation message or the second invitation message.
23. 23. The analyte sensor system of claim 22, wherein the one or more processors are further configured to cause the analyte sensor system to refrain from sending the one or more first invitation messages if the list does not include at least one unpopulated entry.
24. 23. The analyte sensor system of claim 22, wherein the one or more processors are further configured to cause the analyte sensor system to send the one or more second invitation messages if the list does not include at least one unpopulated entry.
25. 23. The analyte sensor system of claim 22, wherein the one or more processors are further configured to cause the analyte sensor system to send the one or more second invite messages after the one or more first invite messages.
26. the one or more first invitation messages include a Universal Address Profile (GAP) address of the analyte sensor system; 23. The analyte sensor system of claim 22, wherein the one or more first invitation messages comprise one or more invitation data structures.
27. 23. The analyte sensor system of claim 22, wherein the one or more second invitation messages include only a Universal Address Profile (GAP) address of the analyte sensor system.
28. 1. An analyte sensor system comprising: a memory containing executable instructions; Executing the executable instructions to provide the analyte sensor system establishing a connection between a transmitter of the analyte sensor system and a display device; receiving at least a first packet from the display device after establishing the connection; determining a transmit power for a second packet based at least in part on a current transmit power level of the transmitter and a signal strength of the first packet; and transmitting the second packet to the display device at the transmit power determined for the second packet.
29. The one or more processors may include: receiving at least a third packet from the display device after transmitting the second packet; determining a transmit power for a fourth packet based at least in part on the current transmit power level of the transmitter and a signal strength of the third packet; 30. The analyte sensor system of claim 28, further configured to: transmit the fourth packet to the display device at the transmit power determined for the fourth packet.
30. 29. The analyte sensor system of claim 28, wherein to determine the transmit power, the one or more processors are configured to cause the analyte sensor system to increase the transmit power from the first transmit power level to a second transmit power level when the signal strength of the first packet is less than a threshold and the current transmit power level is equal to a first transmit power level.
31. 30. The analyte sensor system of claim 28, wherein to determine the transmit power, the one or more processors are configured to cause the analyte sensor system to maintain the transmit power at the current transmit power level if the signal strength is greater than or equal to a threshold.
32. 29. The analyte sensor system of claim 28, wherein to determine the transmit power, the one or more processors are configured to cause the analyte sensor system to reduce the transmit power from the first transmit power level to a second transmit power level when the signal strength of the first packet is greater than a threshold and the current transmit power level is equal to a first transmit power level.
33. 30. The analyte sensor system of claim 28, wherein to determine the transmit power, the one or more processors are configured to cause the analyte sensor system to maintain the transmit power at the current transmit power level if the signal strength of the first packet is less than or equal to a threshold.
34. 30. The analyte sensor system of claim 28, wherein to establish the connection, the one or more processors are configured to cause the analyte sensor system to receive a connection request from the display device in response to a general invitation from the transmitter.
35. 30. The analyte sensor system of claim 28, wherein to establish the connection, the one or more processors are configured to cause the analyte sensor system to receive a reconnection request from the display device in response to a target invitation from the transmitter.
36. 1. An analyte sensor system comprising: a memory containing executable instructions; Executing the executable instructions to provide the analyte sensor system determining one or more properties of a set of predetermined characteristics associated with the analyte sensor system; configuring each of the one or more properties via a custom profile of the analyte sensor system to have a Client Characteristic Configuration Descriptor (CCCD) that is enabled as a default setting upon each connection between the analyte sensor system and a display device; and configuring the processor with the configured one or more properties prior to initialization of the processor of the analyte sensor system.
37. The one or more processors may include: establishing a connection with the display device; receiving, after establishing the connection, a CCCD enable indication from the display device for at least one of the one or more properties; 37. The analyte sensor system of claim 36, further configured to: refrain from modifying the respective CCCD for the at least one of the one or more properties in response to the CCCD validation indication.
38. The one or more processors may include: establishing a connection with the display device; receiving, after establishing the connection, a CCCD disable indication from the display device for at least one of the one or more properties; 38. The analyte sensor system of claim 37, further configured to: in response to the CCCD disabled indication, modify the at least one of the one or more properties to disable the respective CCCD.
39. A display device, a memory containing executable instructions; Executing the executable instructions to provide the analyte sensor system configuring an application via a custom profile of the display device to refrain from at least one of enabling or disabling a respective Client Characteristic Configuration Descriptor (CCCD) for each of a set of predetermined characteristics associated with an analyte sensor system; establishing a connection with the analyte sensor system; and one or more processors configured to cause the display device to: after the connection is established, perform the at least one procedure using the analyte sensor system without enabling and disabling the CCCD for a first characteristic of the set of predetermined characteristics associated with the at least one procedure.
40. 40. The display device of claim 39, wherein the at least one procedure includes an authentication procedure.
41. 40. The display device of claim 39, wherein the at least one procedure includes a synchronization procedure.
42. 40. The display device of claim 39, wherein the at least one procedure includes reading an analyte value.
43. 1. An analyte monitoring system comprising: A display device; an analyte sensor system; The analyte sensor system comprises: sending one or more first Invite messages having a first payload size when the list of previously authenticated devices has at least one unpopulated entry; when the list includes at least one device, sending one or more second invite messages having a second payload size smaller than the first payload size; establishing a communication session between the analyte sensor system and a display device based on at least one of the first invitation message or the second invitation message; The display device is receiving at least one of the one or more first invite messages having the first payload size or the one or more second invite messages having the second payload size; establishing the communication session between the analyte sensor system and the display device based on at least one of the first invitation message or the second invitation message.
44. 1. An analyte monitoring system comprising: A display device; an analyte sensor system; The analyte sensor system comprises: establishing a connection between a transmitter of the analyte sensor system and the display device; receiving at least a first packet from the display device after establishing the connection; determining a transmit power for a second packet based at least in part on a current transmit power level of the transmitter and a signal strength of the first packet; transmitting the second packet to the display device at the transmit power determined for the second packet; The display device is establishing the connection between the transmitter of the analyte sensor system and the display device; transmitting at least a first packet to the analyte sensor system after establishing the connection; receiving the second packet from the analyte sensor system at the transmit power determined based on the signal strength of the first packet.
45. 1. An analyte monitoring system comprising: A display device; an analyte sensor system; The analyte sensor system comprises: determining one or more properties of a set of predetermined characteristics associated with the analyte sensor system; configuring each of the one or more properties via a custom profile of the analyte sensor system to have a Client Characteristic Configuration Descriptor (CCCD) that is enabled as a default setting upon each connection between the analyte sensor system and a display device; and configuring the processor with the configured one or more properties prior to initialization of the processor of the analyte sensor system; The display device is configuring an application via the custom profile of the display device to refrain from at least one of enabling or disabling a respective CCCD for each of a set of predetermined characteristics associated with the analyte sensor system; establishing a connection with the analyte sensor system; After the connection is established, the analyte monitoring system is configured to perform the at least one procedure using the analyte sensor system without enabling and disabling the CCCD for a first characteristic of the set of predetermined characteristics associated with the at least one procedure.