esp32 ESP-NOW

Getting Started with ESP-NOW (ESP32 with Arduino IDE)


Explore the utilization of ESP-NOW to facilitate data exchange between ESP32 boards programmed using the Arduino IDE. ESP-NOW, developed by Espressif, is a connectionless communication protocol renowned for its efficient short packet transmission. This protocol empowers seamless communication among multiple devices, offering a straightforward method for devices to communicate with one another.

Introducing ESP-NOW

Stating the Espressif website, ESP-NOW is a “protocol developed by Espressif, which enables multiple devices to communicate with one another without using Wi-Fi. The protocol is similar to the low-power 2.4GHz wireless connectivity (…) . The pairing between devices is needed prior to their communication. After the pairing is done, the connection is safe and peer-to-peer, with no handshake being required.”

This implies that once devices are paired, the connection persists. In simpler terms, if one of your boards experiences a power loss or resets, upon restarting, it will automatically re-establish the connection with its peer to resume communication.

ESP-NOW offers the following capabilities:

  1. Unicast communication with support for both encrypted and unencrypted transmissions.
  2. Compatibility for mixed encrypted and unencrypted peer devices.
  3. Payload capacity of up to 250 bytes.
  4. Configurable sending callback function to notify the application layer of the success or failure of the transmission.


ESP-NOW technology does have certain limitations:

  1. Limited encrypted peers: In Station mode, it supports a maximum of 10 encrypted peers, and in SoftAP or SoftAP + Station mode, the maximum is 6.
  2. Support for multiple unencrypted peers, but their total count should be less than 20, including encrypted peers.
  3. Payload size is restricted to 250 bytes.


In straightforward terms, ESP-NOW is a swift communication protocol designed for exchanging concise messages (up to 250 bytes) between ESP32 boards.

ESP-NOW is highly versatile, allowing for both one-way and two-way communication in various configurations.

ESP-NOW One-Way Communication


In the context of one-way communication, consider scenarios such as:

  • Sending data from one ESP32 board to another ESP32 board.

This setup is straightforward to implement and is particularly useful for transmitting data like sensor readings or issuing ON and OFF commands to control GPIOs between boards.


In a “master-slave” configuration, a central ESP32, acting as the master, transmits data to multiple ESP32 devices functioning as slaves.


In this setup, a single ESP32 board can transmit identical or distinct commands to various ESP32 boards. This configuration is well-suited for creating applications such as a remote control. It allows for the control of multiple ESP32 boards positioned throughout a house, all managed by a central ESP32 board.

In this scenario, an ESP32 configured as a “slave” is capable of receiving data from multiple ESP32 devices acting as “masters”.


This arrangement is optimal for aggregating data from multiple sensor nodes into a single ESP32 board. The ESP32 configured as a web server can display data collected from all the other boards.

ESP-NOW Two-Way Communication


ESP-NOW allows each board to function as both a sender and a receiver simultaneously, enabling two-way communication between boards. For instance, you can establish a scenario where two boards communicate with each other bidirectionally.


In essence, ESP-NOW is well-suited for constructing a network where multiple ESP32 boards can seamlessly exchange data with each other.

    Leave a Reply

    Your email address will not be published.

    Need Help?