Experimental stuff not yet mature enough to add to the main Pigweed repository.

Clone this repo:
  1. 001171f [roll third_party/pigweed] pw_bloat: New GN template to run single target binaries by pigweed-integration-roller · 28 minutes ago main master
  2. 1a15da0 [third_party/pigweed] Roll 2 commits by Ted Pudlik · 2 hours ago
  3. 207fe1c [roll third_party/pigweed] pw_presubmit: Make copyright check more forgiving by Rob Mohr · 3 hours ago
  4. 37b2042 [roll third_party/pigweed] pw_bloat: Rename pw_size_report -> pw_size_diff by Alexei Frolov · 5 hours ago
  5. 200d0c6 [roll third_party/pigweed] pw_software_update: Make OpenableReader::reader virtual by Eli Lipsitz · 19 hours ago

Pigweed Experimental

This repository contains experimental pigweed modules.

Repository setup

Clone this repo with --recursive to get all required submodules.

git clone --recursive https://pigweed.googlesource.com/pigweed/experimental

This will pull the Pigweed source repository into third_party/pigweed. If you already cloned but forgot to --recursive run git submodule update --init to pull all submodules.


The //pw_graphics folder contains some libraries for drawing to an RGB565 framebuffer and displaying it on various platforms.

The demo applications that make use of these libraries are:

Build instructions

First time setup:

git clone --recursive https://pigweed.googlesource.com/pigweed/experimental
cd experimental
. ./bootstrap.sh
pw package install imgui
pw package install glfw
pw package install stm32cube_f4



gn gen out --export-compile-commands --args="
ninja -C out


openocd -f third_party/pigweed/targets/stm32f429i_disc1/py/stm32f429i_disc1_utils/openocd_stm32f4xx.cfg -c "program out/stm32f429i_disc1_stm32cube_debug/obj/applications/terminal_display/bin/terminal_demo.elf verify reset exit"

Linux, Windows or Mac


gn gen out --export-compile-commands --args="
ninja -C out



Raspberry Pi Pico Connected to an ILI9341

Clone the pico-sdk repo:

cd $HOME
git clone https://github.com/raspberrypi/pico-sdk


gn gen out --export-compile-commands --args="
ninja -C out

Create a uf2 file for flashing the Pico with:

./out/host_debug/obj/targets/rp2040/bin/elf2uf2 ./out/rp2040/obj/applications/terminal_display/bin/terminal_demo.elf ./out/rp2040/obj/applications/terminal_display/bin/terminal_demo.uf2

Copy ./out/rp2040/obj/applications/terminal_display/bin/terminal_demo.uf2 to your Pi Pico.