Skip to content

UIUC Tag (BitPresTag)

The UIUC tag combines the two simplest sensing strategies in the family on one board: a BitTag's activity accelerometer and a PresTag's pressure sensor. The board documented here is UIUCTag: a Bosch BMP585 for pressure and an ADXL362 for activity, on a 19 × 10 mm, 0.4 mm four-layer board.

The board

UIUCTag, top side

Top

UIUCTag, bottom side

Bottom

The 10 ohm inrush resistor sits in series between the processor pin and the pressure sensor's supply. These are rendered from the KiCad layout by kicad-cli; see Board Designs for how they are regenerated.

Block diagram

flowchart LR
  subgraph TAG[UIUCTag]
    direction LR
    subgraph SW[Switched]
      PRS["BMP585<br/>pressure + temperature"]
      RES["R2 10 Ω<br/>inrush limit"]
      RES --- PRS
    end
    subgraph ON[Always on]
      direction TB
      RTC["RV-3028-C8<br/>RTC"]
      MCU["STM32L432KCU6<br/>processor"]
      ACC["ADXL362<br/>accelerometer"]
      FLASH["AT25FF321A<br/>4 MB serial flash"]
      RTC --- MCU
      MCU --- ACC
      MCU --- FLASH
    end
    subgraph PWR[Power]
      BAT["MS621FE-FL11E or<br/>MS920SE-FL27E<br/>D401 Schottky"]
    end
    IF["Interface<br/>SWD + pogo pads"]
    SW --- ON
  end
  ON --- PWR
  ON --- IF

Major components

Role Part Domain Notes
Processor STM32L432KCU6 Always on
RTC RV-3028-C8 Always on 32.768 kHz, 1 ppm
Sensor ADXL362BCCZ Always on 3-axis accelerometer, activity detection only
Sensor BMP585 Switched Barometric pressure and temperature
Memory AT25FF321A-UUN Always on 4 MB serial flash
Power D401 CDBQC0130L-HF — Schottky reverse-polarity protection; no regulator
Battery MS621FE-FL11E or MS920SE-FL27E — 5.5 mAh / 230 mg, or 11 mAh / 450 mg

The pressure sensor is powered from a processor pin, through a resistor. Pin PB1 drives the net LPS_PWR, which passes through a 10 Ω series resistor R2 to LPS_VDD — the node that actually feeds the sensor's VDD and VDDIO along with their decoupling capacitors.

That resistor is not incidental. The BMP585 datasheet specifies a minimum supply ramp time of 10 µs and states normatively that supplies ramping faster than that must have a 10 Ω series resistor, to avoid damage from repeated power cycling. Repeated power cycling is precisely this tag's duty cycle. Before R2 was added, the only thing limiting inrush was the processor pin's own output impedance, which cleared the requirement by somewhere between 1.1× and 2.2× — and only on an inferred impedance and a firmware speed setting that could change. With R2 the requirement is met by construction.

Back-powering is a firmware contract

While PB1 is low, the sensor's bus lines are still driven from the main domain. Firmware must not leave them high, or the sensor can be back-powered through its protection diodes.

Two further points worth carrying into firmware. The ADXL362 is driven from USART2 in synchronous mode, not from an SPI peripheral. And it is used only for activity detection, in its motion-activated wake-up mode, never in measurement mode: its INT2 drives PA0/WKUP1 to wake the processor.

Why an ADXL362 and not the ADXL367

UIUCTag is BitPresTagBMP585 with its ADXL367 replaced by an ADXL362. The ADXL367's inactivity detector has too many problems for this tag, so BitPresTagBMP585 will not be fabricated. The ADXL362 land pattern is the one already proven on BitTagv7, and the processor pin map is unchanged.

What it records

Activity and altitude together. The accelerometer produces the same one-bit activity record a BitTag does, while the pressure sensor adds barometric altitude on its own schedule. Having both on one tag means an active period can be read alongside the altitude profile that accompanied it, rather than inferring one from the other.

Power

Measured with the ADXL367 accelerometer UIUCTag replaced, on firmware fw-v0.6 at 2.4960 V from an unregulated 2.5 V cell, at the shipped 300 s sample period. UIUCTag itself has not yet been measured.

State Current
IDLE 0.16 µA
RUNNING, 300 s period 0.56 µA
FINISHED 0.16 µA

The ADXL362's wake-up mode draws 270 nA against the ADXL367's 180 nA (both from the datasheets), so expect UIUCTag to run about 0.09 µA higher, near 0.65 µA. That is an estimate, not a measurement. At 0.56 µA the cell alone gives roughly 410 days recording on a 5.5 mAh cell and 820 days on 11 mAh; at 0.65 µA, about 350 and 700. Storage has not been analysed for this tag; PresTag, which carries the same 4 MB flash, turns out to be memory-limited rather than battery-limited over much of its range, so expect the same question here.

Bring-up of the ADXL367 build measured about 0.76 µA running against the 0.56 µA above. The difference is real and unexplained; the likeliest cause is accelerometer configuration, since bring-up was still resolving a pegged ADXL367.

Full log: UIUCTag power results.

Design files

Design directory on GitHub Schematic (PDF) Design review

The review carries the full STM32L432 pin map, the ADXL362 pinout checked against the datasheet, the verified fabrication package, and the case-room change that lengthened the board by 1 mm. The case is in Mechanical/UIUCTag.

Two earlier revisions are in the repository: BoardDesigns/Tags/BitPresTagBMP585, the ADXL367 board UIUCTag is derived from, and BoardDesigns/Tags/BitPresTag, the original pairing of an ADXL362 with an ST LPS27HHTW pressure sensor.