Agent Skills: Power Profiler Skill

Power consumption measurement and analysis expertise for embedded systems. Integrates with power analyzer tools to measure, profile, and optimize power consumption in battery-powered and energy-efficient designs.

UncategorizedID: a5c-ai/babysitter/power-profiler

Install this agent skill to your local

pnpm dlx add-skill https://github.com/a5c-ai/babysitter/tree/HEAD/plugins/babysitter/skills/babysit/process/specializations/embedded-systems/skills/power-profiler

Skill Files

Browse the full folder contents for power-profiler.

Download Skill

Loading file tree…

plugins/babysitter/skills/babysit/process/specializations/embedded-systems/skills/power-profiler/SKILL.md

Skill Metadata

Name
power-profiler
Description
Power consumption measurement and analysis expertise for embedded systems. Integrates with power analyzer tools to measure, profile, and optimize power consumption in battery-powered and energy-efficient designs.

Power Profiler Skill

Expert skill for power consumption measurement, analysis, and optimization in embedded systems. Provides integration with power analyzer tools and deep expertise in low-power design techniques.

Overview

The Power Profiler skill enables comprehensive power analysis for embedded systems, supporting:

  • Power analyzer tool integration (Otii Arc, Nordic PPK2, Joulescope)
  • Current measurement configuration and calibration
  • Power mode transition analysis
  • Battery life estimation calculations
  • Power profile comparison and trending
  • Peripheral power contribution analysis
  • Sleep mode leakage identification
  • Energy-per-operation measurements

Capabilities

1. Power Measurement Configuration

Configure and calibrate power measurement hardware:

// Example: Configure Otii Arc power analyzer
const powerConfig = {
  analyzer: 'otii-arc',
  sampleRate: 4000,        // Hz
  currentRange: 'auto',     // auto, low (uA), high (mA)
  voltageOutput: 3.3,       // Supply voltage
  triggerMode: 'gpio',      // gpio, serial, manual
  triggerPin: 'GPI1'
};

2. Power State Analysis

Analyze power consumption across different operating states:

## Power State Profile

| State | Current (avg) | Duration | Energy |
|-------|---------------|----------|--------|
| Active | 15.2 mA | 50 ms | 760 uJ |
| Processing | 45.3 mA | 10 ms | 453 uJ |
| Radio TX | 120 mA | 5 ms | 600 uJ |
| Sleep | 2.5 uA | 935 ms | 2.3 uJ |
| **Total Cycle** | - | 1000 ms | **1815.3 uJ** |

Average Current: 1.815 mA
Battery Life (1000 mAh): 551 hours (23 days)

3. Power Mode Transition Analysis

Identify and analyze power state transitions:

  • Wake-up latency measurement
  • Sleep entry timing
  • Transition energy overhead
  • Unexpected wake-up detection
  • Power state sequence verification

4. Peripheral Power Contribution

Break down power consumption by peripheral:

## Peripheral Power Breakdown

| Peripheral | Active Current | Sleep Current | Contribution |
|------------|----------------|---------------|--------------|
| MCU Core | 8.5 mA | 1.2 uA | 35% |
| Radio (BLE) | 6.2 mA | 0.5 uA | 25% |
| Sensors | 3.8 mA | 0.8 uA | 16% |
| Display | 4.2 mA | 0.1 uA | 17% |
| Other | 1.5 mA | 0.4 uA | 7% |

5. Battery Life Estimation

Calculate expected battery life for various usage scenarios:

// Battery life estimation parameters
const batteryEstimate = {
  batteryCapacity: 230,     // mAh (CR2032)
  dutyCycle: {
    activePeriod: 100,      // ms
    sleepPeriod: 9900,      // ms
    transmitCount: 1        // per cycle
  },
  currentProfile: {
    active: 15.0,           // mA
    sleep: 2.5,             // uA
    transmit: 120.0         // mA
  },
  derating: 0.85            // 85% capacity utilization
};

// Calculated: 2.3 years battery life

Process Integration

This skill integrates with the following processes:

| Process | Integration Point | |---------|-------------------| | power-consumption-profiling.js | Primary execution - all phases | | low-power-design.js | Measurement and validation phases | | real-time-performance-validation.js | Power budget verification |

Tool Integration

Supported Power Analyzers

| Tool | Features | Connection | |------|----------|------------| | Otii Arc | High precision, automation API | USB, REST API | | Nordic PPK2 | Source/ampere meter modes | USB, nRF Connect | | Joulescope | Real-time streaming, triggers | USB, Python API | | Keysight N6705C | Multi-channel, high accuracy | GPIB, USB, LAN | | Qoitech Otii | Cloud integration, sharing | USB, Otii Desktop |

Data Export Formats

  • CSV time-series data
  • JSON power profiles
  • PNG/SVG visualizations
  • Interactive HTML reports
  • Otii project files (.otii)
  • Joulescope capture files (.jls)

Workflow

1. Setup Measurement Environment

# Verify power analyzer connection
otii-cli device list

# Configure measurement parameters
otii-cli project create \
  --name "power-profile-$(date +%Y%m%d)" \
  --voltage 3.3 \
  --current-range auto

2. Capture Power Profile

# Start recording with GPIO trigger
otii-cli recording start \
  --trigger gpio:GPI1:rising \
  --duration 10s

# Or use serial trigger
otii-cli recording start \
  --trigger serial:START \
  --stop-trigger serial:STOP

3. Analyze Results

# Export measurement data
otii-cli recording export \
  --format csv \
  --output power-data.csv

# Generate statistics
otii-cli statistics \
  --markers state:active,state:sleep \
  --output stats.json

4. Generate Report

The skill generates comprehensive power analysis reports including:

  • Executive summary with key metrics
  • State-by-state power breakdown
  • Transition timing analysis
  • Battery life projections
  • Optimization recommendations
  • Comparison with targets/baselines

Output Schema

{
  "summary": {
    "averageCurrent_mA": 1.815,
    "peakCurrent_mA": 120.0,
    "sleepCurrent_uA": 2.5,
    "estimatedBatteryLife_hours": 551
  },
  "powerStates": [
    {
      "name": "active",
      "current_mA": 15.2,
      "duration_ms": 50,
      "energy_uJ": 760
    }
  ],
  "transitions": [
    {
      "from": "sleep",
      "to": "active",
      "latency_us": 125,
      "energy_uJ": 1.2
    }
  ],
  "peripheralBreakdown": {
    "mcu": { "active_mA": 8.5, "sleep_uA": 1.2 },
    "radio": { "active_mA": 6.2, "sleep_uA": 0.5 }
  },
  "recommendations": [
    "Reduce radio TX power by 3dB to save 15% energy",
    "Enable peripheral clock gating during sleep"
  ],
  "artifacts": [
    "power-profile.csv",
    "power-report.html",
    "waveform.png"
  ]
}

Best Practices

Measurement Setup

  • Use kelvin sense connections for accurate voltage measurement
  • Minimize wire length between analyzer and DUT
  • Ensure stable power supply to analyzer
  • Allow thermal stabilization before measurement

Calibration

  • Zero-offset calibration before each session
  • Verify measurement accuracy with known load
  • Document measurement uncertainty

Analysis

  • Use markers to identify power states
  • Compare against power budget requirements
  • Track power metrics across firmware versions
  • Document measurement conditions

References

  • Nordic PPK2 User Guide
  • Joulescope User Guide
  • Otii Arc Documentation
  • "Power Management for Internet of Things" - ARM
  • Low-Power Design Methodology Manual

MCP Server Integration

Compatible MCP servers for enhanced functionality:

| Server | Purpose | |--------|---------| | embedded-debugger-mcp | Coordinate debug probes with power measurement | | serial-mcp-server | Serial trigger synchronization | | tinymcp | Device state monitoring |

See Also

  • low-power-design.js - Low-power design implementation process
  • power-consumption-profiling.js - Full power profiling workflow
  • AG-006: Power Optimization Expert agent