Skip to main content

ESP-NOW Pairing Issues

Peer Not Found

SymptomFix
Delivery CB shows failWrong MAC — print with WiFi.macAddress()
Pairing succeeds, no dataBoth devices must be on same WiFi channel
Works then failsPeer list full (max 20). Remove unused with esp_now_del_peer()
One direction onlyBoth devices must add each other as peer

MAC Address

Print MAC correctly (6 bytes, hex):

uint8_t mac[6];
WiFi.macAddress(mac);
Serial.printf("%02X:%02X:%02X:%02X:%02X:%02X\n",
mac[0],mac[1],mac[2],mac[3],mac[4],mac[5]);

Channel

  • Without WiFi: default channel 1
  • With WiFi AP: same channel as AP
  • Different channels = no communication
  • Force: esp_wifi_set_channel(1, WIFI_SECOND_CHAN_NONE);

Power Saving

  • ESP-NOW fails when peer is in sleep
  • Disable: WiFi.setSleep(false);
  • Or wake peer with GPIO interrupt before sending
Still stuck?

Post your issue on the Community Forum with your device model, what you tried, and a photo of your setup.