Open drdelgado opened 4 years ago
I'm getting the same error
Looks like most of the errors come from the stdatomic thing. Why is your sdkconfig so very different from what we have here: https://github.com/OLIMEX/ESP32-POE/blob/master/SOFTWARE/ESP-IDF/ESP32_PoE_Ethernet_IDFv4.0/sdkconfig ?
Edit: How do you build the project? Do you use "make"? Can you try with "idf.py"?
I am also having this same error when trying to update from v3.3(LTS) to 4.0 rc or 3.3.1. was this ever resolved?
Same thing, also while upgrading from 3.3
There is an update of the example with the stable ESP-IDF v4.0. Make sure you follow the instruction and install the version shown on this guide: https://docs.espressif.com/projects/esp-idf/en/stable/get-started/
Because last example was made with "older" 4.0 and that created the whole problem. There were few different versions all labeled as 4.0 but different between each other.
Try it and send your feedback if there are still issues.
Here is a 4.0.0 example which works for me:
Here is a 4.0.0 example which works for me:
@bluelu can you upload the whole project (not only the main.c file)? This means files like CMakeLists.txt, makefile, sdkconfig etc (check the full structure of the project). Because the macro values defined in sdkconfig are determined from the menuconfig and affect the compilation procress. So the same main.c source file may give different results depending on these values.
Here is the sdkconfig. I overwrote though some definitions directly in the c file.
Unfortunately I still can't compile the code with the files you linked when I overwrite the ones from our project. I get this error:
C:\esp-idf\esp-idf_v4.0\SPP\ESP32_PoE_Ethernet_IDFv4.0>idf.py flash Checking Python dependencies... Python requirements from C:\esp-idf\esp-idf_v4.0\requirements.txt are satisfied. Adding flash's dependency "all" to list of actions Executing action: all (aliases: build) Running ninja in directory c:\esp-idf\esp-idf_v4.0\spp\esp32_poe_ethernet_idfv4.0\build Executing "ninja all"... [351/914] Generating ../../partition_table/partition-table.bin FAILED: partition_table/partition-table.bin cmd.exe /C "cd /D C:\esp-idf\esp-idf_v4.0\SPP\ESP32_PoE_Ethernet_IDFv4.0\build\esp-idf\partition_table && C:\Users\Stanimir5F\.espressif\python_env\idf4.0_py3.7_env\Scripts\python.exe C:/esp-idf/esp-idf_v4.0/components/partition_table/gen_esp32part.py -q --offset 0x8000 --flash-size 2MB C:/esp-idf/esp-idf_v4.0/components/partition_table/partitions_two_ota.csv C:/esp-idf/esp-idf_v4.0/SPP/ESP32_PoE_Ethernet_IDFv4.0/build/partition_table/partition-table.bin" Partitions defined in 'C:/esp-idf/esp-idf_v4.0/components/partition_table/partitions_two_ota.csv' occupy 3.1MB of flash (3211264 bytes) which does not fit in configured flash size 2MB. Change the flash size in menuconfig under the 'Serial Flasher Config' menu. [353/914] Building C object esp-idf/app_update/CMakeFiles/__idf_app_update.dir/esp_ota_ops.c.obj ninja: build stopped: subcommand failed. ninja failed with exit code 1
Can you upload somewhere a zip (or any other format) of the whole project? Check the structure of the project in the code section.
Hi,
You should be able to build a working project from the .c file I pasted. Your code fails because of a wrongly configured flash size, not related to any network code.
EDIT: Sorry, I built the project with platformIo, that's why I did not run menuconfig
In the link @bluelu pasted ( https://pastebin.com/SVyccrAq ), this is improper:
CONFIG_ESPTOOLPY_FLASHSIZE="2MB"
I did some more tests using esphome, scanning ble devices and sending them over mqtt (> 10 messages per second).
The board will run fine for a few seconds, then eventually the link will go down once and come up again. Then after a while the link will go down but not go up anymore (e.g. just for less than < 1 second). There is not much in the logs, except that the ethernet got disconnected.
I made sure to not trigger any more mqtt sends, when the link is down, but it did not help.
Has anybody run this board stable with a "lot" of mqtt traffic?
[17:44:20][I][mqtt:162]: Connecting to MQTT... [17:44:22][W][ethernet:058]: Connection via Ethernet lost! Re-connecting... [17:44:22][W][mqtt:250]: MQTT Disconnected: WiFi disconnected. [17:44:22][W][ethernet:041]: Connecting via ethernet failed! Re-connecting... [17:44:30][I][ethernet:053]: Connected via Ethernet! [17:44:30][C][ethernet:221]: IP Address: 192.168.10.3
[17:44:30][C][ethernet:223]: Subnet: 255.255.0.0 [17:44:30][C][ethernet:224]: Gateway: 192.168.188.1 [17:44:30][C][ethernet:227]: DNS1: 0.0.0.0 [17:44:30][C][ethernet:229]: DNS2: 0.0.0.0 [17:44:30][C][ethernet:232]: MAC Address: 4C:11:AE:D7:04:77 [17:44:30][C][ethernet:233]: Is Full Duplex: YES [17:44:30][C][ethernet:234]: Link Up: YES [17:44:30][C][ethernet:235]: Link Speed: 100 [17:44:30][I][mqtt:162]: Connecting to MQTT... [17:44:32][W][ethernet:058]: Connection via Ethernet lost! Re-connecting... [17:44:32][W][mqtt:250]: MQTT Disconnected: WiFi disconnected. [17:44:37][W][ethernet:041]: Connecting via ethernet failed! Re-connecting... [17:44:40][I][ethernet:053]: Connected via Ethernet! [17:44:40][C][ethernet:221]: IP Address: 192.168.10.3
[17:44:40][C][ethernet:223]: Subnet: 255.255.0.0 [17:44:40][C][ethernet:224]: Gateway: 192.168.188.1 [17:44:40][C][ethernet:227]: DNS1: 0.0.0.0 [17:44:40][C][ethernet:229]: DNS2: 0.0.0.0 [17:44:40][C][ethernet:232]: MAC Address: 4C:11:AE:D7:04:77 [17:44:40][C][ethernet:233]: Is Full Duplex: NO [17:44:40][C][ethernet:234]: Link Up: NO [17:44:40][C][ethernet:235]: Link Speed: 10 [17:44:40][I][mqtt:162]: Connecting to MQTT... [17:44:44][W][ethernet:058]: Connection via Ethernet lost! Re-connecting... [17:44:44][W][mqtt:250]: MQTT Disconnected: WiFi disconnected. [17:44:52][I][ethernet:053]: Connected via Ethernet! [17:44:52][C][ethernet:221]: IP Address: 192.168.10.3
[17:44:52][C][ethernet:223]: Subnet: 255.255.0.0 [17:44:52][C][ethernet:224]: Gateway: 192.168.188.1 [17:44:52][C][ethernet:227]: DNS1: 0.0.0.0 [17:44:52][C][ethernet:229]: DNS2: 0.0.0.0 [17:44:52][C][ethernet:232]: MAC Address: 4C:11:AE:D7:04:77 [17:44:52][C][ethernet:233]: Is Full Duplex: YES [17:44:52][C][ethernet:234]: Link Up: YES [17:44:52][C][ethernet:235]: Link Speed: 100 [17:44:52][I][mqtt:162]: Connecting to MQTT... [17:44:54][W][ethernet:058]: Connection via Ethernet lost! Re-connecting... [17:44:54][W][mqtt:250]: MQTT Disconnected: WiFi disconnected. [17:44:54][W][ethernet:041]: Connecting via ethernet failed! Re-connecting... [17:45:04][I][ethernet:053]: Connected via Ethernet! [17:45:04][C][ethernet:221]: IP Address: 192.168.10.3
[17:45:04][C][ethernet:223]: Subnet: 255.255.0.0 [17:45:04][C][ethernet:224]: Gateway: 192.168.188.1 [17:45:04][C][ethernet:227]: DNS1: 0.0.0.0 [17:45:04][C][ethernet:229]: DNS2: 0.0.0.0 [17:45:04][C][ethernet:232]: MAC Address: 4C:11:AE:D7:04:77 [17:45:04][C][ethernet:233]: Is Full Duplex: YES [17:45:04][C][ethernet:234]: Link Up: YES [17:45:04][C][ethernet:235]: Link Speed: 100 [17:45:04][I][mqtt:162]: Connecting to MQTT... [17:45:06][W][ethernet:058]: Connection via Ethernet lost! Re-connecting... [17:45:06][W][mqtt:250]: MQTT Disconnected: WiFi disconnected. [17:45:09][W][ethernet:041]: Connecting via ethernet failed! Re-connecting... [17:45:14][I][ethernet:053]: Connected via Ethernet! [17:45:14][C][ethernet:221]: IP Address: 192.168.10.3
[17:45:14][C][ethernet:223]: Subnet: 255.255.0.0 [17:45:14][C][ethernet:224]: Gateway: 192.168.188.1 [17:45:14][C][ethernet:227]: DNS1: 0.0.0.0 [17:45:14][C][ethernet:229]: DNS2: 0.0.0.0 [17:45:14][C][ethernet:232]: MAC Address: 4C:11:AE:D7:04:77 [17:45:14][C][ethernet:233]: Is Full Duplex: YES [17:45:14][C][ethernet:234]: Link Up: YES [17:45:14][C][ethernet:235]: Link Speed: 100 [17:45:14][I][mqtt:162]: Connecting to MQTT...
Hi,
In case anyone has the same problem:
The issue was related to an incompability to the POE switch I was using (netgear f108p). It works now when I force the ethernet controller not to advertise 100Mbit and fix it to 10Mbit.
I need to add below patch to make things work again against main.
diff --git a/examples/common_components/protocol_examples_common/eth_connect.c b/examples/common_components/protocol_examples_common/eth_connect.c
index 0b7d8f4b1a..36b41b10fd 100644
--- a/examples/common_components/protocol_examples_common/eth_connect.c
+++ b/examples/common_components/protocol_examples_common/eth_connect.c
@@ -97,6 +97,16 @@ static esp_netif_t *eth_start(void)
eth_phy_config_t phy_config = ETH_PHY_DEFAULT_CONFIG();
phy_config.phy_addr = CONFIG_EXAMPLE_ETH_PHY_ADDR;
phy_config.reset_gpio_num = CONFIG_EXAMPLE_ETH_PHY_RST_GPIO;
+
+#define CONFIG_PIN_PHY_POWER 12
+#ifdef CONFIG_PIN_PHY_POWER
+#warning "Power complied in."
+ esp_rom_gpio_pad_select_gpio(CONFIG_PIN_PHY_POWER);
+ gpio_set_direction(CONFIG_PIN_PHY_POWER, GPIO_MODE_OUTPUT);
+ gpio_set_level(CONFIG_PIN_PHY_POWER, 1);
+ vTaskDelay(pdMS_TO_TICKS(10));
+#endif
+
Firstly I start:
However, your example code does not build here is my sdkconfig file:
sdkconfig
Error
Heres the error for your code:
Whats going on?