Off-board connections are kept to a minimum. These provide:

  • Power.
  • Serial port for programming and configuration.
  • Spy-Bi-Wire for debug.


An FRAM-based microcontroller was chosen for its low power consumption and low-cost-per-unit. It also a has a free Eclipse-based IDE.

24 MHz 16-bit MCU

32KB Non-volatile FRAM


420 nA in LPM3.5 (deep sleep mode) with LFXO

Low Frequency Crystal Oscillator

It is vital that the microcontroller records samples at an accurate time interval. This adds fidelity to sample timestamps calculated by the decoder. The RC oscillator in the microcontroller is too unstable. This justifies a 32.768 kHz watch crystal, which also reduces power consumption.

Load Switch

The load switch splits cuplTag into 2 power domains:

  • VDD (always-on) powers the microcontroller and its LFXO.
  • VMEM (switched) powers the NFC EEPROM and humidity sensor.

The cuplTag spends most of its time in sleep mode. It wakes up for a few milliseconds each minute. Current consumption in sleep mode dominates the average, so it must be minimised. The microcontroller is designed to draw ~1.5 µA in sleep. By contrast, the NFC EEPROM has a very high current, including 10 µA of leakage through its I2C pins. The load switch fixes this; VMEM is only powered on when the microcontroller is active. Functionality is not compromised: a phone can read or write the EEPROM at all times (it is powered from the field).

Humidity Sensor

Temperature ±0.2°C (typical) Humidity ±2% (typical)

Wide supply voltage range
1.62V to 3.6V

Low peak current
< 1mA

Factory-installed cover
Protects humidity sensor from ingress


Derived from Figure 1 in:

The EEPROM has two interfaces:

  • The microcontroller writes a cupl URL (and reads configuration messages) via I2C.
  • A phone reads the cupl URL (and writes configuration messages) over NFC.
EEPROM size in bytes1024Includes configuration registers
Useable bytes888Maximum length of the cupl URL
Preamble 16B-blocksup to 7For domain name, protocol, status, serial etc.
Circular buffer 16B-blocks48For storing environmental sensor samples
Temperature + HumidityTemperature only
Circular buffer samples 188376
Log duration
@ 1 sample / 10 minutes
1 day 8 hours2 days 16 hours
Log duration
@ 1 sample / 60 minutes
8 days16 days

Wide supply voltage range
1.67V to 3.6V

Broad compatibility
NFC forum Type 2 tag
Works with Android and iOS