Evaluating Internal RC Oscillator Drift during Deep Power Down

Evaluating internal RC drift requires mapping temperature and voltage sags to expanded radio receive windows that drain battery reserves.

30.08.26 18 min

Pulse

Low-power wireless systems-on-chip rely on low-frequency timekeepers to schedule wake events from deep sleep. When a chip enters its lowest-power shutdown state, high-frequency phase-locked loops and primary crystal drivers shut off to eliminate milliampere-level current draw. Timekeeping drops to a low-frequency oscillator running continuously on nanoamperes.

Silicon designers choose between external 32.768 kilohertz quartz crystals and internal resistor-capacitor relaxation circuits integrated directly on the die. High-density designs often rely on internal loops to eliminate external parts, shrink board footprint, and lower upfront component costs. But that choice introduces an unstable timing reference whose frequency shifts with temperature, supply voltage, and semiconductor manufacturing variations.

Internal low-frequency relaxation circuits generate clocks by charging and discharging an integrated capacitor through a resistor network, where internal comparator switching thresholds set the cycle period. Because semiconductor resistance shifts with junction temperature and gate capacitance varies with substrate bias, raw output frequency is inherently unstable ~ silicon timers drift under thermal stress, directly shifting radio wake timing. Where an external tuning-fork quartz crystal stays within plus or minus 20 parts per million across standard operating ranges, an uncalibrated internal relaxation oscillator can vary by plus or minus 20,000 to 50,000 parts per million.

That translates to a timing uncertainty of up to 5 percent over any sleep interval.

Evaluating low-power timing topologies relies on microampere current profiles measured during extended sleep intervals. Silicon vendors trim internal relaxation circuits during automated factory probe testing by writing correction factors into non-volatile memory registers. This factory calibration cancels out manufacturing process variations at a single reference point ~ typically 25 degrees Celsius and a fixed 3.0-volt supply.

Once the device leaves the factory, temperature changes trigger immediate drift. The temperature coefficient of integrated polysilicon resistors creates a non-linear frequency slope across the minus 40 to plus 85 degrees Celsius operating band, meaning a device calibrated for room temperature speeds up or slows down as conditions head toward thermal extremes.

Precision optical sensor aperture housing and module assembly undergoes particulate testing inside a specialized cleanroom manufacturing environment.

Silicon Relaxation Physics and Frequency Drift Mechanics

An on-chip relaxation circuit’s operational frequency depends on the charge rate of an integrated RC network. Voltage across the capacitor rises along an exponential curve defined by the product of resistance and capacitance until reaching a comparator reference threshold, which triggers a discharge transistor to reset the cycle. Both the resistor value and reference threshold are sensitive to heat: integrated resistors show positive or negative temperature coefficients depending on doping concentration, and bandgap reference voltages drift over wide thermal spans.

The resulting frequency drift behaves non-linearly, accelerating toward the high and low edges of the operating temperature envelope.

Supply voltage changes introduce secondary frequency shifts. Battery-powered field devices experience gradual voltage decay as primary cells discharge over months or years. Internal linear voltage regulators isolate sensitive analog blocks, but finite power supply rejection ratios and residual voltage ripple still let rail fluctuations alter comparator switching speeds.

Dropping battery voltage from 3.6 volts to 2.2 volts changes gate propagation delays and internal bias currents, pulling the relaxation circuit off its calibrated center frequency. Combined with temperature swings, voltage sags push total drift well past nominal datasheet numbers.

Phase jitter adds another layer of instability in integrated relaxation topologies. Unlike crystal oscillators that store energy in high-Q mechanical vibrations, RC circuits store far less energy in the electric fields of low-Q integrated capacitors. Channel thermal noise and substrate noise from neighboring digital blocks cause cycle-to-cycle phase variations.

This short-term jitter stacks on top of long-term thermal drift, widening the uncertainty window around expected wake times. Wireless protocols that demand microsecond-level synchronization have to account for both deterministic drift and stochastic jitter when setting sleep timing tolerances.

Comparative Parameter Matrix of 32.768 kHz Sleep Clock References
Parameter Uncalibrated Internal RC Auto-Calibrated Internal RC External Quartz Crystal Temperature-Compensated Crystal
Initial Frequency Tolerance ±10,000 to ±30,000 ppm ±250 to ±500 ppm ±20 ppm ±2 ppm
Thermal Drift (-40 to +85°C) ±30,000 to ±50,000 ppm ±2,000 to ±5,000 ppm -0.034 ppm/°C² parabolic ±5 ppm cumulative
Active Current Draw 100 to 300 nA 1.5 to 3.0 µA (averaged) 300 to 900 nA 1.5 to 4.0 µA
Startup and Settling Time 1 to 3 µs 1 to 3 µs 300 to 1000 ms 5 to 10 ms
Added Bill of Materials Cost $0.00 $0.00 $0.06 to $0.15 $0.45 to $0.85
This three dimensional render presents a detailed cutaway view of a connectivity module, revealing its internal electronic printed circuit board and integrated mechanical components.

Clock Source Architectural Trade Offs

Dropping the external crystal alters design decisions across electrical, physical, and financial lines. Removing a 32.768 kHz quartz crystal eliminates two load capacitors, gets rid of board traces prone to parasitic capacitance, and frees up two GPIO pins on the microcontroller package. Shrinking the board footprint simplifies high-density layouts and removes a mechanical failure point ~ solder joint fractures caused by vibration.

It also eliminates oscillator startup failures caused by moisture ingress or solder flux residue bridging high-impedance pins.

The compromise lands in the energy budget. An uncalibrated internal relaxation circuit draws very little current ~ often under 200 nanoamperes in deep sleep. But timing errors force the radio to wake earlier and listen longer during every scheduled window, and that extra receiver draw quickly consumes more power than the internal clock saved.

Dynamic calibration routines running on the main processor can tame frequency drift, but running them requires periodically waking high-frequency crystals and digital logic, adding energy overhead back into the system power budget.

Silicon vendors routinely publish deep-sleep current figures that assume room-temperature operation with internal RC sources active. These datasheet specs reflect ideal bench conditions with a steady 3.0-volt supply and temperature locked at 25 degrees Celsius. Marketing materials present internal relaxation circuits as direct replacements for quartz crystals, stressing board space savings and lower component costs while application notes gloss over the receiver energy penalty of expanding guard windows ~ leaving developers to discover premature battery drain during field qualification.

Slump

Environmental conditions inside field enclosures degrade unconditioned internal timing sources significantly. Industrial radio modules are often installed in sealed plastic or metal housings exposed to solar radiation, thermal cycling, and shifting humidity. Direct sunlight on a pole-mounted enclosure can drive internal temperatures 20 to 30 degrees Celsius above ambient within two hours.

As temperature swings alter RC time constants and voltage sags shift oscillator bias, receiver windows widen rapidly, draining battery capacity during prolonged listening periods. The resulting drift degrades timing accuracy far beyond bench-test predictions.

Primary battery chemistry compounds these thermal effects. Lithium thionyl chloride and lithium manganese dioxide cells experience rising internal resistance as temperature falls. In cold conditions, slowed electrochemistry raises equivalent series resistance.

When a radio wakes from deep power-down to transmit, the pulse current drawn by the power amplifier causes an immediate voltage dip across the cell. This drop shifts the bias on the low-frequency relaxation oscillator just as the device schedules its next sleep cycle, displacing the wakeup target and injecting timing errors into future synchronization windows.

Thermal shifts in unconditioned enclosures degrade internal timing accuracy far faster than supply voltage decay.

Timing budgets must account for worst-case thermal gradients inside industrial enclosures. Rapid temperature changes induce transient drift profiles that static calibration factors cannot catch. A thermal ramp of 5 degrees Celsius per minute causes differential expansion across silicon layers, exerting mechanical stress on internal structures.

This stress alters the piezoresistive properties of integrated resistors, triggering dynamic frequency shifts that outpace baseline thermal coefficient models. Timing degrades fastest around sunrise and sunset, when ambient thermal gradients hit peak rates of change.

Rendered hardware integration workbench features a blue modular enclosure alongside an electrical soldering station positioned against a vertical vine backdrop.

Unintended Clock Degradation Modes

Timing failures in low-power radio nodes show up in several ways. Uncalibrated relaxation loops drift outside assigned network time slots, losing sync with gateways. A node that spends extended periods searching for lost network beacons drains its battery long before reaching its target operating life.

Recognizing these failure mechanisms allows engineering teams to design realistic timing margins or add dynamic firmware compensation.

  • Thermal Hysteresis Accumulation occurs when silicon heating creates residual frequency shifts that lag ambient cooling, shifting baseline calibration points over repeated thermal cycles.
  • Supply Rail Dip Coupling happens when peak transmission pulses pull down internal LDO outputs, corrupting timer counter increments during transitions from active to sleep modes.
  • Substrate Noise Modulation takes place when nearby digital blocks leak high-frequency switching noise into comparator circuits, injecting short-term phase jitter.
  • Aging-Induced Threshold Drift arises over multi-year deployments as gate oxide charge trapping gradually shifts comparator switching thresholds, permanently altering nominal output frequency.
  • Guard Time Starvation develops when combined thermal and voltage drift exceeds pre-programmed receive window limits, causing total packet loss and endless network re-joins.
This render shows a smart device power integration module with a prominent disconnect switch and connecting busbar within a utility enclosure.

Quantifying Thermal Coefficient Curves

Predicting drift across operating temperatures requires looking closely at the thermal profiles of internal relaxation circuits. Tuning-fork quartz crystals follow a predictable parabolic curve centered at 25 degrees Celsius, with a turnover constant of minus 0.034 parts per million per degree Celsius squared; calculating drift at any temperature is a simple quadratic equation. Integrated silicon relaxation circuits, by contrast, exhibit complex, non-monotonic curves shaped by resistor material behavior, comparator delays, and reference voltage drift.

At low temperatures, rising polysilicon resistance and longer gate delays cause oscillator frequency to fall. At high temperatures, exponential growth in reverse-biased junction leakage creates parallel current paths, altering capacitor charge rates. These interacting mechanisms make simple linear temperature models unreliable predictors of timing performance.

Firmware compensation built on single-point slope calculations breaks down at temperature extremes, leaving radio nodes misaligned in sub-zero or high-heat environments.

Voltage dependencies complicate these thermal profiles further. As primary lithium cells discharge, loaded output voltage drops, reducing bias current to internal analog comparators. Lower bias current slows comparator response, lengthening each clock cycle and dropping the output frequency.

Decaying supply voltage and rising temperature combine into a compound drift vector: a node running at 85 degrees Celsius on a 2.0-volt rail can experience frequency offsets up to three times larger than the same chip running at 85 degrees Celsius on 3.3 volts.

Ignoring environmental impacts on timing accuracy ruins battery life. A node set to wake every ten seconds to catch a network synchronization frame relies on tight timing execution. If thermal drift pulls the sleep clock off by 3 percent, the node arrives 300 milliseconds early or late.

To guarantee frame capture, firmware has to open the receiver 300 milliseconds before the expected transmission. Running a 15-milliampere radio receiver for an extra 300 milliseconds every ten seconds adds dozens of microamperes to average power draw, draining battery capacity in months and driving up field maintenance costs.

Margin

Protocol standards set tight timing boundaries for synchronized packet exchange. Bluetooth Low Energy, LoRaWAN, IEEE 802.15.4, and Cellular IoT in Power Saving Mode rely on precise time slots to avoid collisions and conserve energy. When two nodes establish a link, they schedule recurring communication events: the central node transmits at fixed intervals while the peripheral sleeps between events, waking just in time to catch incoming packets.

Clock accuracy on both ends determines how wide the receiver guard window must be.

Bluetooth Low Energy topologies use the Sleep Clock Accuracy parameter, exchanged during link setup, to define guard bands. The peripheral reports its clock accuracy in parts per million so the central device can adjust window sizes. If a peripheral reports 500 parts per million accuracy, the receive window expands proportionally with sleep duration: a 4-second sleep interval needs a guard window of at least 4 milliseconds to account for combined drift.

If that peripheral runs on an uncalibrated internal RC clock drifting at 20,000 ppm, the guard window jumps to 160 milliseconds, burning significant energy in receiver idle listening.

Expanding receive windows to compensate for drift causes heavy battery loss. In LoRaWAN Class B, gateways broadcast sync beacons every 128 seconds, and end nodes wake to open ping slots at precise offsets relative to those beacons. Because LoRaWAN data rates are low and preambles are long, opening the receiver early wastes substantial power.

A LoRaWAN end node running on an uncalibrated internal relaxation circuit must power its sub-GHz receiver hundreds of milliseconds before the target slot time, burning microampere-hours on every cycle.

An L shaped metallic connectivity module houses internal wiring with blue and pink connectors inside a digital rendering space for hardware design.

How Does Timing Drift Enlarge Receive Windows?

Calculating receiver guard time requires adding master clock uncertainty, slave clock uncertainty, and physical wake-up latency. Minimum receive duration follows a direct formula: guard time equals twice the sleep duration multiplied by the combined master and slave sleep clock accuracy (in ppm), plus absolute phase jitter and baseband radio turn-on time.

When an internal relaxation oscillator drives the sleep timer, its large ppm offset dominates the calculation. A standard quartz crystal offers 20 ppm accuracy, yielding a 160-microsecond guard time over a 4-second sleep interval. An auto-calibrated internal RC oscillator sitting at 500 ppm needs 4 milliseconds over that same span, while an uncalibrated RC oscillator at 25,000 ppm forces the receiver open 200 milliseconds early.

Because idle receive current matches or exceeds active reception draw, a 200-millisecond window extension consumes hundreds of times more energy than receiving the packet itself.

Wake-Up Window Expansion and Battery Life Degradation Matrix
Sleep Clock Reference Type Effective Clock Drift (ppm) Sleep Duration (s) Required Guard Window (ms) Added Receiver Energy per Cycle (µJ at 3.0V, 15mA) Projected Cell Life (1Ah LiMnO2 Cell)
Standard Quartz Crystal (LFXO) 20 1.0 0.04 1.8 9.8 Years
Standard Quartz Crystal (LFXO) 20 10.0 0.40 18.0 8.4 Years
Auto-Calibrated Internal RC 500 1.0 1.00 45.0 6.2 Years
Auto-Calibrated Internal RC 500 10.0 10.00 450.0 2.1 Years
Uncalibrated Internal RC 20,000 1.0 40.00 1800.0 0.6 Years
Uncalibrated Internal RC 20,000 10.0 400.00 18000.0 0.1 Years

Cellular IoT standards like NB-IoT and LTE-M use Power Saving Mode (PSM) to hit multi-year battery life. In PSM, the module disconnects from active channels while staying registered on the network. Sleep intervals are governed by the Periodic Tracking Area Update (TAU) timer, which ranges from minutes to hundreds of hours.

If the sleep clock driving the TAU timer drifts, the node wakes and attempts to send updates out of sync with network expectations. Severe misalignment forces the base station to treat the node as disconnected, triggering a full network attach on wake. Re-attaching can consume several Joules ~ compared to a few millijoules for a simple update ~ ruining the device’s energy budget.

Bluetooth Core Specification 5.4 mandates maximum sleep clock jitter tolerances that disqualify uncalibrated RC circuits in low-latency connection topologies.

Evaluating trade-offs between component counts and window expansion requires structured review. Engineering teams must balance upfront bill-of-materials savings against long-term energy draw and packet loss rates. The following framework helps guide clock reference selection during architecture planning:

  • Protocol Timing Budget Analysis involves verifying whether target radio standards enforce timing limits tighter than the baseline drift of uncalibrated internal relaxation sources.
  • Environmental Range Mapping requires defining operational temperature extremes and thermal ramp rates expected in deployment environments.
  • Energy Penalty Calculation centers on modeling receiver idle current across expanded guard windows to determine total microampere-hour draw over target service life.
  • Bill of Materials Optimization compares crystal component costs against secondary expenses, including larger batteries, additional PCB area, and factory test steps.

Long-term silicon aging effects on internal RC stability over ten-to-fifteen-year lifespans remain poorly documented. Semiconductor vendors supply initial thermal drift numbers, but parametric shift data under continuous stress is rare for standard microcontroller families. Without solid aging metrics, designers cannot be sure software compensation algorithms will remain valid as gate structures age in field conditions.

A black industrial radio frequency shielded enclosure sits mounted on an aluminum profile frame within a sterile laboratory testing facility.

Guard

Mitigating relaxation clock drift requires active firmware compensation. Microcontroller architectures pair low-power relaxation circuits with high-frequency crystal references used during active processing and radio transmission. When the main core wakes to run tasks or handle radio events, firmware can trigger a hardware counter to calibrate the low-frequency clock against the high-frequency crystal.

Counting low-frequency clock ticks over a measured interval of high-frequency crystal operation calculates the relaxation circuit’s exact output frequency.

The system writes the offset to an internal clock calibration register, which firmware uses to scale subsequent sleep timer targets and keep wake intervals tight. Dynamic calibration burns energy, however, because the main crystal and high-frequency digital counters must remain powered during the measurement. Setting the calibration interval is a trade-off: calibrating too often wastes power in active mode, while calibrating too seldom allows thermal drift to push receive windows past safe limits.

While dynamic calibration against a crystal keeps timing accurate, it consumes battery power on every run. Thermal compensation using internal temperature sensors provides a lighter alternative. Microcontrollers with on-chip temperature sensors can sample junction temperature during standard wake cycles, using those readings to index a frequency-versus-temperature lookup table.

Firmware updates timer offsets directly without powering up high-frequency calibration counters. This open-loop method saves active energy, though its accuracy hinges entirely on factory thermal calibration data.

  1. Configure the high-frequency crystal oscillator and allow its output amplitude and frequency to settle within specified stability limits.
  2. Route the internal low-frequency relaxation clock signal into a hardware timer capture channel tied to the high-frequency clock.
  3. Run a multi-cycle counter pass to calculate the ratio between low-frequency relaxation ticks and high-frequency crystal cycles.
  4. Calculate the corrected sleep counter reload value and write the scalar parameter into the real-time clock configuration register before entering deep sleep.

Bench testing validates firmware calibration across simulated field environments. Engineers connect the hardware to a precision current analyzer inside a thermal chamber. High-resolution current profiles reveal the duration of active processing, crystal startup, calibration loops, and receiver window open times.

Sweeping temperature from minus 40 to plus 85 degrees Celsius at set ramp rates exposes software calibration flaws and uncovers unexpected timing window failures.

Extending low-power sleep intervals past five seconds without external crystal references shifts battery depletion from radio activity to receiver idle listening.

Advanced current measurement tools capture fine timing variations that standard multimeters miss. Sampling at 100 kilosamples per second or higher reveals the exact microsecond the radio powers its low-noise amplifier before packet arrival. Comparing receiver turn-on time to packet preamble arrival quantifies actual guard window width; if that window widens as temperature drops, firmware calibration intervals must be adjusted to prevent sync loss.

Supply contracts for low-power hardware often specify explicit timing performance bounds. Qualification requirements should state maximum permitted drift in parts per million across the operating temperature range, energy caps for dynamic calibration, and maximum allowed guard window draw per sleep cycle. Formalizing these metrics in procurement agreements ensures suppliers deliver silicon and firmware tuned to hold timing tolerances in actual field conditions.

Technician hands in white gloves manipulate a circular high frequency electronic module containing integrated circuitry for telecommunications systems assembly.

Settlement

Clock architecture decisions carry direct financial consequences over production and operating lifespans. Leaving out a 32.768 kilohertz external crystal cuts bill-of-materials costs by $0.06 to $0.15 per unit depending on volume and tolerance, while dropping two ceramic load capacitors saves another $0.01. On a manufacturing run of 500,000 utility meters or asset trackers, eliminating those parts saves $35,000 to $80,000 upfront ~ a figure that makes internal clock architectures look attractive on initial factory quotes.

Those upfront savings disappear if timing drift forces a larger battery. As guard windows expand from 400 microseconds to 20 milliseconds to cover uncalibrated RC drift over multi-second sleep intervals, average current rises by microamperes. A sensor designed to run ten years on a $0.45, 1.2 Ampere-hour lithium coin cell will drain it in 3.6 years if guard windows expand.

Restoring that ten-year lifespan requires stepping up to a 2.4 Ampere-hour lithium thionyl chloride cell costing $1.65 ~ a $1.20 increase in battery cost that wipes out the $0.10 savings on crystal hardware.

Test time adds another hidden expense. Calibrating internal relaxation circuits during production requires running calibration routines while devices sit in automated test sockets. Every second of test-socket time on multi-site equipment adds $0.02 to $0.05 per device.

If multi-point thermal trimming is needed to program compensation curves into non-volatile memory, test duration increases by several seconds, turning initial component savings into a net loss before devices leave the factory.

Production Cost and Warranty Risk Trade-Off Matrix for 100,000 Unit Deployment
System Clock Architecture Strategy Initial BOM Cost per Unit Required Battery Sizing & Cost Factory ATE Calibration Cost Projected 5-Year Warranty Field Failure Rate Total Financial Expenditure per Delivered Unit
External Quartz Crystal (LFXO 20 ppm) $0.12 (Crystal + Caps) 1.0 Ah Cell ($0.50) $0.01 (10 ms check) 0.2% $0.64
Auto-Calibrated Internal RC (FW Managed) $0.00 1.8 Ah Cell ($0.95) $0.04 (300 ms trim) 1.8% $1.05
Uncalibrated Internal RC (Static Trim) $0.00 2.4 Ah Cell ($1.65) $0.01 (10 ms check) 6.5% $1.88
Temperature-Compensated TCXO Reference $0.65 (TCXO Module) 0.8 Ah Cell ($0.40) $0.01 (10 ms check) 0.1% $1.06

Field service expenses represent the greatest financial risk tied to clock drift. If timing instability causes wireless nodes to drop network synchronization in cold weather, affected units fall into continuous search modes. Persistent radio searching drains batteries in days, causing cascade failures across industrial deployments.

Designing low-power wireless nodes around uncalibrated internal timing sources shifts financial liability from predictable component pricing to unpredictable warranty servicing.

Replacing depleted batteries or failed nodes in commercial settings costs $50 to $200 per site, and can reach thousands of dollars in offshore or hazardous industrial locations. A 2 percent failure rate from cold-weather drift in a 100,000-unit deployment means 2,000 service calls. Warranty claims and reputation damage quickly dwarf the tiny savings gained by leaving out external crystals during assembly.

Choosing a timing reference requires looking at physics, protocol demands, and total unit economics together. Evaluating internal relaxation oscillators means looking beyond datasheet ppm figures to consider the whole system: silicon relaxation behavior under heat, battery internal resistance changes, receive window power penalties, calibration overhead, and warranty risk. Designers who factor in these connected variables build low-power devices that hit multi-year service targets within budget.

Decisions made at the schematic stage ripple through firmware design, battery selection, factory testing, and warranty calculations. Treating sleep timing accuracy as a primary design constraint protects products against premature battery drain, maintains reliable connectivity across temperature swings, and keeps operating margins predictable over the product’s lifespan.

Nomenclature

Firmware Calibration

Meaning ~ Post-production adjustment routines write correction values directly to non-volatile memory to compensate for physical variations in analog components.

Parabolic Thermal Coefficient

Meaning ~ Mathematical curves that describe the relationship between temperature and frequency deviation for tuning-fork quartz crystals show a non-linear response centered around a turnover temperature.

Receive Window

Meaning ~ Scheduled time intervals define when a wireless device activates its radio receiver to listen for incoming messages from a gateway.

Bluetooth LE SCA

Meaning ~ An operational radio parameter specifies the maximum timing drift of a low-energy transceiver during low-power sleep intervals.

Receive Window Penalty

Meaning ~ Energy consumption increases that occur when a wireless receiver must stay active for a longer period to compensate for timing uncertainty raise the average power draw of a battery-powered device.

Duty Cycle Limits

Meaning ~ Maximum allowable transmission durations defined by regulatory authorities restrict the portion of time an RF transmitter may actively radiate.

Battery Lifetime Calculation

Meaning ~ Mathematical models that project the operational duration of a remote sensing device use both static current draw and transient activation profiles.

Sleep Clock Accuracy

Meaning ~ Technical specifications that define the precision of the low-frequency clock source used during low-power states determine the timing uncertainty in synchronized wireless networks.

High Frequency Crystal

Meaning ~ Electronic components that use the mechanical resonance of a vibrating quartz wafer generate the precise reference frequencies required by wireless transceivers.

LFXO

Meaning ~ Low power crystal oscillators generate precise timing signals using a external low frequency quartz crystal.

Power Saving Mode

Meaning ~ Functional state of a wireless device where the radio and processor enter a low energy condition to conserve battery.

32.768 Khz

Meaning ~ Resonator frequency standards dictate the timing intervals for low power sleep cycles in embedded microcontrollers and wireless transceivers.

What the firm knows, published

Expertise is a utility, not a secret. sentiention™ publishes its working knowledge as open reference: intelligence layer covering the materials it sources, the markets it enters, and the reference that serves both.