A sealed temperature-logging card has to be thin enough to slip between cartons without displacing cargo. The number most designs converge on is 2.4 mm. That leaves no room for the usual shortcuts — no stacking components on top of each other, no battery door, no external test points, and no second chance at layout once the shell is bonded.
This article walks through the constraint hierarchy of a card built around a CR2016 coin cell, an nRF54L15 SoC, a precision temperature sensor, and an ambient-light opening detector. The theme is the same throughout: each early decision closes doors for everything that follows.
Why the First Table Kills the Obvious Layout
The naive approach is to stack layers vertically: shell wall, board, components, coin cell, shell wall. Here is what that looks like:
| Layer | Thickness | Running Total |
|---|---|---|
| Front label film | 0.10 mm | 0.10 |
| Top shell wall | 0.25 mm | 0.35 |
| Component clearance over board | 0.45 mm | 0.80 |
| PCB | 0.40 mm | 1.20 |
| Coin cell (CR2016) | 1.60 mm | 2.80 |
| Bottom shell wall | 0.25 mm | 3.05 |
That is 0.65 mm over budget. A CR2032 stands 3.2 mm on its own, so it never enters the conversation.
The solution is to cut a window through the PCB and drop the cell into it. Now the cell and the board share the same horizontal plane instead of stacking. The allocation becomes: film (0.10) + top wall (0.25) + combined plane carrying board and cell (1.60) + bottom wall (0.25) = 2.20 mm nominal. The remaining 0.20 mm covers tolerances, bonding layers, and moulding bow. That is the entire budget, not margin.
The Seal Comes First
IEC 60529 classifies enclosures under laboratory conditions. Second characteristic numeral 7 covers temporary immersion between 0.15 m and 1 m. The ANSI/IEC 60529 text also names what the IP Code leaves out: corrosion, moisture produced by condensation, and explosive atmospheres.
None of that captures what a card actually faces. A logging card moving between a 4 °C chiller and a humid loading dock hits condensation daily — a load case the classification procedure never modelled.
A continuous seam around the perimeter handles this better than a clamshell with a battery door. But it forces three commitments at once: wireless-only read-out, one cell covering the entire service life, and no field servicing. Every subsequent decision lives inside that constraint.
Six Components on One Plane
The board carries six subsystems:
- Radio SoC
- Temperature sensor
- Ambient-light detector
- Non-volatile storage (on-chip)
- Coin cell window
- Antenna keep-out zone
Two of these are large and get placed first: the cell window and the antenna keep-out zone go at opposite short edges of the card. Any other arrangement puts conductive metal (the cell casing) into the antenna's clearance zone and detunes the radio.
The antenna needs space, and it is not negotiable
Nordic's nRF52 PCB design guidelines describe a reference monopole about 23 mm long that needs a minimum of 5 mm clearance to the ground plane. No copper, no cell metal, no sensor pads may enter this zone.
With the cell window and the antenna at opposite ends, the remaining components share the middle of the board. What makes this tight is not the footprint of the parts — it is their height.
Package height is a mechanical decision wearing an electrical label
The nRF54L15 comes in CSP47 (0.42 mm height) and QFN variants (up to 0.85 mm). On a plane where 1.60 mm total thickness holds a 0.40 mm board, the remaining 1.20 mm accommodates components on both sides plus cell contacts and the inner surface of both shell walls. A QFN package eats most of one side's allocation. The CSP47 leaves room for the cell contacts and whatever shell bow the moulding introduces.
The choice between CSP and QFN is not about pin count or soldering preference. It is about whether the part physically fits within the vertical stack.
Coupling the Sensor to the Air, Not the Board
A temperature sensor datasheet quotes accuracy under controlled test conditions. The card has to earn that accuracy through its thermal path — the route heat takes from the air, through the shell wall, past the board, to the sensor die.
The TMP117 specifies ±0.1 °C maximum from −20 °C to +50 °C and widens to ±0.2 °C from −40 °C to +100 °C. Sensirion's STS40/STS41 quote 0.2 °C typical across −40 °C to +125 °C. These are different claims describing different guarantees, and neither one says anything about what happens when the sensor sits 4 mm from a radio that draws 5 mA during a BLE advertisement.
Three design moves decouple the sensor from the SoC's heat:
- Route slots into the board around the sensor to interrupt conducted heat from the radio.
- Stop the copper pour short of the sensor pads — no thermal pad soldered to ground.
- Thin the shell wall directly above the sensor to reduce the thermal barrier between the air and the die.
The tradeoff is response time. A sensor isolated from the board by routed slots responds more slowly to air temperature changes. But the routed slots and the thinned wall decide the card's real accuracy far more than the last decimal place on a sensor datasheet.
The Opening Detector Costs More Than the Radio
An ambient-light sensor detects when someone opens the carton. TI's OPT4001 in PicoStar measures 0.84 x 1.05 x 0.226 mm, small enough to fit almost anywhere on the board. It needs an optical path through the shell — a tinted or locally thinned section carries the light through while maintaining the continuous seal.
The surprise is in the current draw:
| Component | Current | Notes |
|---|---|---|
| SoC sleep (nRF54L15 lowest mode) | 0.70 µA | |
| Temperature sensor shutdown | 0.15 µA | TMP117 typical |
| Ambient light sensor standby | 2.00 µA | OPT4001 |
| Idle floor | ~2.85 µA | Before any sampling or advertising |
The opening detector outweighs the radio and the temperature sensor combined at rest. On a 90 mAh CR2016, the idle floor alone gives roughly 1,300 days before the first BLE advertisement ever fires. That looks comfortable until you add sampling, flash writes, and radio duty cycles — each of which draws orders of magnitude more than idle, compressed into short bursts that the average current understates.
What Gets Stored and How It Gets Out
Each record is four bytes: two for temperature at 0.01 °C resolution, one for a quantized light level, one for flags. Timestamps and sequence numbers are not stored. They are derived from record position and the fixed sampling interval, which eliminates four to eight bytes per record at the cost of requiring the reader to know the session start time and interval.
At five-minute intervals, 100,000 records span roughly 347 days. At one-minute intervals, that drops to 69 days. The nRF54L15 class offers about 1.5 MB of non-volatile memory; after firmware, keys, calibration data, and wear headroom, roughly 1.1 MB remains for logging. Storage fills before the battery dies at relaxed intervals. The battery dies before storage fills at aggressive ones.
The card exports raw data; rendering a PDF or CSV compliance report happens on the phone or gateway. A session header carries device ID, firmware version, calibration reference, and session start time. Every record after that is a position in the stream.
Bluetooth Core 6.0 introduced Decision-Based Advertising Filtering and Monitoring Advertisers, which reduce the reader's scan workload rather than the card's power draw. Channel Sounding offers secure fine ranging more accurate than path-loss estimation — but whether a 90 mAh cell can afford the extra radio time is an open question with no published answer for this device class.
Three Ways the Card Fails Silently
Bending. A rigid PCB inside a flexible shell concentrates strain at the board edges and cell contacts. Cards stacked between cartons flex regardless of what the datasheet says about the enclosure. The failure is intermittent — a broken solder joint on the cell contact produces dropout, not a clean end-of-life signal.
Seam fatigue. IP classification tests new samples under controlled temperature and immersion. Repeated thermal cycling between a 4 °C chiller and a 30 °C dock is a fatigue input the test never models. A card that was sealed on day one may not be sealed on day two hundred.
Sensor drift is the most dangerous because it is invisible. A card with walked calibration reports confidently and wrongly. A dead card gets replaced. A drifted card gets believed. None of these failures appear in functional BLE read-outs. A card that advertises, connects, and transfers data can be mechanically compromised, thermally unreliable, or both.
Reuse Is a Bench Operation, Not a Scan
A returned card needs three checks before it ships again, and none of them is observable from a BLE read:
Calibration status — verified against a reference standard, with a date and recorded deviation. The card's stored readings are evidence of what it measured, not evidence that its measurements were still accurate.
Seal integrity — a new sample's IP class does not describe a returned unit with unknown handling history. IP testing is destructive by design; inferring post-deployment seal condition from pre-deployment test data requires at minimum a defined assessment procedure.
Cell condition — a lithium-manganese primary holds nearly flat terminal voltage across most of its discharge curve. Voltage alone reveals almost nothing about remaining capacity. A load pulse test or coulomb-counting estimate is needed, and both require access the sealed card does not offer without a test fixture.
Whoever takes the returns owns those three checks, with a bench, a pass criterion, and a serial-level record. Where that owner goes unnamed, the second shipment runs on the first shipment's evidence.
Top comments (0)