← Back to Projects

PUF Tester

Hardware security testing toolkit for measuring unique device fingerprints and reliability under real test conditions.

Overview

PUF Tester evaluates how consistently and uniquely hardware devices can identify themselves, which is key for trusted systems. What makes it impressive is its focus on measurable evidence: it automates data collection and quantifies reliability and uniqueness. This turns security claims into concrete metrics teams can reason about.

Demo

No live demo available for this project. See the repo for setup and run instructions.

Description

Host-side Python tooling for testing and characterizing a PUF (Physically Unclonable Function) on a Xilinx Artix FPGA. One script drives the PUF over SPI (PyFTDI), collects response bytes, and writes responses.csv; the others compute reliability and uniqueness from that file for security and fingerprinting. Demonstrates hardware–software interface (SPI, PyFTDI), protocol design, and metric computation for device characterization.

automated_script.py Uses PyFTDI’s SpiController (e.g. ftdi://ftdi:2232h/1, 30 MHz SPI, mode 0). The protocol uses the lower 4 bits for command (START, SET_RUNS, SET_DELTA_HIGH, SET_DELTA_REST) and the upper 4 bits for data. configure_timing and configure_runs set timing and run count (1–15); start_run sends START and reads 16×runs bytes. main() configures timing and runs, triggers a run, and writes the response rows to responses.csv.

SPI_Interface.py Defines hamming(t1, t2) (element-wise inequality count). calc_reliability averages Hamming distance between a reference response and repeated responses (lower is more reliable). calc_uniqueness averages pairwise Hamming distance across different responses (higher is more unique). golden_response picks the most frequent response as the reference.

testing.py Reads responses.csv, sets response_ref = golden_response(responses), then calls calc_reliability and calc_uniqueness and prints the metrics (e.g. for validation or characterization reports).

Tech & tools

  • Hardware
  • PUF
  • Security
  • Characterization

Highlights

  • PUF characterization and measurement workflows
  • Hardware-level testing and data collection
  • Support for security and device fingerprinting use cases

More projects

tinyTemp

Custom tiny temperature monitor that evolved from an ATmega328P prototype into a compact ATtiny85 OLED PCB.

Award winning

WorldWide Rover

Award-winning internet-controlled rover that lets users drive and monitor a physical robot from anywhere in real time.

BareTag Tool Tracker

Smart tool tracking that helps teams instantly find equipment, prevent loss, and stay coordinated in real time.

Buffet

Automated trading system that tests strategies, learns from market behavior, and executes decisions with built-in risk controls.

HeadHunter

AI-powered job search assistant that helps people find better-fit roles faster, with smarter resume matching and cleaner tracking.

Meal Planner

Personal meal planning app that turns “what should I cook?” into a clear weekly routine with pantry awareness and shopping support.

BrickVision

Turns ideas or 3D models into buildable LEGO-style instructions, making custom creations faster and more accessible.

Pong on Assembly

Classic Pong rebuilt from the ground up in hardware and low-level assembly, showing full-stack systems engineering in action.

Custom Single-Cycle 32-Bit Processor

From-scratch 32-bit processor design that brings core computer architecture concepts to life in working hardware.

ThreadLib Disk Scheduler

C++ user-level threading library paired with a concurrent disk scheduler that coordinates requester threads and SSTF service.

Multilateration 3D Positioning

3D location engine that estimates where an object is in space and validates accuracy through realistic simulation.

RISC-V Encryption

Encryption concepts implemented at the hardware-software boundary, showing security logic at instruction level detail.

tinyTemp

Custom tiny temperature monitor that evolved from an ATmega328P prototype into a compact ATtiny85 OLED PCB.

Award winning

WorldWide Rover

Award-winning internet-controlled rover that lets users drive and monitor a physical robot from anywhere in real time.