This example was described in more detail in a blog post: https://krzmaz.github.io/2022-08-15-creating-a-web-server-on-raspberry-pi-pico-w-using-pico-sdk-and-lwip/
In my testing it reached ~20x performance of the MicroPython implementation from point 3.9.1 of https://datasheets.raspberrypi.com/picow/connecting-to-the-internet-with-pico-w.pdf
If you want to test this example with your html files, just add/edit them in the src/fs
directory and rebuild the project!
- CMake 3.19+
- ARM GNU toolchain
- Perl (should be already present on *nix systems)
For the first two you can refer to these instructions
cp cmake/credentials.cmake.example cmake/credentials.cmake
# <fill in your credentials>
./build.sh
The built USB Flashing Format file will be located in build/src/pico_w_webserver.uf2
- just copy it over to the Pico W to flash it!
Now the example uses Server Side Includes (SSI) to introduce dynamic data into the HTML responses.
As per documentation:
SSI-enabled pages must have one of the predefined SSI-enabled file extensions
Which means that no cost should be introduced in non SSI pages