---
title: "Calculates Meshtastic node power consumption and battery runtime using device-specific power profiles and firmware role-based duty cycling. Models sleep, RX, and TX current draw for Heltec V3, RAK WisBlock, T-Beam, T-Beam Supreme, and Station G2 with GPS, BLE, and display peripheral toggles. Role selection (client, router, repeater, client_muted) controls the duty cycle model: routers stay in RX mode continuously while clients sleep between events. Returns average current, runtime in hours/days, daily Wh consumption, and time distribution across TX/RX/sleep states. Feed daily_wh to solar_sizing for off-grid planning."
method: POST
path: "/api/meshtastic_power"
tags: ["mesh"]
---

# Calculates Meshtastic node power consumption and battery runtime using device-specific power profiles and firmware role-based duty cycling. Models sleep, RX, and TX current draw for Heltec V3, RAK WisBlock, T-Beam, T-Beam Supreme, and Station G2 with GPS, BLE, and display peripheral toggles. Role selection (client, router, repeater, client_muted) controls the duty cycle model: routers stay in RX mode continuously while clients sleep between events. Returns average current, runtime in hours/days, daily Wh consumption, and time distribution across TX/RX/sleep states. Feed daily_wh to solar_sizing for off-grid planning.

`POST /api/meshtastic_power`

## Request

- Base URL: `https://calc.engineer`
- URL: `https://calc.engineer/api/meshtastic_power`
- Auth: none declared

## Request body

- object
  - `device` 'heltec_v3' | 'rak_wisblock' | 'tbeam' | 'tbeam_supreme' | 'station_g2' | 'custom': Meshtastic hardware device. Selects power consumption profile for sleep, RX, TX, GPS, and BLE.
  - `channel_preset` 'long_fast' | 'long_moderate' | 'long_slow' | 'very_long_slow' | 'medium_fast' | 'medium_slow' | 'short_fast' | 'short_slow': Meshtastic channel preset. Affects TX airtime per message and thus power consumption.
  - `battery_mah` number: Battery capacity in milliamp-hours. Common: 1100 (18650 min), 3000 (typical), 6000 (large).
  - `battery_voltage` number: Nominal battery voltage. 3.7V for single-cell LiPo/Li-ion, 7.4V for 2S packs.
  - `messages_per_hour` number: Expected messages sent and received per hour. Includes both TX and RX message events.
  - `gps_enabled` boolean: Whether GPS is enabled. Significantly increases power draw on devices with built-in GPS.
  - `bluetooth_enabled` boolean: Whether Bluetooth is enabled for phone connection.
  - `role` 'client' | 'router' | 'repeater' | 'client_muted': Meshtastic node role. client: sleeps between events. router: always listening. repeater: always listening, no display/BLE. client_muted: aggressive sleep.

## Response `200`

Computed result for meshtastic_power

- object
  - `result` object, required
    - `avg_current_ma` number, required: Estimated average current draw in milliamps.
    - `runtime_hours` number, required: Estimated battery runtime in hours.
    - `runtime_days` number, required: Estimated battery runtime in days.
    - `daily_wh` number, required: Estimated daily energy consumption in watt-hours.
    - `tx_time_pct` number, required: Percentage of time spent transmitting.
    - `rx_time_pct` number, required: Percentage of time spent in receive mode (radio listening).
    - `sleep_time_pct` number, required: Percentage of time spent in sleep/low-power mode.
  - `tool` string, required
  - `version` string, required
  - `computed_at` string, date-time, required
  - `chain` object, required
    - `feeds` unknown[]
      - unknown
    - `accepts_from` unknown[]
      - unknown

## Other responses

- `400`: Validation error or invalid JSON
- `404`: Tool not found

---

[API](https://skmtc.dev/calc/apis/calc-engineer-api.md) · [All operations](https://skmtc.dev/calc/apis/calc-engineer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/calc/apis/calc-engineer-api/revisions/8830480ec488?raw)
