# Low Power Embedded

> Low-power embedded skill for sleep modes and energy optimization. Use when configuring MCU sleep/stop/standby, peripheral clock gating, wake-up sources, or measuring firmware current draw. Activates on queries about WFI, STOP mode, STM32 PWR, nRF sleep, wake-up EXTI, or reducing embedded power consumption.

- **Type:** Skill
- **Install:** `agentstack add skill-mohitmishra786-low-level-dev-skills-low-power-embedded`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [mohitmishra786](https://agentstack.voostack.com/s/mohitmishra786)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [mohitmishra786](https://github.com/mohitmishra786)
- **Source:** https://github.com/mohitmishra786/low-level-dev-skills/tree/main/skills/baremetal/low-power-embedded
- **Website:** https://www.lowleveldevskills.com

## Install

```sh
agentstack add skill-mohitmishra786-low-level-dev-skills-low-power-embedded
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Low-Power Embedded

## Purpose

Guide agents through MCU low-power modes: sleep vs deep sleep (stop/standby), peripheral and bus clock gating, wake-up source configuration, and practical current measurement — with Cortex-M `WFI`/`WFE` and vendor PWR examples (STM32-focused patterns apply broadly).

## When to Use

- Battery-powered firmware missing power budget
- Wake-up latency vs consumption tradeoffs
- Debugging "device won't wake" or "current still mA in sleep"
- Before shipping RTOS idle hook or bare-metal main loop sleep
- Cross-linking with `skills/baremetal/interrupts-and-exceptions-baremetal`

## Workflow

### 1. Power mode hierarchy (STM32-style)

| Mode | CPU | Peripherals | RAM | Wake source | Relative current |
|------|-----|-------------|-----|-------------|------------------|
| Run | on | on | on | — | highest |
| Sleep | off | on | on | any IRQ | medium |
| Stop | off | most off | on | EXTI, RTC, UART | low |
| Standby | off | off | lost* | WKUP pins, RTC | lowest |

\* Standby clears most SRAM; use backup domain or external EEPROM for state.

### 2. Enter Sleep (WFI)

```c
/* Cortex-M — sleep until interrupt */
__disable_irq();
/* configure wake source (e.g. EXTI, RTC alarm) */
__enable_irq();
__WFI(); /* or __WFE() for event-based wake */
```

Ensure pending interrupts are cleared before `WFI` or wake may be immediate.

### 3. STM32 Stop mode pattern

```c
#include "stm32f4xx.h"

void enter_stop_mode(void)
{
    /* Gate clocks you do not need */
    RCC->AHB1ENR &= ~RCC_AHB1ENR_GPIOAEN; /* example — only if safe */

    PWR->CR |= PWR_CR_CWUF;   /* clear wake flags */
    PWR->CR |= PWR_CR_PDDS;   /* deep sleep = Stop */
    SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;

    __WFI();

    /* After wake: re-enable HSE/PLL — clocks lost in Stop on many parts */
    SystemInit();
}
```

After Stop, re-init clocks and peripherals that lost their registers.

### 4. Clock gating checklist

```
Before sleep
├── Disable unused peripheral clocks (RCC xENR)
├── Disable ADC/DAC continuous modes
├── Stop DMA channels
├── Enter peripheral low-power (UART mute, SPI off)
└── Configure lowest viable regulator scale (Voltage Scale 2/3)
```

### 5. Wake-up sources

| Source | Config |
|--------|--------|
| EXTI GPIO | SYSCFG + EXTI IMR, edge trigger |
| RTC alarm | RTC WUT/WAKEUP |
| UART | Start bit detection (some MCUs) |
| IWDG | Not a wake source — resets device |

### 6. Measurement tips

- Use ammeter in series with VDDA/VDD; short sampling window for uA
- DWT cycle counter for wake latency benchmarking
- Compare run vs sleep current **with same clock tree** documented

### 7. RTOS note

FreeRTOS `configUSE_TICKLESS_IDLE` maps to WFI/Stop — coordinate with `skills/embedded/freertos`.

### 8. Agent usage

```
/low-power-embedded Configure STM32 Stop mode with EXTI0 wake and PLL restore
```

## Common Problems

| Symptom | Cause | Fix |
|---------|-------|-----|
| Still mA in "sleep" | Debug interface active (SWD) | Disconnect debugger; disable DBGMCU |
| Immediate wake from WFI | Pending NVIC IRQ | Clear flags before WFI |
| Lost state after wake | Entered Standby not Stop | Use Stop if RAM must persist |
| UART dead after wake | Clock tree not restored | Call `SystemInit()` path |
| Higher than datasheet uA | Floating GPIO | Set unused pins analog or pull |

## Related Skills

- `skills/baremetal/interrupts-and-exceptions-baremetal` — EXTI wake IRQs
- `skills/baremetal/gpio-baremetal` — pin mode for leakage control
- `skills/baremetal/stm32-baremetal` — RCC and PWR registers
- `skills/baremetal/timers-pwm-baremetal` — stop timers before sleep
- `skills/embedded/freertos` — tickless idle integration

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [mohitmishra786](https://github.com/mohitmishra786)
- **Source:** [mohitmishra786/low-level-dev-skills](https://github.com/mohitmishra786/low-level-dev-skills)
- **License:** MIT
- **Homepage:** https://www.lowleveldevskills.com

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-mohitmishra786-low-level-dev-skills-low-power-embedded
- Seller: https://agentstack.voostack.com/s/mohitmishra786
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
