Close

Design

A project log for Nanosleeper - Sub 100nA Sleep Dev Board

A "feather-ish" development board achieving <100nA deep sleep current with real time clock wake-up

jake-wachlinJake Wachlin 01/13/2024 at 21:250 Comments

The design of Nanosleeper is relatively simple. It is meant to be a development board, so the components on it are meant to represent the minimum for proper operation in the envisioned use case: prototyping ultra-low power systems.

Nanosleeper is also an answer to a question. Ultra-low power systems can commonly achieve <10uA in deep sleep. Getting this down to <1uA is possible, but difficult (even good, modern ultra-low power microcontrollers, RTCs, and voltage regulators can require about 1uA to operate). Nanosleeper takes things another order of magnitude, down to <100nA at 1.8V. At <100nA, Nanosleeper would take >256 years to drain a CR2032 coin cell battery. Of course, the battery will self-discharge much faster than that, but at <100nA the amount of power used in deep sleep can be entirely ignored in battery life calculations (and/or energy harvesting only needs to harvest a very small amount of power).

This log will go through the schematic (PDF available on the project page), and explain why certain decisions were made.


The microcontroller section of Nanosleeper is simple. Decoupling capacitors are included, and a 10kOhm resistor is used to pull down PH3 to ensure Nanosleeper boots properly. Two onboard LEDs are attached to D12 and D13. There is no crystal oscillator attached to the microcontroller since an external RTC is used. Two I2C buses are available. I2C1 is attached to the external RTC and SCL1 and SDA1 are always pulled up to the 1.8V rail. I2C3 is routed to the external pin header, and SCL3 and SDA3 are pulled up to switched power (controlled by the POW_CTRL pin),

The external RTC section is also simple. The RC-3028-C7 RTC module is connected to I2C1, and the INT interrupt output pin is mapped back to a wakeup pin on the microcontroller which can wake it from even the deepest sleep mode (shutdown).

Because the goal of Nanosleeper is to achieve the lowest power performance, it operates at 1.8V. Unfortunately, the STM32L4 cannot run USB at 1.8V, so the USB connector on Nanosleeper has no data abilities. However, the power from USB can be used to power Nanosleeper. A dual diode is used to determine if Nanosleeper operates on battery or USB power. The TPS7A02 voltage regulator supports input voltage up to 6V, so 3V coin cells or rechargeable lithium ion, lithium polymer, or lithium iron phosphate batteries are all acceptable to be used with Nanosleeper

The least obvious feature of Nanosleeper is its switched power output. External sensors can be connected to the switched power and I2C3, and consume no power at all if Nanosleeper needs to enter deep sleep.

Discussions