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

Clone this repo:
  1. 72c5aca [roll third_party/pigweed] pw_unit_test: Check that a test is running when EXPECT is called by Wyatt Hepler · 12 hours ago main master
  2. 7830e1a [roll third_party/pigweed] pw_unit_test: Restructure as a facade by Wyatt Hepler · 12 hours ago
  3. 90baa84 [roll third_party/pigweed] docs: Update C++ guide for dealing with nodiscard values by Erik Gilling · 17 hours ago
  4. 9a0ea16 pw_graphics: Move existing graphics modules by Anthony DiGirolamo · 19 hours ago
  5. c3cfefa pw_graphics: Add Python package by Anthony DiGirolamo · 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.