Skip to main content
Version: FILS English

Pass Vault

A biometric hardware security key that acts as a USB HID keyboard, mapping 10 fingerprints to specific passwords or macros.

info

Author: Polojan Radu-Mihai
GitHub Project Link: https://github.com/UPB-PMRust-Students/fils-project-2026-radupolojan

Description

The Pass Vault is a hardware security device that stores encrypted passwords and types them automatically when a recognized fingerprint is scanned. By acting as a USB keyboard (HID), it requires no special software on the host PC. It features a Multi-Profile interface where each finger triggers a different credential, all managed via a secure USB-C smartphone or pc companion app.

Motivation

I chose this project to create a physical-first security solution that eliminates the vulnerability of software-based password managers. It combines biometric authentication with Rust’s memory safety to ensure that credentials remain unhackable and accessible only by the physical owner.

Architecture

Log

Week 5 - 11 May

  • Bought and collected all the hardware components (Olimex RP2350 board, SFM-V1.7 sensor, and XIAO RP2040 board).
  • Checked the pinouts and connection diagrams for the parts.

Week 12 - 18 May

  • Wrote most of the microcontroller firmware code in Rust.
  • Studied and tested the embassy and usb libraries to understand how asynchronous hardware communication works.
  • Made the fingerprint sequential enrollment logic and the USB keyboard emulation.

Week 19 - 25 May

  • Created the desktop companion application for the PC using egui.
  • Designed the 3D case for the device and successfully 3D-printed the final physical enclosure.

Hardware

The project uses the high-pin-count RP2350B, featuring 16MB FLASH and a 8MB PSRAM for advanced data handling and an XIAO RP2040 as the debugger.

Schematics

3dRepresentation Schematic

Kicad Schematic

Picture

Bill of Materials

-->

DeviceUsagePrice
RP2350-PICO2-XXL OLIMEXMain MCU55 RON
Senzor amprenta SFM-V1.7Biometric authentication94 RON
Seeed Studio XIAO RP2040Hardware SWD Debug Probe30 RON

Software

LibraryDescriptionUsage
embassy-rpAsync runtime and HAL for RP2040/RP2350Provides async drivers for hardware timers, UART communication with the sensor, and internal flash controllers.
embassy-usbAsynchronous USB device stackHandles the concurrent USB stack, configuring the device as a composite USB CDC Serial class and USB HID Keyboard.
usbd-hidUSB HID class and report descriptor generatorGenerates the official boot keyboard reports used to type decrypted characters into any OS host text-field.
embedded-storageStorage traits for embedded systemsProvides standardized interfaces to safely interact with non-volatile memory sectors.
eframe / eguiImmediate mode GUI framework for DesktopDrives the minimalist PC companion application interface, managing background thread message passing channels.
serialport-rsCross-platform serial port library for RustEnables the desktop client app to perform background plug-and-play USB hardware polling based on unique VID/PID signatures.
  1. Rust documentation
  2. XIAO RP2040 as DebugProbe
  3. ChaCha20 Algorithm
  4. Egui / Eframe
  5. Egui / Eframe git
  6. Embassy Framework (Async Rust Embedded)