ESP-NOW: Espressif's Fast Short-Range Wireless Protocol
What is ESP-NOW? How it works, when it arrived, whether it can support person-to-person chat, and how it compares to Semtech's LoRa.
Going to flasher.meshcore.dev I noticed a new logo next to the lilygo-t-display-pro: — right where we’d normally see the LoRa logo:
. Oh my, more confusing technology. Let’s dig in!
As it turns out ESP-NOW is a proprietary wireless communication protocol developed by Espressif Systems — the Chinese semiconductor company behind the ESP8266 and ESP32 microcontrollers that power the majority of MeshCore and Meshtastic mesh radio nodes. If you own a LoRa radio running MeshCore, there is a good chance the ESP32 inside it also speaks ESP-NOW.
A Little History
Espressif introduced ESP-NOW around 2015 (though articles on it showed up in 2013) as part of the ESP8266 SDK. The goal was simple: let ESP microcontrollers talk directly to each other without the overhead of a full Wi-Fi connection. As the ESP32 became the dominant successor chip, ESP-NOW carried over and gained more features — optional AES-128 encryption, simultaneous Wi-Fi coexistence, and support for the newer ESP32-S, -C, and -H series.
Unlike Wi-Fi or Bluetooth, ESP-NOW was never positioned as a consumer product. There is no phone app, no router you pair it with, and no cloud service to sign up for. It is a low-level radio protocol for engineers and makers building IoT devices.
How it Works
ESP-NOW strips the traditional OSI networking model down to a single layer — the data-link layer (Layer 2). There is no IP addressing, no TCP handshake, no DNS lookup. Devices communicate directly using MAC addresses, the hardware identifiers burned into every Espressif chip at the factory.

| Spec | Value |
|---|---|
| Frequency | 2.4 GHz (same band as Wi-Fi & Bluetooth) |
| Range | ~200–220 m in open air (less indoors) |
| Max packet size | 250 bytes |
| Latency | < 10 ms |
| Max peers | 20 (unencrypted) / 10 (encrypted) |
| Encryption | Optional AES-128 |
| Power | Ultra-low — device can sleep, wake, send, and sleep again |
| Router needed? | No |
| Co-exists with Wi-Fi? | Yes (same channel required) |
Before a device can send, it registers the target’s MAC address as a peer. Once registered, data fires instantly — no connection negotiation, no pairing ceremony. You can configure one-to-one, one-to-many (broadcast), or many-to-many topologies.
Does it Form a True Mesh?
Here is where ESP-NOW and protocols like MeshCore or Meshtastic diverge sharply.
ESP-NOW supports multi-device topologies, but it does not provide automatic multi-hop routing. There are no relay nodes, no packet-forwarding protocol, and no route discovery. A message sent from Node A can only reach nodes that are within direct radio range of Node A. To bridge longer distances, you have to build your own forwarding logic in application code — and the 20-peer ceiling means large networks require careful design.
MeshCore, by contrast, has dedicated repeater nodes that automatically learn and cache routes. A message from a radio on south Vashon can reach a radio on the north end via one or more repeaters — completely automatically, with path-based routing, across potentially dozens of hops.
| Feature | ESP-NOW | MeshCore | Meshtastic |
|---|---|---|---|
| Radio band | 2.4 GHz Wi-Fi | 915 MHz LoRa | 915 MHz LoRa |
| Range node-to-node | ~200 m | 1–10+ mi | 1–10+ mi |
| Automatic multi-hop routing | ❌ No | ✅ Yes (path-based) | ✅ Yes (flood) |
| Dedicated relay nodes | ❌ No | ✅ Repeaters | ⚠️ Configurable |
| Packet size | 250 bytes | 131–200 chars | 240 chars |
| Encryption | Optional AES-128 | ed25519 + AES128 | AES-256 |
| Works without infrastructure | ✅ Yes | ✅ Yes | ✅ Yes |
| Chat app ecosystem | ❌ None | ✅ MeshCore app | ✅ Meshtastic app |
Can it be Used for Person-to-Person Chat?
Technically, you could write a chat application on top of ESP-NOW — the 250-byte packet limit is workable (similar to MeshCore’s message length), and the latency is excellent. But in practice, ESP-NOW is not a chat technology:
- Range is the killer: 200 meters is a single city block. There is no way to relay messages across Vashon Island or even across a large property without custom relay code.
- No app ecosystem: No smartphone app lets you type a message and send it over ESP-NOW. You would have to build everything from scratch.
- Peer registration is manual: You must hard-code or programmatically register every device you want to talk to. There is no “broadcast to everyone” discovery layer.
ESP-NOW’s sweet spot is home automation and IoT sensor networks — a coin-cell wireless light switch that responds in 150 ms, a network of soil-moisture sensors reporting to a central hub, or a toy robot controller with millisecond latency. Espressif’s own showcase examples are a coin-cell switch and a toy-car remote control, not a community messaging system.
Is it Espressif’s Answer to Semtech’s LoRa?
No — they solve very different problems.
Semtech’s LoRa uses sub-GHz radio (915 MHz in North America) with a proprietary spread-spectrum modulation that trades data rate for extraordinary range. A single LoRa packet can travel 10+ miles across open water or several miles in an urban environment on milliwatts of transmit power.
ESP-NOW uses 2.4 GHz, the crowded band shared with Wi-Fi, Bluetooth, microwave ovens, and baby monitors. Its range tops out around 200–220 meters in ideal conditions — roughly 1/50th the range of LoRa.
| ESP-NOW | LoRa | |
|---|---|---|
| Frequency | 2.4 GHz | 902–928 MHz (US) |
| Range | ~200 m | 1–15+ mi |
| Data rate | Up to ~1 Mbps effective | 0.3–50 Kbps |
| Packet size | 250 bytes | ~50–255 bytes |
| Multi-hop mesh | No (manual) | Yes (MeshCore, Meshtastic) |
| Target use case | Local IoT, home automation | Long-range community mesh |
| Chip manufacturer | Espressif | Semtech SX1262 / LR2021 |
They are complementary, not competing. Some advanced builders use ESP-NOW for the local cluster (e.g., sensors inside a house) while LoRa handles the long-range backbone to the wider network. The ESP32 chip even supports running both protocols simultaneously — ESP-NOW for local device chatter, Wi-Fi for internet uplink.
Bridging ESP-NOW to the Internet: MicroPython + Wi-Fi + MQTT
One compelling pattern that shows ESP-NOW’s real-world utility is the ESP-NOW → Wi-Fi → MQTT gateway. Don Luc at donskytech.com documented exactly this experiment: a cluster of battery-powered ESP32 sensors communicates locally over ESP-NOW (no Wi-Fi radio running, so they stay in deep sleep most of the time), and a single always-on gateway ESP32 bridges their data onto the home Wi-Fi network and forwards it to an MQTT broker — from there it can flow to Home Assistant, Node-RED, the cloud, or any other service.
What does this accomplish?
- Sensors use no Wi-Fi — they avoid the 100–300 ms Wi-Fi association delay and the ~150 mA Wi-Fi radio draw. Instead they wake, fire a 250-byte ESP-NOW packet in < 10 ms, and go back to deep sleep.
- Gateway does the heavy lifting — only one device maintains a persistent Wi-Fi connection, forwarding all sensor traffic onward.
- MicroPython makes it accessible — the experiment runs on standard ESP32 boards using Python, not C/C++, lowering the barrier for makers.
- MQTT is the glue — once data is on an MQTT broker it integrates with virtually any home-automation or industrial monitoring platform.
This is a practical demonstration of ESP-NOW’s strength: ultra-efficient local communication that offloads internet connectivity to a single gateway node.
📖 ESP-NOW in MicroPython with WiFi and MQTT (donskytech.com) ↗
The MeshCore Connection
This is worth noting for VashonMesh members: nearly every LoRa radio running MeshCore contains an ESP32 or nRF52840 microcontroller. The ESP32-based devices — like the Heltec Vision Master E290, RAK WisBlock ESP32 modules, and many others — already have ESP-NOW capability built into the chip. It is not currently used by MeshCore firmware, but it is there.
There is nothing today that bridges ESP-NOW to MeshCore’s LoRa network, but the hardware already supports it — interesting territory for future experimentation.
Summary
ESP-NOW is a clever, ultra-low power, short-range wireless protocol built into every Espressif chip. It first appeared around 2015 and has been widely adopted for smart-home gadgets, remote controls, and sensor networks. It is not a community mesh networking tool — it lacks multi-hop routing, chat apps, and the range needed for outdoor community use. It is also not a LoRa competitor — LoRa trades data rate for extraordinary distance, while ESP-NOW trades range for speed and simplicity. Think of ESP-NOW as the plumbing inside your smart home, and LoRa as the radio link connecting neighborhoods.