Lwip/ip_addr.h - file not found

I installed 4.0.2, when compiling I get this error.

\Arduino\libraries\Portenta_H7_AsyncTCP\src/Portenta_H7_AsyncTCP.h:127:12: fatal error: lwip/ip_addr.h: No such file or directory
   #include "lwip/ip_addr.h"

The file however is present in my packages directory

.\mbed_portenta\4.0.2\cores\arduino\mbed\connectivity\lwipstack\lwip\src\include\lwip

Any idea why it is not seeing it?

This often (not always) means a required library has not yet been installed.

Other than in the mbed board manager directories - where all the files are already present, the only other library that has an lwip stack copy (the files look the same), is the STM32duino library.

It was already installed.

I tried installing the older version, and then reinstall the newer version, but that too did not work either.

The directory is present in (as are other lwip dependencies)

.\Arduino\libraries\STM32duino_LwIP\src\lwip

@pert

This appears to be within your scope of expertise ?

In case anyone else is interested in using the Async Web TCP libraries with the latest Arduino MBed core.

It was pointed out to me that the issue is that the includes.txt file in the mbed core directories (both M4 and M7) are missing all the lwip directories in the list.

In order to get this to compile, just add the following lines back in the includes.txt file


Hopefully arduino fixes this in the next release, so it does not have to happen manually each time an upgrade is necessary
arduino/ArduinoCore-mbed/blob/master/variants/PORTENTA_H7_M7/includes.txt
-iwithprefixbefore/mbed/connectivity/lwipstack
-iwithprefixbefore/mbed/connectivity/lwipstack/include
-iwithprefixbefore/mbed/connectivity/lwipstack/include/lwipstack
-iwithprefixbefore/mbed/connectivity/lwipstack/lwip
-iwithprefixbefore/mbed/connectivity/lwipstack/lwip-sys
-iwithprefixbefore/mbed/connectivity/lwipstack/lwip-sys/arch
-iwithprefixbefore/mbed/connectivity/lwipstack/lwip/src
-iwithprefixbefore/mbed/connectivity/lwipstack/lwip/src/include
-iwithprefixbefore/mbed/connectivity/lwipstack/lwip/src/include/compat
-iwithprefixbefore/mbed/connectivity/lwipstack/lwip/src/include/compat/posix
-iwithprefixbefore/mbed/connectivity/lwipstack/lwip/src/include/compat/posix/arpa
-iwithprefixbefore/mbed/connectivity/lwipstack/lwip/src/include/compat/posix/net
-iwithprefixbefore/mbed/connectivity/lwipstack/lwip/src/include/compat/posix/sys
-iwithprefixbefore/mbed/connectivity/lwipstack/lwip/src/include/lwip
-iwithprefixbefore/mbed/connectivity/lwipstack/lwip/src/include/lwip/priv
-iwithprefixbefore/mbed/connectivity/lwipstack/lwip/src/include/lwip/prot
-iwithprefixbefore/mbed/connectivity/lwipstack/lwip/src/include/netif


3 Likes

It appears you have given a really professional solution;

Following this arduino support link:

Would you be willing to give a little more clarity on which directory you are referring to? I specifically am having trouble finding the ArduinoCore-mbed folder and am curious if I am looking inside the correct arduino folder?

Solved:
My Location:
C:\Users\kjustice\AppData\Local\Arduino15\packages\arduino\hardware\mbed_portenta\4.1.1\variants/PORTENTA_H7_M7/

1 Like

Myself, I moved the default location of the arduino packages and libraries.

My AppData name was just too long, and I was getting 64 character directory errors when installing the Portenta packages for example

I moved mine to (much shorter)

C:\Arduino\data\packages\arduino\hardware\mbed_portenta

How to do it

For sketchbook Libraries, Change Default Location - #2 by ptillisch

AppData Board Manager Storage Location Change AppData Board Manager Storage Location

As to the missing lwipstack - I am not sure if this was fixed. I needed the async library for speed, but it was not supported directly by Arduino, and I decided it would be a dead end path, as I was not prepared to have to support it myself.

The native arduinoi Ethernet libraries are pathetically slow, so I gutted my application to simple serve the sensor data I needed as a json string, and I gutted all the other applications I was running on the Portenta (email sending, Modbus, LCD display, WebServer, some error monitoring etc).

I moved the application to .NET BlazorWebApp / C#, and have it running on a Pi5 - works much more smoothly, and the LCD display is much more professional looking as well.

1 Like