This project provides a web-based control interface for WiFi-enabled microcontrollers such as the Raspberry Pi Pico W 2.
It allows you to interact with the controller through a browser — defining control setups, sending and receiving data, and monitoring or automating connected hardware.
- Web-based UI:
Serve a responsive web interface directly from the controller. - Hardware Control:
Send commands to control the controller’s I/O pins and peripherals. - Data Feedback:
Receive live data from the controller and visualize it on the web interface. - Standalone Operation:
Configure the controller to continue running independently after setup. - Built-in WiFi Access Point:
Connect directly to the controller’s WiFi network — no external router required.
Make sure you have the Raspberry Pi Pico SDK and toolchain installed.
make buildThis compiles the firmware and web interface into a single binary ready to flash.
- Put the controller in file storage (BOOTSEL) mode by holding the BOOTSEL button while plugging it in.
- Then flash the firmware:
make flash- Once flashing completes, the controller will reboot and start its WiFi access point.
- Connect to the WiFi network it creates, then open your browser and go to the displayed IP address (usually
192.168.4.1).
You can test the web interface in your browser without flashing:
make testThis builds a standalone version for local testing.
If you have a hot reload server you can use entr to update all file if you made an update and get that reloaded.
ls ui/content/*.* ui/content/components/* ui/layout.* | entr make uidevFor faster iteration when testing on hardware:
make devThis builds a version suitable for flashing, but skips HTML/JS compression.
- Build and flash using
make build && make flash. - Connect to the controller’s WiFi network.
- Open the IP address in your browser.
- Configure your control setup in the UI.
- Interact with your hardware — manually or in autonomous mode.
This project is open-source and available under the MIT License.
Icons used on svgrepo.com