espnow library not found
Posted: Mon Jan 18, 2016 4:58 am
Hello,
i've the Arduino IDe 1.5 r5, ESP8266 2.0 platform libraries (Linux Ubuntu 64 platform).
The IDE works perfectly on all examples and the code works on NODEMCU, but now i'm trying to test an espnow communication program as downloaded from lowreal.net (this sketch is for slave) and i got an error.
The compile process give the following errors:
It seems that the linker is'nt able to find the libespnow.a library, that i found under
~/.arduino15/packages/esp8266/hardware/esp8266/2.0.0/tools/sdk/lib/ path.
I don't know if it is a bug or i'm missing something can someone please help?
Regards
Emilio
i've the Arduino IDe 1.5 r5, ESP8266 2.0 platform libraries (Linux Ubuntu 64 platform).
The IDE works perfectly on all examples and the code works on NODEMCU, but now i'm trying to test an espnow communication program as downloaded from lowreal.net (this sketch is for slave) and i got an error.
Code: Select all
#include <Arduino.h>
#include <ESP8266WiFi.h>
extern "C" {
#include <espnow.h>
#include <user_interface.h>
}
#define WIFI_DEFAULT_CHANNEL 1
uint8_t mac [] = {0x1A, 0xFE, 0x34, 0xEE, 0x84, 0x88};
void printMacAddress (uint8_t * macaddr) {
Serial.print ("{");
for (int i = 0; i < 6; i ++) {
Serial.print ("0x");
Serial.print (macaddr [i], HEX);
if (i < 5) Serial.print (',');
}
Serial.println ("}");
}
void setup () {
pinMode (13, OUTPUT);
Serial.begin (74880);
Serial.println ("Initializing ...");
WiFi.mode (WIFI_STA);
uint8_t macaddr [6];
wifi_get_macaddr (STATION_IF, macaddr);
Serial.print ("mac address (STATION_IF):");
printMacAddress (macaddr);
wifi_get_macaddr (SOFTAP_IF, macaddr);
Serial.print ("mac address (SOFTAP_IF):");
printMacAddress (macaddr);
if (esp_now_init () == 0) {
Serial.println ("direct link init ok");
} else {
Serial.println ("dl init failed");
ESP.restart ();
return;
}
esp_now_set_self_role (ESP_NOW_ROLE_CONTROLLER);
esp_now_register_recv_cb ([] (uint8_t * macaddr, uint8_t * data, uint8_t len) {
Serial.println ("recv_cb");
Serial.print ("mac address:");
printMacAddress (macaddr);
Serial.print ("data:");
for (int i = 0; i < len; i ++) {
Serial.print (data [i], HEX);
}
Serial.println ("");
});
esp_now_register_send_cb ([] (uint8_t * macaddr, uint8_t status) {
Serial.println ("send_cb");
Serial.print ("mac address:");
printMacAddress (macaddr);
Serial.print ("status ="); Serial.println (status);
});
int res = esp_now_add_peer (mac, (uint8_t) ESP_NOW_ROLE_SLAVE, (uint8_t) WIFI_DEFAULT_CHANNEL, NULL, 0);
uint8_t message [] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x08};
esp_now_send (mac, message, sizeof (message));
ESP.deepSleep (2.5e6, WAKE_RF_DEFAULT);
// Esp_now_unregister_recv_cb ();
// Esp_now_deinit ();
}
void loop () {
}
The compile process give the following errors:
Code: Select all
ESPNOW_Slave.cpp.o:(.text.setup+0x34): undefined reference to `esp_now_init'
ESPNOW_Slave.cpp.o:(.text.setup+0x38): undefined reference to `esp_now_set_self_role'
ESPNOW_Slave.cpp.o:(.text.setup+0x3c): undefined reference to `esp_now_register_recv_cb'
ESPNOW_Slave.cpp.o:(.text.setup+0x40): undefined reference to `esp_now_register_send_cb'
ESPNOW_Slave.cpp.o:(.text.setup+0x44): undefined reference to `esp_now_add_peer'
ESPNOW_Slave.cpp.o:(.text.setup+0x4c): undefined reference to `esp_now_send'
ESPNOW_Slave.cpp.o: In function `HardwareSerial::begin(unsigned long)':
/home/user/.arduino15/packages/esp8266/hardware/esp8266/2.0.0/cores/esp8266/HardwareSerial.h:77: undefined reference to `esp_now_init'
ESPNOW_Slave.cpp.o: In function `setup':
/home/user/Downloads/arduino-1.6.5-r5/ESPNOW_Slave.ino:28: undefined reference to `esp_now_set_self_role'
/home/user/Downloads/arduino-1.6.5-r5/ESPNOW_Slave.ino:28: undefined reference to `esp_now_register_recv_cb'
/home/user/Downloads/arduino-1.6.5-r5/ESPNOW_Slave.ino:31: undefined reference to `esp_now_register_send_cb'
/home/user/Downloads/arduino-1.6.5-r5/ESPNOW_Slave.ino:33: undefined reference to `esp_now_add_peer'
/home/user/Downloads/arduino-1.6.5-r5/ESPNOW_Slave.ino:36: undefined reference to `esp_now_send'
collect2: error: ld returned 1 exit status
Error compiling.
It seems that the linker is'nt able to find the libespnow.a library, that i found under
~/.arduino15/packages/esp8266/hardware/esp8266/2.0.0/tools/sdk/lib/ path.
I don't know if it is a bug or i'm missing something can someone please help?
Regards
Emilio