# Inter-Cal: Inter-Oscillator Calibration for Crystal-free Mote-on-Chip

Yuanming Luo, Tengfei Chang, David Burnett, Filip Maksimovic, Kristofer

S.J. Pister, Thomas Watteyne, Jie He

► To cite this version:

Yuanming Luo, Tengfei Chang, David Burnett, Filip Maksimovic, Kristofer S.J. Pister, et al., Inter-Cal: Inter-Oscillator Calibration for Crystal-free Mote-on-Chip. CrystalFreeIoT 2024 - Workshop on Crystal-Free/-Less Radio and System-based Research for IoT, IEEE, May 2024, Hong Kong, Hong Kong SAR China. hal-04828920

HAL Id: hal-04828920

https://inria.hal.science/hal-04828920v1

Submitted on 10 Dec 2024

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
Inter-Cal: Inter-Oscillator Calibration for
Crystal-free Mote-on-Chip

Yuanming Luo†, Tengfei Chang‡*, David Burnett§, Filip Maksimovic¶, Thomas Watteyne¶, Kristofer SJ Pister||, Jie He†

† University of Science and Technology, Beijing, China, {m202120824@xs., hejie@}ustb.edu.cn

‡ HKUST (GuangZhou), Guangzhou, China, tengfeichang@hkust-gz.edu.cn

§ Portland State University, Portland, United States, dburnett@pdx.edu

¶ Inria, Paris, France, {filip.maksimovic, thomas.watteyne} @inria.fr

|| UC Berkeley, Berkeley, United States, ksjp@berkeley.edu

**Abstract**—$SC_{\mu}M$ is a single-chip micro mote with dimensions of $2 \times 3 \text{ mm}^2$. It is equipped with a Cortex-M0 processor, an optical receiver, and a radio compliant with IEEE802.15.4/BLE standards. The device foregoes the use of a crystal by leveraging its internal oscillators to enable 2.4 GHz communication. Due to variations in manufacturing and changes in the environment, $SC_{\mu}M$'s on-chip oscillators require calibration. Inter-Cal, a calibration method for $SC_{\mu}M$, accurately determines the necessary frequencies for both transmission (TX) and reception (RX). Unlike other methods, Inter-Cal can calibrate all of $SC_{\mu}M$'s internal oscillators, including the 2 MHz RC and LC oscillators in both TX and RX modes, by simply listening for a valid packet. Inter-Cal is a scalable solution characterized by its minimal overhead and low latency. Testing with OpenMote has demonstrated that $SC_{\mu}M$ can consistently adjust its frequency over time using $SC_{\mu}M$. In an evaluation using 1000 packets, 94.3% achieved a frequency accuracy within ±80 ppm for the LC oscillator and 91% were within ±1000 ppm for the 2 MHz RC oscillator.

**Index Terms**—Crystal-Free, Calibration, $SC_{\mu}M$

I. INTRODUCTION

The Single Chip-micro Mote ($SC_{\mu}M$) [1], is a $2 \times 3 \text{ mm}^2$ state-of-art IoT platform, operating without a crystal. It features a Cortex-M0 micro-controller, a 2.4 GHz transceiver, and an optical receiver. $SC_{\mu}M$'s radio is designed to support both IEEE802.15.4 and BLE standards [2], ensuring compatibility with conventional radios adhering to these standards. The integration of on-chip oscillators eliminates the need for external crystal oscillators and often negates the need for a Printed Circuit Board (PCB). $SC_{\mu}M$'s small size is ideal for applications where space is a constraint, such as medical implants [3], wearable technology [4], and Wireless Body Sensor Networks (WBSN) [5]. By realizing the concept of "Smart Dust," $SC_{\mu}M$ paves the way for widespread deployment of tiny motes [6].

High drift is a common issue in crystal-free System on Chip (SoC) designs, including $SC_{\mu}M$. This is due to the electronic components used in crystal-free oscillators being affected by various environmental factors. $SC_{\mu}M$ requires its 2 MHz RC oscillator and the LC oscillator to be calibrated for both transmission and reception before it can communicate with other IEEE 802.15.4 radios. Many calibration techniques

<figure><img src="image_2.png" /><figcaption>Fig. 1. The $SC_{\mu}M$ Sulu developing board front view. The black square in the center is the $SC_{\mu}M$ chip covered with epoxy.</figcaption></figure>

have been developed to address this issue. Wheeler *et al.* [7] studied the stability of $SC_{\mu}M$'s LC oscillator. The authors proposed a receiver-based feedback approach to counteract the impact of temperature changes. Each time $SC_{\mu}M$ receives a frame, it monitors the "I" channel samples and counts the zero-crossings during a 100 µs window. Based on the measured number of zero-crossings, $SC_{\mu}M$ adjusts the frequency of the LC oscillator. Chang *et al.* [8] proposed a quick calibration technique to help $SC_{\mu}M$ find all 16 channel frequencies for both transmission and reception within a few minutes. It utilizes 16 OpenMotes compliant with IEEE 802.15.4 to form a synchronized slotted network and conducts a frequency setting sweep at each slot to identify the functional frequencies. Each slot is assigned to use one of the 16 channels for communication. By cycling through all 16 slots twice, $SC_{\mu}M$ identifies the correct frequency for each of the 16 channels for both transmitting (TX) and receiving (RX). The authors' subsequent work, Continuous Calibration (CoCa) [9], developed a new technique to cope with the impact of temperature changes. CoCa monitors the Intermediate Frequency (IF) and Frequency

<footnote>* Corresponding Author</footnote>
Offset (FO), provided by the TI CC2538 SoC, to detect the TX and RX frequency offsets. By adjusting the frequency settings accordingly, $SC_μM$ can maintain communication with OpenMote in environments experiencing temperature changes of up to 3°C/min.

In this article, we develop a technique called Internal Oscillator Calibration, "Inter-Cal", allowing $SC_μM$ to self-calibrate its frequency for TX and RX by only listening to incoming packet from an external IEEE802.15.4 radios. Inter-Cal is initiated when a packet received. By checking the IF, $SC_μM$ calibrates its LC oscillator frequency at RX mode, the same technique used in [9]. Then, the calibrated LC oscillator is used to calibrate the 2 MHz RC oscillator. Finally, the LC oscillator turns to TX mode and being calibrated with the 2 MHz RC oscillator. Comparing to CoCa and the calibration technique used in [10], Inter-Cal avoids the bidirectional communication for calibrating both TX and RX frequencies, enabling simultaneously calibration for multiple $SC_μMs$. Besides its simplicity, Inter-Cal reduces the calibrating duration as well.

The remainder of this paper is organized as follows. Section II details the architecture of $SC_μM$, including the oscillators and counters, and highlights the non-linearity of the frequency tuning. Section III describes the proposed Inter-Cal calibration approach, specifically how it sweeps over all settings to get the initial settings of LC oscillator, how it computes the RX frequency settings based on the IF reads when a beacon is received, and how it calibrates the 2 MHz RC and the TX frequency settings internally. Section IV demonstrates the correctness of the internal calibration approach by showing the frequency settings over time, and evaluates its performance by analyzing the distribution of IF counts and 2M counts over time. Finally, Section V concludes this paper.

## II. OSCILLATORS AND COUNTERS OF $SC_μM$

Figure 2 presents a schematic representation of the oscillators, counters, and associated radio components. During transmission, the 2 MHz RC oscillator clocks the chips/bits rate from the radio, while the 2.4 GHz LC oscillator determines the carrier frequency. Tuning of the 2 MHz RC oscillator and the 2.4 GHz LC oscillator is achieved through separate sets of three 5-bit registers, denoted as *coarse*, *mid*, and *fine*. The frequencies of these oscillators are measured by the 2M counter and the LC counter, respectively. In the reception phase, the signal captured by the antenna undergoes demodulation via the I and Q phase match filter, resulting in the formation of the “I” and “Q” channels. The “I” channel’s zero-crossing count within a 100 µs timeframe serves as a measure for the Intermediate Frequency (IF) value. This IF is generated from the mixer as the frequency differential between the incoming signal and the LC oscillator frequency. The system opts for the lower IF to track clock frequency variations, instead of using the 2.4 GHz high frequency. The IF counter enables $SC_μM$ to discern the frequency deviation of its 2.4 GHz oscillator and make necessary adjustments, as elaborated in Sec. III.

<figure><img src="image_3.png" /><figcaption>Fig. 2. Interconnection between the on-chip oscillators, counters, and the related radio components of $SC_μM$.</figcaption></figure>

<figure><img src="image_4.png" /><figcaption>Fig. 3. The LC frequency varies as a function of the frequency setting, ranging from (22.31.0) to (24.0.31). The LC frequency increases with the frequency setting. When the fine or mid codes overflow, the frequency drops, resulting in a nonlinear saw-tooth shape.</figcaption></figure>

The control mechanisms for the frequencies of the 2 MHz RC oscillator and the 2.4 GHz LC oscillator in $SC_μM$ are functionally identical. Both are managed by the device's software, which manipulates three Digital-to-Analog Converters (DACs) via three 5-bit DAC registers, allowing for a total of 32,768 possible frequency settings. The DAC employed with the 2 MHz RC oscillator is of a resistive type, while a capacitive DAC is used for the 2.4 GHz LC oscillator. These DAC registers are labeled as *coarse*, *mid*, and *fine*. Frequency settings are denoted as (*<coarse>*.(*<mid>*).(*<fine>*), with each component being an integer within the range of [0...31].

Fig. 3 indicates the relationship between the frequency of the LC oscillator across all frequency settings. Fig. 3 shows a portion of that data, from settings (22.31.0) to (24.0.31). Because of the way the radio is designed, there is an offset in the frequency of the LC oscillator depending on whether the radio is configured to transmit or receive. For a given *mid* code setting, changing the *fine* code from 0 to 31 causes the frequency to change by approx. 2.93 MHz, roughly 91.6 kHz (in TX mode) per *fine* code.

As shown in Fig. 3, when the *mid* or *fine* codes of the
frequency setting roll over from 31 to 0, the frequency drops. This is designed intentionally to have overlapping codes, and avoid having frequency “gaps” the LC oscillator cannot oscillate at. It does, however, make calibration harder, as the frequency does not monotonically increase with frequency setting. The 2 MHz RC oscillator exhibits the exact same behavior.

### III. INTER-OSCILLATORS CALIBRATION

Inter-Cal is an improved calibration method comparing to CoCa, which avoids proactive bidirectional communication with IEEE 802.15.4-compliant radio, i.e. OpenMote. With Inter-Cal, $SC_{\mu}M$ only needs to listen beacons sent by Open-Mote to have its internal oscillators calibrated.

#### A. Step 1 & 2: Optical Calibration and Frequency Sweep

Inter-Cal and CoCa begin with optical calibration and initial RX frequency tuning. $SC_{\mu}M$ is equipped with an integrated photo-diode for optical input. An optical transmitter programs $SC_{\mu}M$ by emitting a precise LED pattern, containing a command word and program data, onto the chip. Following firmware installation, the optical transmitter flashes the LED 20 times at regular 100 ms intervals, which $SC_{\mu}M$ utilizes for oscillator calibration. This calibration can also be conducted with wires in less-than-ideal lighting conditions. This method ensures the 2 MHz RC oscillator is accurately calibrated, assuming temperature stability. However, it fails to provide the necessary precision for the 2.4 GHz LC oscillator, affecting $SC_{\mu}M$'s communication with OpenMote. During the RX frequency calibration phase, $SC_{\mu}M$ scans through frequencies while OpenMote broadcasts beacons, known as a frequency setting sweep. Upon receiving a correct beacon, $SC_{\mu}M$ identifies and records the accurate RX setting. More details are available in Section Step 2. Frequency Sweep of [9].

#### B. Step 3a: Trigger Condition

After completing the setting sweep to identify the initial LC RX frequency settings, the beacon transmission interval is reduced to 250ms. When a Beacon frame from OpenMote is received, $SC_{\mu}M$ starts an inter-calibration sequence. In reality, Inter-Cal can be activated by any type of packets. For Open-Mote, in addition to dispatching a beacon every 250ms, its radio is set to listening mode to receive an evaluation (EVAL) packet from $SC_{\mu}M$, which is detailed later in Sec. III-F.

#### C. Step 3b: LC RX Calibration

Referenced in the right portion of Fig. 4, the Inter-Cal process starts by calibrating the LC RX frequency with IF count data. As outlined in Sec. II, $SC_{\mu}M$ tracks the IF's zero-crossings over a 100µs period, targeting 500 crossings. A deviation of one IF zero-crossing corresponds to a 5 kHz frequency shift in the 2.4 GHz LC oscillator. Given that each adjustment of the fine code alters the frequency by roughly 99.5 kHz (in RX mode), 20 zero-crossings are required to trigger a single fine code modification. The formula for adjusting the fine code

is detailed in Eq. 1, where $LC_{RxSettingF}$ represents the LC RX fine code setting to be modified, and $IF_{count}$ denotes the IF count measured upon receiving a beacon. By tracking the IF count and tweaking the fine code accordingly, the RX frequency is fine-tuned. To minimize the effects of oscillator jitters, the mean $IF_{count}$ from the most recent 9 IF counts will be utilized.

$$Setting_{LCRXFine} = (\text{signed})(IF_{count} - 500)/20 \quad (1)$$

#### D. Step 3c: 2M RC Calibration

Following the LC RX frequency tuning, the 2 MHz RC oscillator's calibration is the next step. Initially, $SC_{\mu}M$ must ensure the radio is activated and set to RX mode. Subsequently, a 50ms timer is set using $SC_{\mu}M$'s RFTIMER, simultaneously resetting both the LC and 2M counters. The RFTIMER, operating at 500 kHz, is derived from a 5 MHz RC oscillator, which clocks the ARM core's executed instructions. This RFTIMER's role is solely to establish a uniform time interval for reading the counts from both the LC and 2 MHz RC oscillators. While the RFTIMER's accuracy influences the calibration's precision, as depicted in Eq. 2, its impact is minimal. As demonstrated in Sec. IV, Inter-Cal successfully attains precise calibration using this 50ms timer duration. When the timer fires, the LC count and 2M RC count are read. Based on Eq. 2, the frequency offset of 2 MHz RC oscillator can be calculated and be adjusted with the mid setting code of 2 MHz RC oscillator.

$$Setting_{RCMid} = \frac{\left(\frac{Count_{RCMeasured}}{Count_{RCTarget}} - 1\right) \times 2MHz}{Freq_{RCMid}} \quad (2)$$

In Eq. 2, $Setting_{RCMid}$ indicates the mid code setting of 2 MHz RC oscillator to be adjusted. $Count_{RCMeasured}$ indicates the count read of 2M RC oscillator within the scheduled 50ms period. $Count_{RCTarget}$ indicates the target count value of 2 MHz RC oscillator. Eq. 3 shows how it is calculated, where $Count_{LCRXMeasured}$ indicates the count read of LC oscillator in RX mode. $Freq_{RCMid}$ indicates the frequency offset represented by one mid code setting of 2 MHz RC oscillator, which is approximately 1.597 kHz.

In particular, $Freq_{RCMid}$ can be substituted with $Freq_{RCCoarse}$ which is measured to be 10.86 kHz. Accordingly, $Setting_{RCMid}$ should also be replaced with $Setting_{RCCoarse}$.

$$Count_{RCTarget} = \frac{Count_{LCRXMeasured}}{2405MHz} \times 2MHz \quad (3)$$

The frequency 2405 MHz mentioned in Eq. 3 corresponds to channel 11 as specified by IEEE802.15.4. In our experiments, detailed in Sec. IV-A, it was necessary to adjust this frequency to approximately 2402.5 MHz to enable $SC_{\mu}M$ to communicate on the correct frequency. The exact cause of this requirement remains unclear and is earmarked for future investigation.
<figure><img src="image_5.png" /><figcaption>Fig. 4. The Inter-Cal process. The calibration starts with intensive beacon transmissions for SCμM to find the correct LC RX frequency setting through frequency sweep. Then, the beacon is sent at a lower speed by OpenMote to trigger Inter-Cal to continuously calibrate the 2M RC and LC oscillator in both TX and RX mode on SCμM side. Evaluation packet is sent after each Inter-Cal for performance validation purpose.</figcaption></figure>

## E. Step 3d: LC TX Calibration

The LC TX calibration process is conducted subsequent to the 2M RC calibration, employing a similar approach. The calibration aligns the 2 MHz RC oscillator with the LC RX frequency, and in turn, the LC TX frequency is tuned to match the 2M RC frequency. A 50 ms timer is set once more, with an initial reset of both the 2M RC and LC counts. These counts are then recorded upon the expiration of the timer. The fine code of LC oscillator to adjust is calculated based on Eq. 4, where Setting$_{LCTXFine}$ indicates the fine code to adjust to calibrate LC TX frequency. Count$_{LCTXMeasured}$ indicates the count read of LC oscillator at TX mode within 50 ms. Count$_{LCTXTarget}$ indicates the target count of LC oscillator, calculated based on Eq. 5 where Count$_{RXMeasured}$ indicates the count read of 2 MHz RC oscillator. Freq$_{LCTXFine}$ indicates the frequency offset one fine LC oscillator code.

$$Setting_{LCTXFine} = \frac{\left( \frac{Count_{LCTXMeasured}}{Count_{LCTXTarget}} - 1 \right) \times 2405 \text{MHz}}{Freq_{LCTXFine}} \quad (4)$$

$$Count_{LCTXTarget} = \frac{Count_{RCMeasured}}{2MHz} \times 2405 \text{MHz} \quad (5)$$

Freq$_{LCTXFine}$ can be replaced with Freq$_{LCTXMid}$ and Freq$_{LCTXCoarse}$. The increments for the fine, mid and coarse code for LC oscillator in TX mode are 91.6 kHz, 769.21 kHz and 14.66 MHz respectively. In case the initial LC oscillator is way off, as shown in Fig. 6, coarse, mid and fine code calibration can be applied in sequence, to calibrate the frequency to the correct one gradually.

## F. Evaluation Packet

The Inter-Cal process concludes once the LC TX frequency has been calibrated. To assess the calibration's accuracy, SCμM transmits an evaluation packet to OpenMote. Open-Mote, through its TI CC2538 chip, is capable of determining the frequency offset (FO) of the received evaluation packet. This FO data is then transferred to a PC via serial connection, as outlined in Sec. IV. This approach to utilizing FO differs from its application in CoCa, where the FO is communicated back to SCμM to adjust the LC TX frequency. In contrast, Inter-Cal does not employ FO for calibration purposes; it is used solely to evaluate Inter-Cal's performance.

# IV. EVALUATION

This section evaluates the performance of Inter-Cal. We firstly illustrate the experimental setup for the evaluation and how SCμM and OpenMote communicate each other with debugging data collected meanwhile. Then, the experiment results are shown after, with the performance analysis for LC and 2M RC oscillators.

## A. setup

The experimental setup, depicted in Fig. 5, consists of an OpenMote, a Sulu SCμM developing board, a nRF52840-DK and a laptop. The nRF52840-DK serves as the SCμM programmer to load Inter-Cal image to SCμM. The laptop is used for collecting the calibration accuracy information.

Instead of programming using the optical receiver, we use a 3-wire bus protocol to transfer the image from the laptop to SCμM over the nRF52840-DK. The nRF52840-DK also provides the power for the Sulu board. After the programming is done, a continuous 100 ms interval GPIO interrupts is triggered, instead of the optical interrupts, to initially calibrate
<figure><img src="image_6.png" /><figcaption>Fig. 5. Experiment setup. After the firmware is loaded to SCµM through the nRF52840-DK, OpenMote is reset at the same time to start the calibration process described in Fig. 4. During the entire process, FO, IF count and 2M RC count are collected through the serial ports of OpenMote and SCµM.</figcaption></figure>

the clocks of SCµM coarsely. OpenMote is reset at the same time to send beacons intensively for SCµM to perform frequency sweeping, as explained in Sec. III-B.

The laptop establishes connections with both SCµM and OpenMote through a serial interface. The 2M RC count, IF count, LC count and the frequency settings of 2M RC and LC in both TX and RX mode are collected from SCµM side. The frequency offset and the packet ID of the evaluation packet are collected from OpenMote side.

Beacons are sent by OpenMote on channel 11, hence the evaluation packet is transmitted over the calibrated frequency for channel 11 as well.

## B. Performance Evaluation

Fig. 6 depicts how the LC TX setting evolves over time while running Inter-Cal. Each dots in the figure represent an evaluation packet sent by SCµM. The LC TX setting used for sending evaluation packet is calculated through the Inter-Cal process when a beacon is received. In the figure, the orange dots signify the evaluated packet received by OpenMote successfully, whereas the blue dots indicate the unsuccessful ones. Through the experiment, there are over 1,000 evaluation packets sent by SCµM, of which 863 are successfully received by OpenMote among the first 1000 packets.

The left plot of Fig. 6 shows how the LC TX setting is adjusted from one with a far mid code 23.1.0 to the frequency setting that allows SCµM to send to OpenMote, which is around 23.17.12. The right plot of Fig. 6 shows the zoomed-in version of the TX frequency setting changing over time. Throughout the calibration process, TX frequency setting does not stabilize at a single setting but fluctuates within a range. This phenomenon is a result of the oscillator's inherent instability, posing a challenge to maintaining frequency stability in such an unpredictable system.

The corresponding frequency offset (FO) measured by OpenMote are plots below as well in the figure. The packets ID from 0 to 350 shows a relative large FO more frequently,

averaged around 20. This translates to 156 kHz frequency offset (±60ppm). After that, the FO becomes relative small value most of the time, averaged around 10 (±30ppm).

To evaluate the performance of Inter-Cal, we plot the IF counts and 2M RC count over time. The top plot of Fig. 7 shows the IF count and the histogram over 1,000 packets. A 500 IF count represents a perfect LC frequency. An offset of 19 IF counts indicates a frequency drift of ±40ppm. As indicated in the plot, 69.4% of the packets fall in this range. The performance drops comparing to CoCa which is around 94.69%. As the calibration of LC RX frequency is no difference to CoCa, we are unsure if this is due to the SCµM chip used has a relative less stable oscillator.

The bottom plot shows the 2M RC count and the histogram over the 1,000 packets. As mentioned in Sec. III-D, we use 2402.5 MHz, instead of 2405 MHz as the target frequency to calibrate the RC oscillator. Based on Eq. (3), the calculated target count for the 2 MHz RC oscillator should be 100,095. Because of the radio design of SCµM, there is a frequency shift of the LC oscillator when the radio is switched between TX or RX mode [9]. Based on our measurements, a similar behavior happens to the 2 MHz RC oscillator as well. When the radio switches from RX to TX mode, the frequency of the 2 MHz RC oscillator increases by around 80 Hz. Therefore, the target count for the RC oscillator in TX mode should be adjusted to 100,175. The histogram plot of 2M RC count indicates 91% of the samples fall into the range of ±1000ppm, with 100,175 count value in the center.

## V. CONCLUSION AND FUTURE WORK

This article introduces Inter-Cal, a calibration technique for SCµM. Upon the reception of a single packet, Inter-Cal allows SCµM to calibrate its internal 2 MHz RC oscillator and LC TX/RX oscillator instantly, without message exchanging. This technique maximizes the calibration efficiency for SCµM at large scale, with less overhead and ultra-low latency. Experiments are conducted to verify the correctness of Inter-Cal and the performance through evaluation packets. The results shows 863 out of 1,000 evaluation packets with calibrated settings can be received by OpenMote correctly. The performance shows 94.3% of the packets' LC frequencies are within ±80ppm and 91% 2M RC frequencies are within ±1000ppm.

Our future work includes two aspects: first one is to verify the stability of the Inter-Cal under a temperature changing environments. second one is to use Inter-Cal to have multiple SCµM calibrated at once and be capable to communicate each other.

## REFERENCES

[1] F. Maksimovic, B. Wheeler, D. C. Burnett, O. Khan, S. Mesri, I. Suciu, L. Lee, A. Moreno, A. Sundararajan, B. Zhou, R. Zoll, A. Ng, T. Chang, X. Vilajosana, T. Watteyne, A. Niknejad, and K. S. J. Pister, "A Crystal-free Single-Chip micro Mote with Integrated 802.15.4 Compatible Transceiver, sub-mW BLE Compatible Beacon Transmitter, and Cortex M0," in *Symposium on VLSI Circuits*. Kyoto, Japan: IEEE, 9-14 June 2019.
<figure><img src="image_7.png" /><figcaption>Fig. 6. The top plot shows the LC TX frequency settings changing during the calibration process. Each dots represents one evaluation packet sent by $SC_{\mu M}$. The continued communication from $SC_{\mu M}$ to OpenMote indicates the correctness of Inter-Cal. The bottom plot shows the frequency offset (FO) of each evaluation packets received by OpenMote.</figcaption></figure>

<figure><img src="image_8.png" /><figcaption>Fig. 7. The top plot shows the intermediates frequency (IF) count while receiving the beacons. The histogram on the right side indicates 69.4% of the time, the LC RX frequency is within ±40ppm and ±80ppm. The bottom plot shows the 2M RC count after calibrated over time. The histogram on the right side indicates the frequency of 2 MHz RC oscillator is within ±1000ppm.</figcaption></figure>

[2] *IEEE Standard for Low-Rate Wireless Networks*, IEEE Computer Society Std., 22 April 2016.

[3] L. Wu, X. Du, M. Guizani, and A. Mohamed, "Access Control Schemes for Implantable Medical Devices: A Survey," *IEEE Internet Things J.*, vol. 4, pp. 1272-1283, 25 May 2017.

[4] S. Seneviratne, Y. Hu, T. Nguyen, G. Lan, S. Khalifa, K. Thilakarathna, M. Hassan, and A. Seneviratne, "A Survey of Wearable Devices and Challenges," *IEEE Commun. Surveys Tuts.*, vol. 19, pp. 2573-2620, 26 July 2017.

[5] S. Movassaghi, M. Abolhasan, J. Lipman, D. Smith, and A. a. Jalapour, "Wireless Body Area Networks: A Survey," *IEEE Commun. Surveys Tuts.*, vol. 16, pp. 1658-1686, 14 January 2014.

[6] B. Warneke, M. Last, B. Liebowitz, and K. S. Pister, "Smart Dust: Communicating with a Cubic-Millimeter Computer," *Computer*, vol. 34, pp. 44-51, January 2001.

[7] B. Wheeler, F. Maksimovic, N. Baniasadi, S. Mesri, O. Khan, D. Burnett,

A. Niknejad, and K. S. J. Pister, "Crystal-Free Narrow-Band Radios for Low-cost IoT," in *Radio Frequency Integrated Circuits Symposium (RFIC)*. Honolulu, USA: IEEE, 4-6 June 2017.

[8] T. Chang, T. Watteyne, F. Maksimovic, B. Wheeler, D. Burnett, T. Yuan, X. Vilajosana, and K. S. Pister, "QuickCal: Assisted Calibration for Crystal-free Micromotes," *IEEE Internet Things J.*, vol. 8, pp. 1846-1858, 11 August 2020.

[9] T. Chang, T. Watteyne, B. Wheeler, F. Maksimovic, D. Burnett, and K. S. Pister, "Surviving the Hair Dryer: Continuous Calibration of a Crystal-Free Mote-on-Chip," *IEEE Internet Things J.*, vol. 9, pp. 4737-4747, 26 August 2021.

[10] F. Maksimovic, A. Patel, T. Burnett, David C. Watteyne, and K. S. J. Pister, "A Time Synchronized Multi-Hop Mesh Network with Crystal-Free Nodes," in *GLOBECOM*. Kuala Lumpur, Malaysia: IEEE, 4-8 Dec 2023.