-
Notifications
You must be signed in to change notification settings - Fork 7.3k
No network inface found when enabling ethernet with the "Arduino portenta H7 board" and the "Portenta Hat Carrier" shield #79589
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Hi @El-Bucheron! We appreciate you submitting your first issue for our open-source project. 🌟 Even though I'm a bot, I can assure you that the whole community is genuinely grateful for your time and effort. 🤖💙 |
@rahul-arasikere can you assist? |
The MAC is enabled here. If you can check the |
Hello, @rahul-arasikere, thank you for your response. Based on your recommendations, I have replaced the actual mac definition for the portenta with the one from the board Nucleo H743ZI. Indeed, they use the same microprocessor and the Nucleo H743ZI code includes a MDIO definition and has the "okay" status for both MAC and MDIO. It allowed me to enable the Ethernet interface, as shown in the following log :
First of all, thank you for that! However, the Arduino Board still cannot seem to be able to send data through the Ethernet port. When pinging the board from my computer, the board doesn't respond to the ARP request. Similarly, when pinging my computer from my board, no ARP request is sent over the network. Nevertheless, it does seem to be able to receive data, as the board ARP-cache stores the MAC address and the IP of my computer after pinging the board. As explained in the initial commit, I have successfully sent and received UDP packets from the board through a Arduino demo. Thus, I believe this issue is not due to the Ethernet cable, network configuration or firewall. Additionally, after modifying of the MAC definition, I noticed the new following CMake Warning related to net drivers when building the project. I am not sure if this is critical for enabling data transmission over Ethernet.
Since I do not know what I could next to fix this problem, I am once again asking for help. I apologize if I missed something obvious. I am new to zephyr and embedded systems in general. I can identify the source of the problem but I am not yet skilled enough to fix it myself, especially when it comes to hardware problems. I would greatly appreciate if you could assist me again in solving this new issue. |
Some tips since I do not have access to your source code. |
Hello, Regarding the source code, it is the default and up-to-date version of Zephyr, with the only modification being the MAC definition of the Portenta board, as detailed above. As for the project itself, it is only meant to enable pinging between my board and my computer. The file structure and the content of those files are detailed in my initial message, and simply consists in enabling Ethernet, thenet shell and assigning an IP address. Following your advice, I will review the troubleshooting guide, and attempt to resolve the issue on my own. If I’m successful, I’ll share the solution and close the issue. Otherwise, I’ll reach out again for further assistance. Thank you once more for your advice, and have a great day. |
The message |
Hello @jukkar, thank you for your response. With the help of @rahul-arasikere, I was able to modify the configuration file and successfully enable Ethernet, allowing me to perform a simple ping, as shown in the logs below:
I will now close this topic and share my adjustments in case others encounter the same issue. I replaced the existing MAC definition, available here, with the following configuration:
This essentially adds an MDIO definition and removes its pin from the MAC definition. However, I am unsure if this configuration would work without the Portenta Hat Carrier, as I have not tested it in that setup. Thank you again for your help, and have a great day! |
Describe the bug
Hello,
As mentioned in the title, I am having trouble enabling Ethernet on the Arduino Portenta H7 when using a Portenta Hat Carrier, which includes an Ethernet port. My initial goal was to enable Ethernet, connect the board to my computer, and perform a simple ping test. However, each time I boot the board, the logs display:
[00:00:00.010,000] <err> net_if: There is no network interface to work with!
despite my belief that I have configured the Ethernet layer correctly.
I am confident the issue is not related to my Ethernet cable or network, as I have successfully received UDP packets from my computer to the board using an Arduino example code. I also doubt that the problem lies in my code, as it is just a simple k_sleep(K_FOREVER);. Additionally, my prj.conf file is straightforward, with basic settings to enable Ethernet, assign an IP address, and enable logging and the network shell (as detailed in the To Reproduce section).
I suspect the issue could be related to the fact that the shield I’m using may not be fully supported by Zephyr. However, after reviewing the schematic of the Portenta Hat Carrier (see the image below), the pin configuration does not appear to have been altered, which leads me to believe the shield should be compatible with the Ethernet implementation.
Therefore, I believe the problem lies in how the Ethernet configuration is initialized for the Arduino Portenta H7 in the source code—possibly due to incorrect pin configuration or something similar. I would appreciate any assistance or advice. Thank you in advance for your help!
To Reproduce
Here is the structure of my project "test_ethernet" and the content of the files
Expected behavior
Something like that (obtained by simulating a qemu board)
Logs and console output
Here are the logs when the board boots
Environment (please complete the following information):
The text was updated successfully, but these errors were encountered: