ESP32 vs nRF52840: Which Platform?

Two microcontroller platforms dominate the LoRa mesh hardware landscape: Espressif's ESP32 family and Nordic Semiconductor's nRF52840. Both are capable, both are well-supported by Meshtastic and MeshCore firmware, and both commonly pair with the SX1262 (and related Semtech LoRa transceivers such as the SX1276/SX1268/LLCC68). But they are optimized for fundamentally different use cases, and choosing the wrong one has real consequences.

Platform Comparison at a Glance

Feature ESP32 / ESP32-S3 nRF52840
Manufacturer Espressif Systems Nordic Semiconductor
CPU cores Dual-core Xtensa LX6/LX7 (ESP32-S3) Single-core ARM Cortex-M4F
CPU speed 240 MHz 64 MHz
RAM 512 KB SRAM on ESP32-S3 (classic ESP32 has 520 KB); + external PSRAM on some boards 256 KB SRAM
Flash Typically 4 - 16 MB (external) 1 MB internal (+ optional external)
WiFi Yes (2.4 GHz 802.11 b/g/n) No
Bluetooth BLE 5.0 BLE 5.0 + Bluetooth Mesh
Active current (typical, approximate) 80 - 240 mA 10 - 20 mA
Deep sleep current 10 - 150 µA (varies by variant) ~0.4 µA (System OFF, no RAM retention) up to ~8 µA (with RAM retention / wake sources)
Supply voltage 3.0 - 3.6V 1.7 - 5.5V (natively tolerant)
Operating temp range -40°C to +85°C -40°C to +85°C
Hardware crypto AES accelerator, SHA accelerator CryptoCell-310 crypto accelerator (not Cortex-M33 TrustZone-M)
USB native Yes (ESP32-S3, -S2, -C3) Yes

Figures above are approximate typical ranges, not single datasheet values; cite per-mode datasheet figures where precision matters. Per Nordic, the nRF52840 draws ~4.8 mA peak in TX (0 dBm), ~4.6 mA peak in RX, and ~52 µA/MHz running from flash; its System OFF floor is ~0.4 µA (no RAM retention) and ~1.5 µA in System ON with wake-on-RTC. The ESP32-S3 and nRF52840 are both rated -40 to +85 °C per their respective datasheets.

Power Consumption: The Real Numbers

For battery-powered mesh nodes, power consumption is frequently the deciding factor. Here are approximate figures for a LoRa mesh node in active listening mode (radio on, MCU active, no WiFi). Exact values depend heavily on board design and firmware sleep strategy:

Condition ESP32-S3 nRF52840 Factor Difference
Active (CPU + radio RX) 80 - 120 mA 15 - 20 mA nRF52840 uses ~5 - 6x less
Light sleep (radio on) 2 - 5 mA (approx., firmware-dependent) 0.5 - 1 mA (approx., firmware-dependent) nRF52840 uses ~4x less
Deep sleep (radio off) 10 - 100 µA ~0.4 - 8 µA nRF52840 uses ~10 - 50x less
Transmit (100 mW / +20 dBm) ~120 - 160 mA peak ~120 - 150 mA peak Similar (dominated by SX1262 PA current)

Note on transmit current: LoRa TX draw is dominated by the SX1262 power amplifier, which draws ~118 mA at +22 dBm and ~45 mA at +14 dBm per the Semtech datasheet (the RAK4631 module measures ~125 mA at +20 dBm). With MCU overhead, a node transmitting at +20-22 dBm draws roughly 120-160 mA total — not the 350-500 mA sometimes quoted, which reflect WiFi TX bursts rather than LoRa.

Practical implication (illustrative estimate): A node that spends 95% of its time in light sleep will consume roughly 3 - 5 mA on ESP32-S3 vs 0.6 - 1 mA on nRF52840. On a 2000 mAh 18650 cell, that is approximately:

This 4 - 5x difference is why nRF52840 is the correct choice for battery-powered or solar nodes, and the ESP32 is acceptable only when AC power is available.

Sleep Modes Explained

ESP32 Sleep Modes

Key limitation: the ESP32's sleep modes interact poorly with external peripherals. Bringing WiFi up from deep sleep takes 200 - 400 ms - during which messages can be missed.

nRF52840 Sleep Modes

The nRF52840's architecture allows the BLE radio and application code to be active simultaneously in time-division, with very efficient power management built into the SoftDevice BLE stack.

WiFi: ESP32's Biggest Advantage

The ESP32's integrated 802.11 WiFi is a genuine capability that the nRF52840 lacks entirely. This matters for:

If your deployment scenario requires WiFi connectivity from the node itself - for example, a Meshtastic MQTT gateway or a node that serves as both a mesh device and a WiFi access point - the ESP32 is the better choice.

BLE Capabilities

Both platforms support BLE 5.0 and use it for phone-to-node configuration and message viewing via the Meshtastic and MeshCore apps. In practice, BLE performance is similar between the platforms. The nRF52840 additionally supports Bluetooth Mesh natively, but this is not used in current Meshtastic/MeshCore deployments.

Community and Software Support

Criterion ESP32 nRF52840
Meshtastic support Excellent - most boards are ESP32 Excellent - RAK4631, T-Echo, Station G2 all supported
MeshCore support Good - T-Beam Supreme, Heltec V3 supported Excellent - RAK4631 is the primary MeshCore platform
Community size Larger overall (ESP32 dominates maker ecosystem) Smaller but highly technical
Documentation quality Extensive (Arduino, ESP-IDF, PlatformIO) Good (Zephyr RTOS, Nordic SDK, Arduino)
Custom firmware development Easier (Arduino IDE widely used) Requires more expertise (Zephyr preferred)

Decision Guide


Revision #3
Created 2026-05-03 05:37:48 UTC by Mesh America Admin
Updated 2026-06-09 16:03:01 UTC by Mesh America Admin