Skip to content

krzmaz/pico-w-webserver-example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Example of a web server using Pico SDK and lwIP

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!


Dependencies:

  • CMake 3.19+
  • ARM GNU toolchain
  • Perl (should be already present on *nix systems)

For the first two you can refer to these instructions


One time setup

cp cmake/credentials.cmake.example cmake/credentials.cmake
# <fill in your credentials>

Building

./build.sh

Flashing

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!

SSI

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

References