Code
There a two branches with code relevant to this project:
- The fruit_jam branch, which contains the bare minimum to run Pico-Faces on the Fruit Jam and control it over USB serial. It does not display a face by default on boot up. To render a face, connect via USB serial to the device and send a capital "G" then press enter. This would be the best branch to build from if you want to take the bare Pico-Faces image generation and make something different from it on the Fruit Jam.
- The color_grid_mode branch, which contains the full 2x2 color grid demo. This one does render the first face on boot up automatically. It also provides controls using the built-in buttons to change rendering modes and color style, so it can be used without a host computer or USB serial. Start from this branch if you want to customize the demo behavior or make custom color styles.
Building the Pico-Faces project is a two step process. First configure the build, and then run it to make the firmware files. There are a few requirements to set up before the first build.
Clone a specified branch of the project using the following command. Replace color_grid_mode with fruit_jam if you want the bare Fruit Jam and DVI support without the 2x2 grid demo with button controls.
git clone -b color_grid_mode https://github.com/adafruit/pico-faces.git
Requirements
Clone the pico-sdk repo and fetch the tinyusb submodule inside of it using the following commands.
git clone https://github.com/raspberrypi/pico-sdk.git cd pico-sdk git submodule update --init lib/tinyusb cd ../
Configure & Build
These commands will let the environment know where to find pico-sdk, configure a build, and then make the build.
Update the value of PICO_SDK_PATH to point to the pico-sdk repo that was cloned in the previous step if it isn't in home directory at ~/pico-sdk/.
export PICO_SDK_PATH=~/pico-sdk/ # building on x86_64 cmake -S firmware -B build/fruitjam -G "Unix Makefiles" -DPICO_BOARD=adafruit_fruit_jam -DRF_DVI=1 -DRF_VGA=0 -DMODEL_BIN=$PWD/checkpoints/m3_decD_deep_full/model.bin -DCMAKE_BUILD_TYPE=Release -DPICOTOOL_FORCE_FETCH_FROM_GIT=1 # building on ARM like RPi # cmake -S firmware -B build/fruitjam -DCMAKE_BUILD_TYPE=Release -DRF_DVI=1 -DRF_VGA=0 -DPICO_BOARD=adafruit_fruit_jam -DMODEL_BIN=$PWD/checkpoints/m3_decD_deep_full/model.bin cmake --build build/fruitjam -j4
When the build is complete, the firmware file will be output as build/fruitjam/pico_faces.uf2. That file is ready to be copied to the RP2350 bootloader drive of the Fruit Jam.
Page last edited September 14, 2026
Text editor powered by tinymce.