-
Notifications
You must be signed in to change notification settings - Fork 7.7k
Closed
Labels
Area: LibrariesIssue is related to Library support.Issue is related to Library support.
Description
Board
ESP32 Dev Mod
Device Description
two Esp32 dev modules. using one as transmitter and one as receiver to transmit 6 Variables.
Hardware Configuration
they are both empty boards
Version
latest master (checkout manually)
IDE Name
Arduino IDE
Operating System
Windows 10
Flash frequency
80Mhz
PSRAM enabled
no
Upload speed
115200
Description
Transmitter Produces this prompt on loop when running.
Sent with success
Last Packet Send Status: Delivery Fail
Receiver Produces this prompt and nothing more
Receiver Setup Started
Receiver MAC Address: 00:00:00:00:00:00
ESP-NOW Initialized
Peer Added
Sketch
My transmitters Code
{
#include <esp_now.h>
#include <WiFi.h>
// Structure to send data
typedef struct struct_message {
int base;
int lowest;
int bottomMiddle;
int topMiddle;
int claw;
int wrist;
} struct_message;
// Create a struct_message to send data
struct_message myData;
// MAC Address of the receiver ESP32
uint8_t broadcastAddress[] = {0x10, 0x06, 0x1C, 0xB5, 0xAF, 0x96};
// Callback when data is sent
void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) {
Serial.print("Last Packet Send Status: ");
Serial.println(status == ESP_NOW_SEND_SUCCESS ? "Delivery Success" : "Delivery Fail");
}
void setup() {
// Initialize Serial Monitor
Serial.begin(115200);
Serial.println("Transmitter Setup Started"); // Debug message
// Print own MAC address
Serial.print("Transmitter MAC Address: ");
Serial.println(WiFi.macAddress()); // Print the transmitter's MAC address
// Set device as a Wi-Fi Station
WiFi.mode(WIFI_STA);
// Init ESP-NOW
if (esp_now_init() != ESP_OK) {
Serial.println("Error initializing ESP-NOW");
return;
}
Serial.println("ESP-NOW Initialized"); // Debug message
// Register the send callback
esp_now_register_send_cb(OnDataSent);
// Register the peer
esp_now_peer_info_t peerInfo;
memcpy(peerInfo.peer_addr, broadcastAddress, 6);
peerInfo.channel = 0;
peerInfo.encrypt = false;
// Add peer
if (esp_now_add_peer(&peerInfo) != ESP_OK) {
Serial.println("Failed to add peer");
return;
}
Serial.println("Peer Added"); // Debug message
// Initialize servo values
myData.base = 90;
myData.lowest = 90;
myData.bottomMiddle = 90;
myData.topMiddle = 90;
myData.claw = 90;
myData.wrist = 90;
}
void loop() {
// Send message via ESP-NOW
esp_err_t result = esp_now_send(broadcastAddress, (uint8_t *) &myData, sizeof(myData));
if (result == ESP_OK) {
Serial.println("Sent with success");
} else {
Serial.println("Error sending the data");
}
delay(100); // Minimal delay between sets of data
}
}
My receivers code
#include <esp_now.h>
#include <WiFi.h>
// Structure to receive data
typedef struct struct_message {
int base;
int lowest;
int bottomMiddle;
int topMiddle;
int claw;
int wrist;
} struct_message;
// Create a struct_message to hold the incoming data
struct_message incomingData;
// Callback when data is received
void OnDataRecv(const esp_now_recv_info *info, const uint8_t *data, int len) {
Serial.println("Data received callback triggered"); // Debug message
memcpy(&incomingData, data, sizeof(incomingData));
Serial.print("Received data from: ");
char macStr[18];
snprintf(macStr, sizeof(macStr), "%02x:%02x:%02x:%02x:%02x:%02x", info->src_addr[0], info->src_addr[1], info->src_addr[2], info->src_addr[3], info->src_addr[4], info->src_addr[5]);
Serial.println(macStr);
Serial.print("Base: "); Serial.println(incomingData.base);
Serial.print("Lowest: "); Serial.println(incomingData.lowest);
Serial.print("Bottom Middle: "); Serial.println(incomingData.bottomMiddle);
Serial.print("Top Middle: "); Serial.println(incomingData.topMiddle);
Serial.print("Claw: "); Serial.println(incomingData.claw);
Serial.print("Wrist: "); Serial.println(incomingData.wrist);
}
void setup() {
// Initialize Serial Monitor
Serial.begin(115200);
Serial.println("Receiver Setup Started"); // Debug message
// Print own MAC address
Serial.print("Receiver MAC Address: ");
Serial.println(WiFi.macAddress()); // Print the receiver's MAC address
// Set device as a Wi-Fi Station
WiFi.mode(WIFI_STA);
// Init ESP-NOW
if (esp_now_init() != ESP_OK) {
Serial.println("Error initializing ESP-NOW");
return;
}
Serial.println("ESP-NOW Initialized"); // Debug message
// Register the receive callback
esp_now_register_recv_cb(OnDataRecv);
// Optionally, you can add the transmitter as a peer
// This is not required for receiving data, but useful for bidirectional communication
esp_now_peer_info_t peerInfo;
uint8_t peerAddress[] = {0xCC, 0x7B, 0x5C, 0x36, 0xD8, 0xFE};
memcpy(peerInfo.peer_addr, peerAddress, 6);
peerInfo.channel = 0;
peerInfo.encrypt = false;
// Add peer
if (esp_now_add_peer(&peerInfo) != ESP_OK) {
Serial.println("Failed to add peer");
return;
}
Serial.println("Peer Added"); // Debug message
}
void loop() {
// Nothing to do here
// Data will be received via the callback
}
Debug Message
It seems that the two boards are connected but the receiver is failing to process anything. Any help would be appreciated.
Other Steps to Reproduce
No response
I have checked existing issues, online documentation and the Troubleshooting Guide
- I confirm I have checked existing issues, online documentation and Troubleshooting guide.
Metadata
Metadata
Assignees
Labels
Area: LibrariesIssue is related to Library support.Issue is related to Library support.