Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
.claude/skills/a5c-ai-power-profiler/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -13% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 11% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 75% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 187% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 52% | 0% |
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.
The Power Profiler skill enables comprehensive power analysis for embedded systems, supporting:
Configure and calibrate power measurement hardware:
javascript// 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' };
Analyze power consumption across different operating states:
markdown## 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)
Identify and analyze power state transitions:
Break down power consumption by peripheral:
markdown## 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% |
Calculate expected battery life for various usage scenarios:
javascript// 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
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 | 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 |
bash# 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
bash# 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
bash# 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
The skill generates comprehensive power analysis reports including:
json{ "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" ] }
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 |
low-power-design.js - Low-power design implementation processpower-consumption-profiling.js - Full power profiling workflow| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 45,932 | 27,816 | -39% | 1 | 1 | 0% | 7,899 | 6,886 | -13% | 0 | 0 | — |
case-02 | fail→fail | 31,004 | 28,454 | -8% | 1 | 1 | 0% | 5,455 | 7,748 | +42% | 0 | 0 | — |
case-03 | fail→pass | 29,244 | 3,722 | -87% | 1 | 1 | 0% | 2,264 | 2,503 | +11% | 0 | 0 | — |
case-04 | pass→pass | 9,443 | 4,429 | -53% | 1 | 1 | 0% | 1,698 | 2,747 | +62% | 0 | 0 | — |
case-05 | pass→pass | 16,589 | 17,440 | +5% | 1 | 1 | 0% | 2,933 | 6,009 | +105% | 0 | 0 | — |
case-06 | fail→pass | 13,983 | 14,880 | +6% | 1 | 1 | 0% | 2,965 | 5,192 | +75% | 0 | 0 | — |
case-07 | fail→fail | 21,138 | 16,496 | -22% | 1 | 1 | 0% | 3,483 | 5,718 | +64% | 0 | 0 | — |
case-08 | fail→pass | 5,521 | 3,350 | -39% | 1 | 1 | 0% | 841 | 2,416 | +187% | 0 | 0 | — |
case-09 | fail→pass | 17,661 | 19,061 | +8% | 1 | 1 | 0% | 3,062 | 4,646 | +52% | 0 | 0 | — |
case-10 | pass→pass | 13,923 | 11,661 | -16% | 1 | 1 | 0% | 1,853 | 3,845 | +108% | 0 | 0 | — |
case-11 | pass→pass | 18,404 | 14,114 | -23% | 1 | 1 | 0% | 2,531 | 4,251 | +68% | 0 | 0 | — |
case-12 | fail→pass | 17,653 | 2,774 | -84% | 1 | 1 | 0% | 2,788 | 2,376 | -15% | 0 | 0 | — |
case-13 | fail→fail | 30,362 | 22,773 | -25% | 1 | 1 | 0% | 4,742 | 5,459 | +15% | 0 | 0 | — |
case-14 | pass→pass | 18,936 | 13,620 | -28% | 1 | 1 | 0% | 2,518 | 3,883 | +54% | 0 | 0 | — |
case-15 | fail→pass | 10,886 | 2,482 | -77% | 1 | 1 | 0% | 1,598 | 2,272 | +42% | 0 | 0 | — |
case-16 | pass→pass | 13,655 | 12,685 | -7% | 1 | 1 | 0% | 1,813 | 3,857 | +113% | 0 | 0 | — |
case-17 | fail→pass | 6,041 | 3,464 | -43% | 1 | 1 | 0% | 1,149 | 2,447 | +113% | 0 | 0 | — |
case-18 | fail→pass | 8,659 | 3,372 | -61% | 1 | 1 | 0% | 1,396 | 2,387 | +71% | 0 | 0 | — |
case-19 | fail→pass | 16,080 | 13,854 | -14% | 1 | 1 | 0% | 2,599 | 4,355 | +68% | 0 | 0 | — |
case-20 | pass→pass | 29,502 | 29,217 | -1% | 1 | 1 | 0% | 4,710 | 7,793 | +65% | 0 | 0 | — |
case-21 | pass→pass | 42,817 | 49,014 | +14% | 1 | 1 | 0% | 6,879 | 10,201 | +48% | 0 | 0 | — |
case-22 | pass→pass | 23,834 | 29,340 | +23% | 1 | 1 | 0% | 3,711 | 7,203 | +94% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +45 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.