ESP-NOW Pairing Issues
Peer Not Found
| Symptom | Fix |
|---|---|
| Delivery CB shows fail | Wrong MAC — print with WiFi.macAddress() |
| Pairing succeeds, no data | Both devices must be on same WiFi channel |
| Works then fails | Peer list full (max 20). Remove unused with esp_now_del_peer() |
| One direction only | Both 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.