What Is ESP-NOW? Wiring and Errors (2026)

What Is ESP-NOW? Wiring and Errors (2026)

ESP-NOW is Espressif's own wireless protocol for the ESP32/ESP8266 — no WiFi router, no handshake, no pairing. It's direct peer-to-peer over 2.4GHz, so two ESP32s just talk to each other like walkie-talkies: you set the other board's MAC address, fire a packet, done.

Quick answer: ESP-NOW skips the router entirely for sub-millisecond, low-overhead peer-to-peer messaging between ESP32/ESP8266 boards — up to 250 bytes per packet. It's connectionless and best-effort: the sender gets an ack callback saying delivered or not, with no automatic retransmission, which is fine for sensor readings sent at a few Hz.

Proof of work: the explanation and code below are Soldr's actual answer to "What is ESP-NOW and how do I use it?", asked through Compoden's AI build assistant on 11 August 2026. Published 11 August 2026 · Last updated 11 August 2026.

Soldr's answer explaining ESP-NOW: peer-to-peer over 2.4GHz, why you'd use it over plain WiFi, and a receiver callback sketch
Soldr's build log answering "What is ESP-NOW and how do I use it?" — the five reasons to use it over plain WiFi and a receiver-side sketch generated in the same session.

Why would you use ESP-NOW instead of plain WiFi?

Five real reasons, all from the same session's answer: sub-millisecond latency, good for remote control and robot control; tiny overhead, since there's no TCP/IP stack involved, which sips power for battery nodes; a 250-byte max payload, perfect for sensor readings rather than streaming; any-to-any addressing, where one sender can broadcast to many receivers or address a specific peer by MAC; and it works on every ESP32 and ESP8266 — not Pico, Arduino Uno, or Raspberry Pi, since it's Espressif silicon only.

ESP-NOW at a glance
Property Value
Range Direct peer-to-peer, no router
Max payload 250 bytes per packet
Delivery Best-effort — ack callback, no automatic retransmission
Supported chips ESP32 and ESP8266 only
Addressing By MAC address; broadcast or specific peer

How do you receive an ESP-NOW packet on an ESP32?

This is the receiver-side code from Soldr's session — you register a callback that fires whenever a packet arrives:

#include <esp_now.h>
#include <WiFi.h>

void onData(const uint8_t *mac, const uint8_t *data, int len) {
  int temp = 0;
  memcpy(&temp, data, len);
  Serial.println("[DATA] temp=" + String(temp)); // prints every second
}

void setup() {
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  esp_now_init();
}

Captured verbatim from the session's Firmware tab — this is the receiver half; the matching sender sketch (which packs and sends the same struct) wasn't visible in the captured window, so it isn't reproduced here rather than guessed at. To get a board's MAC address for pairing, run WiFi.mode(WIFI_STA); Serial.println(WiFi.macAddress()); once and paste the printed address into the sender. You'll want two boards: one flashed as sender, one as receiver.

Why does my ESP-NOW packet never arrive?

The most common cause is a wrong or stale MAC address on the sender's peer list — ESP-NOW addresses peers explicitly, so if the receiver's MAC changed (a different board, or a re-flash that changed WiFi mode timing) the sender is quietly sending into the void. Re-print the receiver's MAC and re-paste it into the sender any time you swap boards, rather than assuming it stayed the same. Because ESP-NOW is best-effort with no retransmission, a dropped packet here and there is also just normal — the ack callback tells you delivered-or-not per packet, so build your application logic to tolerate the occasional miss rather than assuming perfect delivery.

What do you need to try this yourself?

Two ESP32 30-Pin Development Boards (CP2102, WiFi/Bluetooth) (Rs.400 each, Rs.800 for the pair) — one flashed as sender, one as receiver. No router, no extra radio module needed.

Frequently asked questions

ESP-NOW ke liye WiFi router chahiye kya?

Nahi - ESP-NOW router ke bina hi kaam karta hai. Do ESP32 boards seedha ek dusre se 2.4GHz par baat karte hain, bina kisi network se connect hue. Isliye yeh remote control ya sensor-to-sensor links ke liye WiFi se zyada fast aur simple hai.

Does ESP-NOW work on an Arduino Uno or Raspberry Pi?

No - ESP-NOW is Espressif's own protocol, built into the ESP32 and ESP8266 WiFi radio hardware. It does not work on an Arduino Uno, Raspberry Pi, or any board without Espressif silicon, since there's no equivalent radio feature to run it on.

What is the price of two ESP32 boards for an ESP-NOW pair in India?

Two ESP32 30-Pin Development Boards (CP2102, WiFi/Bluetooth) cost Rs.800 total (Rs.400 each) at Compoden, with cash on delivery available across India - one sender, one receiver. Prices checked 11 August 2026.

Is ESP-NOW reliable enough for critical data?

Not on its own - it's connectionless and best-effort, meaning a packet can be dropped with no automatic retry. For sensor readings sent every second or so, an occasional miss rarely matters. For anything critical, add your own acknowledgement and retry logic on top of the ack callback ESP-NOW already gives you.

Back to blog