RP2040 Connect + WiFiWebServer build issues

Hey there,

I hope this is the right place for this kind of post, if not I welcome any suggestions on where to ask about this sort of thing.

I’m trying to make the transition from VSCode+Arduino extension to VSCode+PlatformIO and the project I’m working on relies on the WiFiWebServer library, so I made a project that uses the WebServer example just to verify it builds. I’ve been using this library in the Arduino environment with no problems, fwiw.

Unfortunately, it doesn’t and so far I’ve been unable to figure out the root cause of the failure. I’m not expecting anyone to figure this out for me, but it would be really helpful if someone could confirm that this library can in fact successfully build with an RP2040 Connect with PlatformIO.

What I see are errors related to functions being redefined and bool not being a type. From what I can tell, it appears the .c code is (indirectly) including Arduino.h which uses bool which of course isn’t part of C, only C++. The code in C:\Users\Eric.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\9.2.1\tr1\cstdint seems to be expected to #include <stdint> which I think would correct that, but this only happens if _GLIBCXX_HAVE_STDINT_H is defined, which it isn’t (I put an #error right before #include to verify). Guessing there might be some kind of standard lib setup problem, or perhaps a compiler configuration somewhere I need to learn about.

Anyway, if someone has a chance to try to build this example in WiFiWebServer with an RP2040 Connect I’d sure appreciate it. Even better would be some suggestions on what I might be able to do to get this to work. Thanks for any assistance!

As an aside, I am really liking what I see with PlatformIO - great stuff!

Here’s my platformio.ini

[platformio]

default_envs = nanorp2040connect

[env:nanorp2040connect]

platform = raspberrypi

board = nanorp2040connect

framework = arduino

lib_deps = khoih-prog/WiFiWebServer@^1.4.0

And here is the build output:

> Executing task in folder PIOTest: C:\Users\Eric\.platformio\penv\Scripts\platformio.exe run --target upload <

Processing nanorp2040connect (platform: raspberrypi; board: nanorp2040connect; framework: arduino)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/raspberrypi/nanorp2040connect.html
PLATFORM: Raspberry Pi RP2040 (1.3.0) > Arduino Nano RP2040 Connect
HARDWARE: RP2040 133MHz, 264KB RAM, 2MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, jlink, raspberrypi-swd)
PACKAGES:
 - framework-arduino-mbed 2.4.1
 - tool-openocd-raspberrypi 2.1100.0 (11.0)
 - tool-rp2040tools 1.0.2
 - toolchain-gccarmnoneeabi 1.90201.191206 (9.2.1)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 36 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <WiFiWebServer> 1.4.0        
|   |-- <WiFiNINA_Generic> 1.8.13
|   |   |-- <SPI>
|   |   |-- <WiFi101> 0.16.1     
|   |   |   |-- <SPI>
|   |-- <Functional-Vlpp> 1.0.2  
|   |-- <ESP_AT_Lib> 1.4.0       
|   |-- <WiFi101> 0.16.1
|   |   |-- <SPI>
|   |-- <WiFiEspAT> 1.3.1        
|-- <WiFiEspAT> 1.3.1
Building in release mode
Compiling .pio\build\nanorp2040connect\src\main.cpp.o
Compiling .pio\build\nanorp2040connect\liba19\SPI\SPI.cpp.o
Compiling .pio\build\nanorp2040connect\libfb9\WiFi101\WiFi.cpp.o
Compiling .pio\build\nanorp2040connect\libfb9\WiFi101\WiFiClient.cpp.o
Compiling .pio\build\nanorp2040connect\libfb9\WiFi101\WiFiMDNSResponder.cpp.o
Compiling .pio\build\nanorp2040connect\libfb9\WiFi101\WiFiSSLClient.cpp.o
Compiling .pio\build\nanorp2040connect\libfb9\WiFi101\WiFiServer.cpp.o
Compiling .pio\build\nanorp2040connect\libfb9\WiFi101\WiFiUdp.cpp.o
Compiling .pio\build\nanorp2040connect\libfb9\WiFi101\bsp\source\nm_bsp_arduino.c.o
Compiling .pio\build\nanorp2040connect\libfb9\WiFi101\bsp\source\nm_bsp_arduino_avr.c.o
In file included from src\main.cpp:18:
src\defines.h:97:4: warning: #warning Using WiFiNINA using WiFiNINA_Generic Library [-Wcpp]
   97 |   #warning Using WiFiNINA using WiFiNINA_Generic Library
      |    ^~~~~~~
In file included from src\defines.h:372,
Compiling .pio\build\nanorp2040connect\libfb9\WiFi101\bus_wrapper\source\nm_bus_wrapper_samd21.cpp.o
                 from src\main.cpp:18:
.pio\libdeps\nanorp2040connect\WiFiWebServer\src/WiFiWebServer.h:110:4: warning: #warning RP2040-based board selected [-Wcpp]
  110 |   #warning RP2040-based board selected
      |    ^~~~~~~
.pio\libdeps\nanorp2040connect\WiFiWebServer\src/WiFiWebServer.h:116:4: warning: #warning Use RP2040 architecture from WiFiWebServer [-Wcpp]
  116 |   #warning Use RP2040 architecture from WiFiWebServer
      |    ^~~~~~~Compiling .pio\build\nanorp2040connect\libfb9\WiFi101\common\source\nm_common.c.o

Compiling .pio\build\nanorp2040connect\libfb9\WiFi101\driver\source\m2m_ate_mode.c.o
Compiling .pio\build\nanorp2040connect\libfb9\WiFi101\driver\source\m2m_crypto.c.o
In file included from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\variants\NANO_RP2040_CONNECT/pinmode_arduino.h:30,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/Arduino.h:26,
                 from .pio\libdeps\nanorp2040connect\WiFi101\src/bsp/include/nm_bsp_arduino.h:47,
                 from .pio\libdeps\nanorp2040connect\WiFi101\src\bsp\source\nm_bsp_arduino.c:46:
C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/api/Common.h:75:9: error: unknown type name 'bool'
   75 | typedef bool      boolean;
      |         ^~~~
Compiling .pio\build\nanorp2040connect\libfb9\WiFi101\driver\source\m2m_hif.c.o
Compiling .pio\build\nanorp2040connect\libfb9\WiFi101\driver\source\m2m_ota.c.o
Compiling .pio\build\nanorp2040connect\libfb9\WiFi101\driver\source\m2m_periph.c.o
Compiling .pio\build\nanorp2040connect\libfb9\WiFi101\driver\source\m2m_ssl.c.o
*** [.pio\build\nanorp2040connect\libfb9\WiFi101\bsp\source\nm_bsp_arduino.c.o] Error 1
In file included from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/Arduino.h:76,
                 from .pio\libdeps\nanorp2040connect\WiFiNINA_Generic\src/WiFiClient_Generic.h:56,
                 from .pio\libdeps\nanorp2040connect\WiFiNINA_Generic\src/WiFi_Generic.h:76,
                 from .pio\libdeps\nanorp2040connect\WiFiNINA_Generic\src/WiFiNINA_Generic.h:60,
                 from .pio\libdeps\nanorp2040connect\WiFiWebServer\src/WiFiWebServer.h:128,
                 from src\defines.h:372,
                 from src\main.cpp:18:
C:\Users\Eric\.platformio\packages\framework-arduino-mbed\variants\NANO_RP2040_CONNECT/pins_arduino.h:84: warning: "BOARD_NAME" redefined
   84 | #define BOARD_NAME   "Nano RP2040 Connect"
      |
In file included from src\main.cpp:18:
src\defines.h:366: note: this is the location of the previous definition
  366 |     #define BOARD_NAME    BOARD_TYPE
      |
In file included from src\defines.h:372,
                 from src\main.cpp:18:
.pio\libdeps\nanorp2040connect\WiFiWebServer\src/WiFiWebServer.h:130:4: warning: #warning Use WiFiNINA from WiFiWebServer [-Wcpp]
  130 |   #warning Use WiFiNINA from WiFiWebServer
      |    ^~~~~~~
In file included from src\defines.h:372,
                 from src\main.cpp:18:
.pio\libdeps\nanorp2040connect\WiFiWebServer\src/WiFiWebServer.h:157:4: warning: #warning SENDCONTENT_P_BUFFER_SZ using default 4 Kbytes [-Wcpp]
  157 |   #warning SENDCONTENT_P_BUFFER_SZ using default 4 Kbytes
      |    ^~~~~~~
In file included from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/platform/include/platform/platform.h:26,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/platform/include/platform/FileHandle.h:25,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/macros.h:41,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\variants\NANO_RP2040_CONNECT/pins_arduino.h:2,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/Arduino.h:76,
                 from .pio\libdeps\nanorp2040connect\WiFi101\src\utility/WiFiSocket.h:28,
                 from .pio\libdeps\nanorp2040connect\WiFi101\src\WiFiClient.cpp:20:
C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/platform/include/platform/mbed_retarget.h:742:9: error: conflicting declaration of C function 'int close(int)'
  742 |     int close(int fildes);
      |         ^~~~~
In file included from .pio\libdeps\nanorp2040connect\WiFi101\src\utility/WiFiSocket.h:24,
                 from .pio\libdeps\nanorp2040connect\WiFi101\src\WiFiClient.cpp:20:
.pio\libdeps\nanorp2040connect\WiFi101\src/socket/include/socket.h:1839:15: note: previous declaration 'sint8 close(SOCKET)'
 1839 | NMI_API sint8 close(SOCKET sock);
      |               ^~~~~
In file included from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/platform/include/platform/platform.h:26,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/platform/include/platform/FileHandle.h:25,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/macros.h:41,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\variants\NANO_RP2040_CONNECT/pins_arduino.h:2,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/Arduino.h:76,
                 from .pio\libdeps\nanorp2040connect\WiFi101\src\utility/WiFiSocket.h:28,
                 from .pio\libdeps\nanorp2040connect\WiFi101\src\WiFiUdp.cpp:22:
C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/platform/include/platform/mbed_retarget.h:742:9: error: conflicting declaration of C function 'int close(int)'
  742 |     int close(int fildes);
      |         ^~~~~
In file included from .pio\libdeps\nanorp2040connect\WiFi101\src\utility/WiFiSocket.h:24,
                 from .pio\libdeps\nanorp2040connect\WiFi101\src\WiFiUdp.cpp:22:
.pio\libdeps\nanorp2040connect\WiFi101\src/socket/include/socket.h:1839:15: note: previous declaration 'sint8 close(SOCKET)'
 1839 | NMI_API sint8 close(SOCKET sock);
      |               ^~~~~
In file included from .pio\libdeps\nanorp2040connect\WiFi101\src\WiFiClient.h:28,
                 from .pio\libdeps\nanorp2040connect\WiFi101\src\WiFi101.h:35,
                 from .pio\libdeps\nanorp2040connect\WiFi101\src\WiFiMDNSResponder.h:27,
                 from .pio\libdeps\nanorp2040connect\WiFi101\src\WiFiMDNSResponder.cpp:32:
.pio\libdeps\nanorp2040connect\WiFi101\src\socket/include/socket.h:1839:15: error: conflicting declaration of C function 'sint8 close(SOCKET)'
 1839 | NMI_API sint8 close(SOCKET sock);
      |               ^~~~~
In file included from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/platform/include/platform/platform.h:26,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/platform/include/platform/FileHandle.h:25,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/macros.h:41,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\variants\NANO_RP2040_CONNECT/pins_arduino.h:2,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/Arduino.h:76,
                 from .pio\libdeps\nanorp2040connect\WiFi101\src\WiFiMDNSResponder.cpp:31:
C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/platform/include/platform/mbed_retarget.h:742:9: note: previous declaration 'int close(int)'
  742 |     int close(int fildes);
      |         ^~~~~
.pio\libdeps\nanorp2040connect\WiFi101\src\WiFiMDNSResponder.cpp: In member function 'bool WiFiMDNSResponder::parseRequest()':
.pio\libdeps\nanorp2040connect\WiFi101\src\WiFiMDNSResponder.cpp:141:13: warning: variable length array 'request' is used [-Wvla]
  141 |     uint8_t request[minimumExpectedRequestLength];
      |             ^~~~~~~
.pio\libdeps\nanorp2040connect\WiFi101\src\WiFiMDNSResponder.cpp: In member function 'void WiFiMDNSResponder::replyToRequest()':
.pio\libdeps\nanorp2040connect\WiFi101\src\WiFiMDNSResponder.cpp:188:11: warning: variable length array 'response' is used [-Wvla]
  188 |   uint8_t response[responseSize];
      |           ^~~~~~~~
In file included from .pio\libdeps\nanorp2040connect\WiFi101\src\WiFiClient.h:28,
                 from .pio\libdeps\nanorp2040connect\WiFi101\src\WiFiSSLClient.h:23,
                 from .pio\libdeps\nanorp2040connect\WiFi101\src\WiFiSSLClient.cpp:20:
.pio\libdeps\nanorp2040connect\WiFi101\src\socket/include/socket.h:1839:15: error: conflicting declaration of C function 'sint8 close(SOCKET)'
 1839 | NMI_API sint8 close(SOCKET sock);
      |               ^~~~~
In file included from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/platform/include/platform/platform.h:26,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/platform/include/platform/FileHandle.h:25,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/macros.h:41,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\variants\NANO_RP2040_CONNECT/pins_arduino.h:2,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/Arduino.h:76,
                 from .pio\libdeps\nanorp2040connect\WiFi101\src\WiFiClient.h:23,
                 from .pio\libdeps\nanorp2040connect\WiFi101\src\WiFiSSLClient.h:23,
                 from .pio\libdeps\nanorp2040connect\WiFi101\src\WiFiSSLClient.cpp:20:
C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/platform/include/platform/mbed_retarget.h:742:9: note: previous declaration 'int close(int)'
  742 |     int close(int fildes);
      |         ^~~~~
In file included from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/platform/include/platform/platform.h:26,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/platform/include/platform/FileHandle.h:25,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/macros.h:41,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\variants\NANO_RP2040_CONNECT/pins_arduino.h:2,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/Arduino.h:76,
                 from .pio\libdeps\nanorp2040connect\WiFi101\src\utility/WiFiSocket.h:28,
                 from .pio\libdeps\nanorp2040connect\WiFi101\src\WiFiServer.cpp:20:
C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/platform/include/platform/mbed_retarget.h:742:9: error: conflicting declaration of C function 'int close(int)'
  742 |     int close(int fildes);
      |         ^~~~~
In file included from .pio\libdeps\nanorp2040connect\WiFi101\src\utility/WiFiSocket.h:24,
                 from .pio\libdeps\nanorp2040connect\WiFi101\src\WiFiServer.cpp:20:
.pio\libdeps\nanorp2040connect\WiFi101\src/socket/include/socket.h:1839:15: note: previous declaration 'sint8 close(SOCKET)'
 1839 | NMI_API sint8 close(SOCKET sock);
      |               ^~~~~
*** [.pio\build\nanorp2040connect\libfb9\WiFi101\WiFiClient.cpp.o] Error 1
*** [.pio\build\nanorp2040connect\libfb9\WiFi101\WiFiSSLClient.cpp.o] Error 1
*** [.pio\build\nanorp2040connect\libfb9\WiFi101\WiFiMDNSResponder.cpp.o] Error 1
In file included from .pio\libdeps\nanorp2040connect\WiFiWebServer\src/WiFiWebServer.h:411,
                 from src\defines.h:372,
                 from src\main.cpp:18:
.pio\libdeps\nanorp2040connect\WiFiWebServer\src/Parsing-impl.h: In member function 'bool WiFiWebServer::_parseForm(WiFiClient&, const arduino::String&, uint32_t)':
.pio\libdeps\nanorp2040connect\WiFiWebServer\src/Parsing-impl.h:896:23: warning: variable length array 'endBuf' is used [-Wvla]
  896 |               uint8_t endBuf[boundary.length()];
      |                       ^~~~~~
*** [.pio\build\nanorp2040connect\libfb9\WiFi101\WiFiUdp.cpp.o] Error 1
*** [.pio\build\nanorp2040connect\libfb9\WiFi101\WiFiServer.cpp.o] Error 1
In file included from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/platform/include/platform/platform.h:26,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/platform/include/platform/FileHandle.h:25,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/macros.h:41,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\variants\NANO_RP2040_CONNECT/pins_arduino.h:2,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/Arduino.h:76,
                 from .pio\libdeps\nanorp2040connect\WiFi101\src\utility/WiFiSocket.h:28,
                 from .pio\libdeps\nanorp2040connect\WiFi101\src\WiFi.cpp:36:
C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/platform/include/platform/mbed_retarget.h:742:9: error: conflicting declaration of C function 'int close(int)'
  742 |     int close(int fildes);
      |         ^~~~~
In file included from .pio\libdeps\nanorp2040connect\WiFi101\src\utility/WiFiSocket.h:24,
                 from .pio\libdeps\nanorp2040connect\WiFi101\src\WiFi.cpp:36:
.pio\libdeps\nanorp2040connect\WiFi101\src/socket/include/socket.h:1839:15: note: previous declaration 'sint8 close(SOCKET)'
 1839 | NMI_API sint8 close(SOCKET sock);
      |               ^~~~~
*** [.pio\build\nanorp2040connect\libfb9\WiFi101\WiFi.cpp.o] Error 1
================================================================================================ [FAILED] Took 11.55 seconds ================================================================================================

Environment        Status    Duration
-----------------  --------  ------------
nanorp2040connect  FAILED    00:00:11.553

PlatformIO’s LDF includes a bunch of things in the build which seem wrong. If I use

[env:nanorp2040connect]
platform = raspberrypi
board = nanorp2040connect
framework = arduino
lib_deps = khoih-prog/WiFiWebServer@^1.4.0
lib_ignore =
   WiFi101
   WiFiEspAT
   WiFi
   ESP_AT_Lib

and adapt

to

#if !(ESP32 || ESP8266) && !defined(ARDUINO_NANO_RP2040_CONNECT)
  #include <avr/pgmspace.h>
  #define memccpy_P(dest, src, c, n) memccpy((dest), (src), (c), (n))
#endif

(file is locally in .pio\libdeps\nanorp2040connect\WiFiWebServer\src\WiFiWebServer.h), the WebServer example compiles

elf2uf2 ".pio\build\nanorp2040connect\firmware.elf" ".pio\build\nanorp2040connect\firmware.uf2"
Checking size .pio\build\nanorp2040connect\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [==        ]  19.0% (used 51388 bytes from 270336 bytes)
Flash: [          ]   4.0% (used 83616 bytes from 2097152 bytes)
Building .pio\build\nanorp2040connect\firmware.bin
============== [SUCCESS] Took 17.65 seconds ==============

Can you test whether that works?

When you build it with the Arduino IDE, do you use the Arduino core GitHub - earlephilhower/arduino-pico: Raspberry Pi Pico Arduino core, for all RP2040 boards or GitHub - arduino/ArduinoCore-mbed?

1 Like

Adding the extra !defined and the libignore settings did the trick, thanks! I wasn’t aware of this parameter, and I had been brute force deleting these libs during some tests but I didn’t delete all four of those thinking (guessing, really) the WiFi one was necessary. I wonder if there is something that can be done to make these libs ignored by default, or otherwise guide people to information on why this might be necessary?

Thanks again, super helpful :slight_smile:

Slightly related, I wonder what if anything can or should be done about all these warnings.

> Executing task in folder PIOTest: C:\Users\Eric\.platformio\penv\Scripts\platformio.exe run <

Processing nanorp2040connect (platform: raspberrypi; board: nanorp2040connect; framework: arduino)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/raspberrypi/nanorp2040connect.html
PLATFORM: Raspberry Pi RP2040 (1.3.0) > Arduino Nano RP2040 Connect
HARDWARE: RP2040 133MHz, 264KB RAM, 2MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, jlink, raspberrypi-swd)
PACKAGES:
 - framework-arduino-mbed 2.4.1
 - tool-rp2040tools 1.0.2
 - toolchain-gccarmnoneeabi 1.90201.191206 (9.2.1)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 32 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <WiFiWebServer> 1.4.0        
|   |-- <WiFiNINA_Generic> 1.8.13
|   |   |-- <SPI>
|   |-- <Functional-Vlpp> 1.0.2  
Building in release mode
Compiling .pio\build\nanorp2040connect\src\main.cpp.o
Compiling .pio\build\nanorp2040connect\liba19\SPI\SPI.cpp.o
Compiling .pio\build\nanorp2040connect\lib0b9\WiFiNINA_Generic\WiFiClient_Generic.cpp.o
Compiling .pio\build\nanorp2040connect\lib0b9\WiFiNINA_Generic\WiFiSSLClient_Generic.cpp.o
Compiling .pio\build\nanorp2040connect\lib0b9\WiFiNINA_Generic\WiFiServer_Generic.cpp.o
Compiling .pio\build\nanorp2040connect\lib0b9\WiFiNINA_Generic\WiFiStorage_Generic.cpp.o
Compiling .pio\build\nanorp2040connect\lib0b9\WiFiNINA_Generic\WiFiUdp_Generic.cpp.o
Compiling .pio\build\nanorp2040connect\lib0b9\WiFiNINA_Generic\WiFi_Generic.cpp.o
Compiling .pio\build\nanorp2040connect\lib0b9\WiFiNINA_Generic\utility\WiFiSocketBuffer.cpp.o
Compiling .pio\build\nanorp2040connect\lib0b9\WiFiNINA_Generic\utility\nano_rp2040_support.cpp.o
Compiling .pio\build\nanorp2040connect\lib0b9\WiFiNINA_Generic\utility\server_drv.cpp.o    
In file included from src\main.cpp:18:
src\defines.h:97:4: warning: #warning Using WiFiNINA using WiFiNINA_Generic Library [-Wcpp]
   97 |   #warning Using WiFiNINA using WiFiNINA_Generic Library
      |    ^~~~~~~
In file included from src\defines.h:372,
                 from src\main.cpp:18:
.pio\libdeps\nanorp2040connect\WiFiWebServer\src/WiFiWebServer.h:110:4: warning: #warning RP2040-based board selected [-Wcpp]
Compiling .pio\build\nanorp2040connect\lib0b9\WiFiNINA_Generic\utility\spi_drv.cpp.o
  110 |   #warning RP2040-based board selected
      |    ^~~~~~~
.pio\libdeps\nanorp2040connect\WiFiWebServer\src/WiFiWebServer.h:116:4: warning: #warning Use RP2040 architecture from WiFiWebServer [-Wcpp]
  116 |   #warning Use RP2040 architecture from WiFiWebServer
      |    ^~~~~~~
Compiling .pio\build\nanorp2040connect\lib0b9\WiFiNINA_Generic\utility\wifi_drv.cpp.o
In file included from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/Arduino.h:76,
                 from .pio\libdeps\nanorp2040connect\WiFiNINA_Generic\src/WiFiClient_Generic.h:56,
                 from .pio\libdeps\nanorp2040connect\WiFiNINA_Generic\src/WiFi_Generic.h:76,
                 from .pio\libdeps\nanorp2040connect\WiFiNINA_Generic\src/WiFiNINA_Generic.h:60,
                 from .pio\libdeps\nanorp2040connect\WiFiWebServer\src/WiFiWebServer.h:128,
                 from src\defines.h:372,
                 from src\main.cpp:18:
C:\Users\Eric\.platformio\packages\framework-arduino-mbed\variants\NANO_RP2040_CONNECT/pins_arduino.h:84: warning: "BOARD_NAME" redefined
   84 | #define BOARD_NAME   "Nano RP2040 Connect"
      | 
In file included from src\main.cpp:18:
src\defines.h:366: note: this is the location of the previous definition
  366 |     #define BOARD_NAME    BOARD_TYPE
      |
In file included from src\defines.h:372,
                 from src\main.cpp:18:
.pio\libdeps\nanorp2040connect\WiFiWebServer\src/WiFiWebServer.h:130:4: warning: #warning Use WiFiNINA from WiFiWebServer [-Wcpp]
  130 |   #warning Use WiFiNINA from WiFiWebServer
      |    ^~~~~~~
In file included from src\defines.h:372,
                 from src\main.cpp:18:
.pio\libdeps\nanorp2040connect\WiFiWebServer\src/WiFiWebServer.h:157:4: warning: #warning SENDCONTENT_P_BUFFER_SZ using default 4 Kbytes [-Wcpp]
  157 |   #warning SENDCONTENT_P_BUFFER_SZ using default 4 Kbytes
      |    ^~~~~~~
In file included from .pio\libdeps\nanorp2040connect\WiFiNINA_Generic\src\utility\spi_drv.cpp:61:
.pio\libdeps\nanorp2040connect\WiFiNINA_Generic\src/WiFiNINA_Pinout_Generic.h:107:4: warning: #warning Using default WiFiNINA settings [-Wcpp]
  107 |   #warning Using default WiFiNINA settings
      |    ^~~~~~~
In file included from .pio\libdeps\nanorp2040connect\WiFiWebServer\src/WiFiWebServer.h:411,
                 from src\defines.h:372,
                 from src\main.cpp:18:
.pio\libdeps\nanorp2040connect\WiFiWebServer\src/Parsing-impl.h: In member function 'bool WiFiWebServer::_parseForm(WiFiClient&, const arduino::String&, uint32_t)':
.pio\libdeps\nanorp2040connect\WiFiWebServer\src/Parsing-impl.h:896:23: warning: variable length array 'endBuf' is used [-Wvla]
  896 |               uint8_t endBuf[boundary.length()];
      |                       ^~~~~~
Compiling .pio\build\nanorp2040connect\lib1a7\WiFiWebServer\WiFi_HTTPClient\WiFi_HttpClient.cpp.o
Compiling .pio\build\nanorp2040connect\lib1a7\WiFiWebServer\WiFi_HTTPClient\WiFi_URLEncoder.cpp.o
Compiling .pio\build\nanorp2040connect\lib1a7\WiFiWebServer\WiFi_HTTPClient\WiFi_WebSocketClient.cpp.o
Compiling .pio\build\nanorp2040connect\lib1a7\WiFiWebServer\libb64\base64.cpp.o
Compiling .pio\build\nanorp2040connect\lib1a7\WiFiWebServer\libb64\cdecode.c.o
Compiling .pio\build\nanorp2040connect\lib1a7\WiFiWebServer\libb64\cencode.c.o
Compiling .pio\build\nanorp2040connect\lib1a7\WiFiWebServer\utility\RingBuffer.cpp.o
Compiling .pio\build\nanorp2040connect\FrameworkArduinoVariant\double_tap_usb_boot.cpp.o
Compiling .pio\build\nanorp2040connect\FrameworkArduinoVariant\nina_pins.cpp.o
Compiling .pio\build\nanorp2040connect\FrameworkArduinoVariant\variant.cpp.o
Compiling .pio\build\nanorp2040connect\FrameworkArduino\Interrupts.cpp.o
Archiving .pio\build\nanorp2040connect\liba19\libSPI.a
Compiling .pio\build\nanorp2040connect\FrameworkArduino\Serial.cpp.o
Compiling .pio\build\nanorp2040connect\FrameworkArduino\Tone.cpp.o
Compiling .pio\build\nanorp2040connect\FrameworkArduino\USB\PluggableUSBDevice.cpp.o
Archiving .pio\build\nanorp2040connect\lib0b9\libWiFiNINA_Generic.a
Compiling .pio\build\nanorp2040connect\FrameworkArduino\USB\USBCDC.cpp.o
In file included from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2040/hardware_regs/include/hardware/platform_defs.h:12,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2_common/pico_platform/include/pico/platform.h:12,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/common/pico_base/include/pico.h:19,
                 from C:\Users\Eric\.platformio\packages\framework-arduino-mbed\variants\NANO_RP2040_CONNECT\double_tap_usb_boot.cpp:2:
C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2_common/hardware_timer/include/hardware/timer.h: In function 'uint32_t time_us_32()':       
C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2040/hardware_regs/include/hardware/regs/addressmap.h:56:20: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers]
   56 | #define TIMER_BASE 0x40054000
      |                    ^~~~~~~~~~
C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2040/hardware_structs/include/hardware/structs/timer.h:33:38: note: in expansion of macro 'TIMER_BASE'
   33 | #define timer_hw ((timer_hw_t *const)TIMER_BASE)
      |                                      ^~~~~~~~~~
C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2_common/hardware_timer/include/hardware/timer.h:66:12: note: in expansion of macro 'timer_hw'
   66 |     return timer_hw->timerawl;
      |            ^~~~~~~~
C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2_common/hardware_timer/include/hardware/timer.h: In function 'bool time_reached(absolute_time_t)':
C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2040/hardware_regs/include/hardware/regs/addressmap.h:56:20: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers]
   56 | #define TIMER_BASE 0x40054000
      |                    ^~~~~~~~~~
C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2040/hardware_structs/include/hardware/structs/timer.h:33:38: note: in expansion of macro 'TIMER_BASE'
   33 | #define timer_hw ((timer_hw_t *const)TIMER_BASE)
      |                                      ^~~~~~~~~~
C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2_common/hardware_timer/include/hardware/timer.h:110:19: note: in expansion of macro 'timer_hw'
  110 |     uint32_t hi = timer_hw->timerawh;
      |                   ^~~~~~~~
C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2040/hardware_regs/include/hardware/regs/addressmap.h:56:20: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers]
   56 | #define TIMER_BASE 0x40054000
      |                    ^~~~~~~~~~
C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2040/hardware_structs/include/hardware/structs/timer.h:33:38: note: in expansion of macro 'TIMER_BASE'
   33 | #define timer_hw ((timer_hw_t *const)TIMER_BASE)
      |                                      ^~~~~~~~~~
C:\Users\Eric\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2_common/hardware_timer/include/hardware/timer.h:111:33: note: in expansion of macro 'timer_hw'
  111 |     return (hi >= hi_target && (timer_hw->timerawl >= (uint32_t) target || hi != hi_target));
      |                                 ^~~~~~~~
Compiling .pio\build\nanorp2040connect\FrameworkArduino\USB\USBSerial.cpp.o
Compiling .pio\build\nanorp2040connect\FrameworkArduino\WMath.cpp.o
Compiling .pio\build\nanorp2040connect\FrameworkArduino\abi.cpp.o
Archiving .pio\build\nanorp2040connect\lib1a7\libWiFiWebServer.a
Compiling .pio\build\nanorp2040connect\FrameworkArduino\api\Common.cpp.o
Compiling .pio\build\nanorp2040connect\FrameworkArduino\api\IPAddress.cpp.o
Compiling .pio\build\nanorp2040connect\FrameworkArduino\api\PluggableUSB.cpp.o
Compiling .pio\build\nanorp2040connect\FrameworkArduino\api\Print.cpp.o
Archiving .pio\build\nanorp2040connect\libFrameworkArduinoVariant.a
Compiling .pio\build\nanorp2040connect\FrameworkArduino\api\Stream.cpp.o
Compiling .pio\build\nanorp2040connect\FrameworkArduino\api\String.cpp.o
Compiling .pio\build\nanorp2040connect\FrameworkArduino\arm_hal_random.c.o
Compiling .pio\build\nanorp2040connect\FrameworkArduino\as_mbed_library\variant.cpp.o
Compiling .pio\build\nanorp2040connect\FrameworkArduino\itoa.c.o
Compiling .pio\build\nanorp2040connect\FrameworkArduino\main.cpp.o
Compiling .pio\build\nanorp2040connect\FrameworkArduino\mbed\platform\cxxsupport\mstd_mutex.cpp.o
Compiling .pio\build\nanorp2040connect\FrameworkArduino\pinToIndex.cpp.o
Compiling .pio\build\nanorp2040connect\FrameworkArduino\wiring.cpp.o
Compiling .pio\build\nanorp2040connect\FrameworkArduino\wiring_analog.cpp.o
Compiling .pio\build\nanorp2040connect\FrameworkArduino\wiring_digital.cpp.o
Compiling .pio\build\nanorp2040connect\FrameworkArduino\wiring_pulse.cpp.o
Compiling .pio\build\nanorp2040connect\FrameworkArduino\wiring_shift.cpp.o
Archiving .pio\build\nanorp2040connect\libFrameworkArduino.a
Linking .pio\build\nanorp2040connect\firmware.elf
Generating UF2 image
elf2uf2 ".pio\build\nanorp2040connect\firmware.elf" ".pio\build\nanorp2040connect\firmware.uf2"
Checking size .pio\build\nanorp2040connect\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [==        ]  19.0% (used 51388 bytes from 270336 bytes)
Flash: [          ]   4.0% (used 83616 bytes from 2097152 bytes)
Building .pio\build\nanorp2040connect\firmware.bin
================================================================================================ [SUCCESS] Took 33.79 seconds ================================================================================================
Environment        Status    Duration
-----------------  --------  ------------
nanorp2040connect  SUCCESS   00:00:33.788
================================================================================================ 1 succeeded in 00:00:33.788 ================================================================================================