2.2. B. WRAP Sensor Operation Theory
The fully passive wireless sensor does not require its own power source; rather it utilizes the incident power from the wireless carrier signal of the scanner [36
]. There are two approaches for this sensor design: magnetic induction suitable for near field, and RF backscattering suitable for far field [12
]. In magnetic induction, the sensor receives the wireless signal, and modulates the carrier wave that is sensed by the scanner as a small change of voltage across or current through its coil. In backscattering, a portion of the RF signal from the scanner reflects from the dipole antenna of the sensor, depending on radar aperture size [10
]. However, for body-worn sensors, inductive loading is a more appropriate solution due to non-ionizing radiation and proximity of the portable scanner to body-worn sensors [36
]. For the simple WRAP sensor system [37
], the effective impedance from the scanner side correlates to load resistance (RL
) of a RLC parallel circuit, and is given by:
represents impedance, X
represents reactance, M
is the mutual inductance, and Tx
is the primary (scanner) related whereas Rx
is secondary (sensor) related parameter. For inductive loading, the ωr
), the angular resonance frequency of the RLC parallel circuit, is given by [33
are the parallel resistance, inductance and capacitance, respectively, and RS
is the intrinsic resistance of the impure inductor. For WRAP sensors printed with IJP, the sensor intrinsic resistance is significantly higher (e.g., for Ag ink used in this report, the average resistance of secondary coil for the given design was 21 Ω). For such systems with intrinsic resistance of primary and secondary coils (RS1
, respectively), the overall efficiency (
) of the inductive link can be given by [52
is the reflected resistance from secondary to primary side, and can be expressed as:
is the coupling factor between two coils, and Q1
are the quality factors of primary, secondary without load, and secondary with load, respectively, and can be expressed as
. Here L1
are inductances of primary and secondary coils, respectively. For high sensitivity of the sensors, coil design should be optimized to maximize
The WRAP sensor design is such that the signal to be probed will cause change of RL
. For instance, RL
can be simply transducer resistance [37
], or the resistance across a transistor [38
] used to probe bioelectric or impedimetric signals. The carrier signal amplitude is modulated due to change of RL
, and the modulated signals at the scanner correlate to the changes of RL
. We have previously describes WRAP sensors based on this technique for physiological signal collection and bio-potential signal capture [37
While this technique is useful for signals where the information is encoded differentially (e.g., heart beat signal only needs to identify the times when peak occurs, the absolute value is irrelevant), some signals contain information in absolute magnitude (e.g., body temperature). Absolute magnitude data collection is more challenging for WRAP sensors as the absolute magnitude of impedance loading is influenced by many factors such as modulation index, coil separation, and permeability of the medium, that can change at the time of deployment. Previously we have described a duel coil approach to collect absolute magnitude values from WRAP sensors [53
]. However, the approach requires higher bandwidth due to use of a reference coil.
Here, we describe a new approach where the absolute magnitude value is encoded in time domain rather than magnitude. This is robust against artifactual variability, as those do not influence time domain change. Mathematically, this can be represented as
. To explain this, let us consider the schematic of a new WRAP temperature sensor (Type D) circuit shown in Figure 2
a that transforms the signal change (temperature) to time domain (time delay) for higher sensitivity. The WRAP temperature sensor consists of an inkjet printed inductive coil, Ls
, and a circuit consisting of discrete electronic components. The capacitor-diode pairs of C1
constitute a two-stage voltage doubler. The voltage is applied across a NTC (Negative Temperature Coefficient) temperature sensor and a capacitor, CB
, which forms an RC time delay circuit. This causes the base voltage of NPN transistor Qs
to be turned on after a certain delay. When turned on, Qs
loads the inductive coil, Ls
, with load impedance, Cs
, in combination with the emitter–collector (on) resistance of Qs
. This loading effect can be detected at the scanner coil as a signal transition, and the corresponding time delay can be calibrated with the temperature of NTC. The resistance (RNTC
) of the NTC at ambient temperature (T
) is given by:
is the resistance at ambient temperature T0
is the constant of thermistor given by,
Hence, time delay (δ) for RC to charge by 63.2% can be expressed as,
This nonlinear function will inversely relate temperature with the time delay, and can be decoded by simple linear regression analysis. However, due to the fact that the modulation index is a function of many factors (such as distance, displacement, and orientation between coils, permeability of the medium), the induced voltage at the sensor coil might vary and might change the transition time delay. The induced voltage also relates to the amount of voltage swing before and after transition. Thus, a more complex nonlinear classifier is needed for accurate measurement of temperature.
2.3. C. Inkjet Printed WRAP Sensors
The sensor layout, shown in Figure 2
b, was generated with Inkscape software (freeware) in svg file format. In most electric circuit designs, a single layer is not sufficient and one or more jump wires are needed. This is a constraint for planar fabrication processes such as inkjet printing techniques. Effort was taken during the layout design to minimize the number of jump wires. After layout design, the svg file was exported to png format with a resolution of 1693 dpi to match the printer resolution. The png image was then converted to 1-bit monochrome bmp file format using Paint (Microsoft Corp., Redmond, WA, USA). This file was then imported by the printing software (Dimatix DMP tool) and converted to ptf format that can be printed with the inkjet printer (Figure 2
c). The component population complexity and cost directly relates with the number of components, hence an effort was made to minimize the component requirement as well.
This WRAP temperature sensor (as shown in Figure 2
a) requires 7 discrete components of 2-pins, and 1 discrete component of 3-pins, and 1 jumping wire. The component selected for Qs is MMBTH10, D1 and D2 are CDBF0130L, NTC is NCP21XV103J03RA (10 kΩ), and the values of capacitors are C1
= 0.47 µF, CB
= 0.1 µF, and Cs
= 0.22 µF (Figure 2
d). The designed sensors shown are 13 cm long; however, the length is customizable (by extending the tail portion of NTC trace). The actual size for deployment can be individually tailored to the user's exact measurements and preference. The NTC sensor will be placed in the armpit, while the coil can wrap on top of the arm or chest—depending on the user’s choice.
The thicknesses of the IJP Ag traces are in the range of 1 µm to 2 µm, which can be manipulated by altering the drop size and drop spacing (Figure 3
a). Increased drop size will result in thicker trace and vice versa. Printing of a thinner trace layer might lead to discontinuity, as ink tends to accumulate due to surface tension, while printing a thicker layer leads to a higher tendency to self peel-off due to mismatch of stress of the trace with that of the substrate. Hence a tradeoff must be made for the particular ink and the engineering needs. The entire process of a functional circuit development using IJP is schematically depicted in Figure 3
b. The first step of the process is to print the silver traces on the paper substrate. After printing of the silver conductive trace using the printer, the ink is allowed to dry at room temperature for 5 min. Then, surface mount device (SMD) components are placed on the substrate at the required positions. An electrically conductive silver epoxy mixture is applied for connectivity between the printed trace and the SMD component pins. The silver epoxy is then cured with forced air for 24 h.
The printed WRAP sensors were developed by depositing conductive thin-film traces of silver nanoparticles on paper substrate (glossy photo–paper, 10.2 mil) on the glossy side utilizing a material deposition printer (Dimatix DMP-2831, FujiFilm Dimatix Inc., Santa Clara, CA, USA) using a ~40% loaded silver nanoparticle-based ink (Metalon JS-B40, Nanosilver Ink, Novacentrix, Austin, TX, USA). These printings were performed with 10 pL cartridges from Dimatix and all 16 nozzles were used for printing. The average sizes of the Ag nanoparticles were between 85 to 115 nm. The printing ink viscosities were between 3 to 10 cPa with 30 to 50% loading. The drop spacing of the printer was kept at 15 μm by setting the printer resolution to 1693 dpi. The trace widths for electrically conductive silver nanoparticle thin film were between 0.2 to 2.5 mm, as narrower traces had a higher tendency to result in discontinuity while wider traces led to self peel-off phenomenon. Relief cavities can be placed every 2.5 mm to reduce this self peel-off tendency.
The discrete surface mount devices (SMD) were electronically attached to these silver (Ag) traces on paper using low-temperature curable silver epoxy (8331S, MG Chemicals, Surrey, BC, Canada) with 1:1 of Part A and Part B. The components were cured for 24 h under forced air. Paper substrates cannot tolerate temperature curing process (~180 °C) or even low-temperature soldering (~137 °C).
2.4. C. Wearable Scanner
The scanner device was prototyped in-house using embedded system technology. The schematic and PCB design was developed with Cadence Allegro software (Cadence Design Systems Inc., San Jose, CA, USA). The PCB was fabricated via OshPark fabrication service (https://oshpark.com/
). The design contains an ultra low power microcontroller unit (MCU) from ST Microelectronics, a RF synthesizer, a transmit chain, a circulator T-junction, a loop antenna, a receive chain, a RF synthesizer, and an envelope detector. The hardware also has a power management unit, and a wireless (Bluetooth) communication unit compatible with smartphones.
The scanner board is controlled by a 32-bit low power flash microcontroller (STM32L476, ST Microelectronics) based on ARM Cortex-M processor (Figure 4
). The microcontroller can request a 50 MHz low power Direct Digital Synthesizer (DDS) device (AD9834) to generate the required carrier wave in RF range. The scanner will use 13.56 MHz (ISM band) wireless signals in small burst mode (<1 ms) to capture signals from WRAP sensors. AD9834 can synthesize tones up to 37 MHz. However, at this prototyping phase, due to component mismatch, the maximum resonance frequency is observed to significantly deviate from this designed frequency, which will be addressed in subsequent revisions of the scanner design. The amplitude modulation of the carrier signal by the WRAP sensor is detected via an envelope detector followed by a low-pass filter. There is also a microcontroller controlled variable gain amplifier (VGA) to dynamically scale the signal in analog domain to maximize fidelity of ADC.
The scanner coil picks up the top envelope of the amplitude modulated signal by using an envelope detector with a Schottky diode, processes the signal first in analog, and later in digital domains, and finally transmits it to the smartphone appication (app) via a Class 2 Bluetooth module (RN-42, Microchip Technologies Inc., Chandler, AZ, USA) at 115.2 kbps using Serial Port Profile (SPP). The scanner analog circuit schematic is shown in Figure 5
. The DDS output is first amplified with a two-stage Class-A amplifier and fed to a push-pull driver amplifier. To produce the required wiereless transmission energy, a 14 volt supply is used for this stage that will be generated with a voltage booster chip. The amplified RF carrier signal is fed to a Printed Spiral Coil (PSC) that we have previously optmized [52
The modulated signal is also captured from this PSC and fed to an evelope detector composed of a diode and a capacitor. A buffer stage (realized with LMV792 dual opamp) follows to ensure that the evelope detector is not loaded by subsequent stages. A 2nd order Butterworth low-pass filter (cut off frequency of 1.5 kHz) minimizes high frequency ripple. The signal is then amplified (using MCP6002) with a two stage variable gain amplifier (VGA) (realized with AD5262) whose gain can be controlled by the microcontroller at run-time. These Digital Pots will allow us to maximize the analog signal to fit the ADC range for superior resolution. MCP6002 has a large Gain Band-Width product (GBW) compared to the RF signal that we are measuring, hence the gain can be increased significantly without instability. Finally, the analog signal is sampled by the 12-bit sigma-delta ADC of the microcontroller. The ADC sampling rate is 30 ksps.
The ADC is triggered by a timer to capture samples of analog signals, and the sampled data is then processed by the firmware. The firmware sequence diagram is shown in Figure 6
. The sampled data from the ADC port first needs to be placed to the software buffer that maintains this constraint to safeguard against any data loss. The timing guarantee of ADC data fetch was guaranteed with a timer driven interrupt service routine (ISR) approach. We have implemented a mutex-buffer pair to resolve data overflow issues. Before inserting the data into the buffer, the ISR checks if the buffer is full. If the buffer is full, the active buffer is toggled and the full buffer data is sent to the app via Bluetooth (BT). The ISR also checks if the buffer is partially full when the requested time elapses, and in that case, transmits only that portion of the buffer. The data is transmitted to the BT through Universal Asynchronous Receiver Transmitter (UART) port of the microcontroller. The scanner board uses an LED indicator that turns on or blinks at various rates to indicate different stages, functioning (e.g., idle state, scanning state, and transmission state), or error of the firmware. The microcontroller is set to idle state if no activity is requested. The microcontroller wakes up when the app requests a data collection event. We have incorporated a custom double-handshaking protocol that allows the app to transmit the required information such as disease type (DT), sensor type (ST), and time duration of data collection (Timewindow). This information allows the scanner device to initialize. Then, it collects data from the WRAP sensor and transmits the data to the app.
2.5. D. SCC Health Smartphone App
An Android based smartphone app was developed to collect data from the scanner, and to locally process the physiological signals using the EoI classification algorithms. The computed EoI severity will be displayed on the phone, and the user will have an option to submit the anonymized EoIs to the SCC Health web-server. A sequence diagram of different elements in the app is depicted in Figure 7
. An SQLite database is used in the app that stores date and time of the test along with disease severity. It can help the physician to analyze the data for the particular disease condition at a later time, and will be directly transmitted to a medical doctor via SMS in case a very high severity is detected (see Figure 1
For severity (EoI) computation, algorithms must be incorporated in the smartphone app to perform real-time computations. As an example, the temperature EoI computation is described here. At first, a medical doctor was consulted to understand the clinical severity of various core-body temperate (fever or flu). Based on the information, a text based severity label has been assigned to different ranges, e.g., temperature from 100.4 °F to 101.9 °F is assigned to “Low grade fever”. A complete list is provided in Table 1
. To compute this core-body temperature, the auxiliary temperature data from the armpit sensor needs to be incremented by 2 °F. Furthermore, the medical doctor also provided notes for various temperature ranges (with 1 °F granularity) as shown in Table 1
that display the temperature and notes in the smartphone app based on user's core-body temperature. Using this information, EoI computation algorithms for flu were developed. For instance, a linear scale algorithm is shown in Table 1
where the lowest possible body temperature (97 °F) is assigned as EoI = 0, and maximum possible temperature (107 °F) is assigned as EoI = 1. Any temperature above 105 °F is considered extreme fever and 107 °F is considered a medical emergency. For these ranges, an alert will be displayed for the patient to seek immediate medical attention (e.g., ER) as well as a direct SMS can be transmitted to the medical doctor. As such, for flu EoI, the threshold for alert is set at 0.8 or above.
This algorithm will be stored in the server for download by the app when needed. As we develop this framework, in future, we will open the framework to researchers to submit their algorithms (which will go through a small validation phase with representative labeled data for classification to allow detection of unacceptable algorithms). Thus, users will be able to download various algorithms as needed. For instance, we have also developed a log-scale ranking for Flu severity computation. Both algorithms are available for the user to choose at the time of severity computation. The algorithms will be stored in the server in dex format, which can be accessed from the app when downloaded in the smartphone. The process will be a seamless experience for the user through a single click of a button.
For visualization purposes, we have assigned a dark green color to EoI = 0 (minimum), and dark red to EoI = 1 (maximum). The EoI color representations are graded based on the image shown in Table 1
. The exact same color pallet is used in the SCC Health web-server for consistency. The color of EoIs provides a visual of severity that users can easily relate to.
2.6. E. SCC Health Web-Server
For visualization of submitted anonymized EoIs, we have developed a SCC Health web-server where submitted data are automatically stored in a database and can be interactively queried by users. The interaction diagram of the SCC Health web-server is shown in Figure 8
. The EoIs computed from users' sensor data are formatted as JSON data when shared with SCC Health web-server. When the server receives this JSON data, it parses the required information to store in the server database. In addition to EoI value, this information also includes area code, disease type, timestamp, and patient ID number. The area code is assigned to each user based on their home address. This area code is arbitrarily generated at the time of grid assignment during the planning phase. All homes inside a grid will have the same unique area code. This adds a layer to privacy, as it is not possible from the visualization, or even the server data, to identify the user's exact home location.
After careful consideration of different visualization possibilities and scenarios, we have selected an arbitrary subject number with EoI severity change for temporal view and a grid method overlaying Google map for spatial view. Users will be able to visualize their own data from the smartphone app, but when they log in to the SCC Health web-server to visualize community data, they will not be able to distinguish their own data from others. In the temporal view, the users can select a date range and the type of disease, and can see the data in traditional graph format (where y-axis represents severity of the disease) or in flow format (where the color represents severity). In both temporal view options, the data depicts health status of the community members over time. The temporal flow plot shows the progression of disease (as per selection) on individuals (encoded with severity color code) over time (as per selection) that can identify worsening or improving overall community health.
Spatial data visualization via SCC webserver (e.g., Google Map overlay for spatial distribution of EoIs) is such that a subject’s exact location will not be identifiable to preserve privacy and confidentiality. The grid allows us to hide the exact location of the data submitter as a user can be located at any location within that grid (as opposed to circular representation, whose center can be determined). Furthermore, data within a grid is dynamically averaged using the following formula to determine overall severity (EoI) of the selected disease for the selected date range for that grid:
is the grid number, u
is the user number, N
is the maximum number of users in that i
-th grid who submitted EoIs for that particular disease within that timeframe, j
is the number of times user u
has submitted EoIs within that timeframe, and M
is the maximum number of EoI submission of that user. During visualization, RGB codes are pre-computed for 101 discrete levels according to the color scheme given in Table 1
, and EoIs are scaled and rounded from 0 to 100.