A custom build pico-fido firmware(s) with LibreKeys applied patches
Find a file
github-actions[bot] 302a8b2e3b flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/aca4d95fce4914b3892661bcb80b8087293536c6?narHash=sha256-E1bxHxNKfDoQUuvriG71%2Bf%2Bs/NT0qWkImXsYZNFFfCs%3D' (2026-03-06)
  → 'github:NixOS/nixpkgs/c06b4ae3d6599a672a6210b7021d699c351eebda?narHash=sha256-wvfdLLWJ2I9oEpDd9PfMA8osfIZicoQ5MT1jIwNs9Tk%3D' (2026-03-13)
2026-03-15 10:32:10 +05:30
.github/workflows ci: fix: firmware naming 2026-03-03 22:11:31 +01:00
examples ci: add workflows for automatic updates and checks (#9) 2026-03-03 19:16:05 +05:30
lib add pico-fido-openpgp and pico-fido2 2026-03-03 21:22:41 +01:00
pkgs add pico-fido-openpgp and pico-fido2 2026-03-03 21:22:41 +01:00
.gitignore ci: add workflows for automatic updates and checks (#9) 2026-03-03 19:16:05 +05:30
flake.lock flake.lock: Update 2026-03-15 10:32:10 +05:30
flake.nix add pico-fido-openpgp and pico-fido2 2026-03-03 21:22:41 +01:00
LICENSE Initial commit 2026-01-10 12:03:10 +05:30
README.md add pico-fido-openpgp and pico-fido2 2026-03-03 21:22:41 +01:00

pico-fido-firmwares

A custom build pico-fido firmware(s) with LibreKeys applied patches

Build with Flakes

# Build a specific firmware
nix build .#pico-fido
nix build .#pico-fido2
nix build .#pico-openpgp

# Build all firmware variants (matrix build)
nix build .#pico-fido-firmwares
nix build .#pico-fido2-firmwares
nix build .#pico-openpgp-firmwares

For custom parameters, see the Non-Flakes section below (or modify flake.nix directly).

Build with Nix (Non-Flakes)

# Basic build (uses defaults)
nix-build -E 'with import <nixpkgs> {}; callPackage ./pkgs/pico-fido/default.nix {}'
nix-build -E 'with import <nixpkgs> {}; callPackage ./pkgs/pico-fido2/default.nix {}'
nix-build -E 'with import <nixpkgs> {}; callPackage ./pkgs/pico-openpgp/default.nix {}'

# Build matrix (all variants)
nix-build -E 'with import <nixpkgs> {}; callPackage ./pkgs/pico-firmwares/default.nix {}' -A pico-fido-firmwares

Custom Parameters

nix-build -E 'with import <nixpkgs> {}; callPackage ./pkgs/pico-fido/default.nix {
  picoBoard = "waveshare_rp2350_one";
  vidpid = "Yubikey5";
  extraCmakeFlags = [ "-DPICO_DEBUG_INFO_IN_RELEASE=ON" ];
}'

Available Parameters

Parameter Default Description
picoBoard "pico" Target board (e.g., pico, pico2, waveshare_rp2350_one)
vidpid "" VID/PID string (e.g., Yubikey5)
usbVID "" USB Vendor ID (alternative to vidpid)
usbPID "" USB Product ID (alternative to vidpid)
enableEdDSA false Enable EdDSA support
extraCmakeFlags [] Additional cmake flags
secureBootPKey null Path to secure boot private key (NOT TESTED YET!)

Note: vidpid and usbVID/usbPID cannot be used together.