SRAM PUF Keys on Pi Pico Boards

SRAM PUF Keys on Pi Pico Boards

ISEF Category: Embedded Systems

Ready to Turn This Idea Into a Real Project?

This guide was put together with the help of AI research tools to give you a solid starting point. But a competitive science fair project lives in the details: refining your research question, fine-tuning your variables, analyzing your data, and presenting your findings like a seasoned scientist.

For next steps tailored to your interests, skill level, and timeline, work one-on-one with a MehtA+ mentor. Learn more about MehtA+ Science & Engineering Research Mentorship →

Subcategory: Microcontrollers  ·  Difficulty: Advanced  ·  Setup: University Lab  ·  Time: Full Year

The Hook

Two boards that look identical can still act differently at startup. That tiny difference can become a fingerprint. Your job is to see how stable that fingerprint stays when temperature and voltage change. This is the same idea behind device authentication in secure hardware.

What Is It?

A physically unclonable function, or PUF, turns tiny manufacturing differences into a device fingerprint. For this project, you would look at SRAM startup state, which is the pattern of bits a microcontroller's memory holds right after power-on before software writes anything. Even if two Pi Picos come off the same production line, their SRAM can boot with slightly different patterns because no two chips are perfectly alike.

Think of it like two snowflakes made in the same cloud. They follow the same process, but tiny random differences make each one unique. Here, the "snowflake" is a bit pattern. You are testing whether that pattern stays stable enough across repeated boots, and whether temperature or supply voltage changes make some bits flip more often than others.

Why This Is a Good Topic

This is a strong science fair topic because you can measure a real signal, compare it across many boards, and test how outside conditions affect it. You are not just collecting random data, you are studying stability, uniqueness, and repeatability, which are core ideas in hardware security. The project also connects to a real problem, device authentication, and gives you room to build a careful analysis pipeline with statistics, classification, and error rates.

Research Questions

  • How does boot-to-boot SRAM bit stability vary across identical Pi Pico boards? ?
  • What is the effect of temperature changes on the fraction of stable startup bits? ?
  • Does supply voltage variation increase the rate of bit flips in SRAM startup patterns? ?
  • To what extent can one board's SRAM startup pattern be used to identify it among a fleet of boards? ?
  • Which SRAM bit positions stay most stable across repeated power cycles? ?
  • How does applying simple error correction change the reliability of a derived device key? ?

Basic Materials

  • Pi Pico boards from the same model batch, ideally 5 to 20 units.
  • USB cables and a powered USB hub.
  • A computer for data collection and analysis.
  • Digital multimeter for checking supply voltage.
  • Basic temperature control setup, such as a cool pack, warm environment, or insulated container.
  • Breadboard, jumper wires, and a stable power source for simple test setups.
  • Notebook or spreadsheet for logging board IDs, test condition, and boot results.

Advanced Materials

  • Pi Pico boards from multiple batches for comparison.
  • Environmental chamber or controlled temperature enclosure.
  • Programmable bench power supply with fine voltage control.
  • Logic analyzer or microcontroller logging setup for synchronized power cycling.
  • Oscilloscope for checking startup and supply behavior.
  • Precision digital multimeter.
  • Thermal probe or IR thermometer for monitoring board temperature.
  • Anti-static tools and fixtures for repeatable board handling.
  • Microcontroller programmer or debug interface, if needed for repeated firmware loading.

Software & Tools

  • Python: Parses SRAM bitmaps, computes stability metrics, and runs statistical tests.
  • Jupyter Notebook: Helps you explore patterns, plot board fingerprints, and compare conditions.
  • NumPy: Handles arrays of bits and fast calculations on large data sets.
  • pandas: Organizes board IDs, test conditions, and repeated measurements into tables.
  • ImageJ: Useful if you record board labels, test rigs, or thermal images for documentation.

Experiment Steps

  1. Define the fingerprint you will measure, such as raw startup SRAM bits or a derived helper value.
  2. Choose the comparison unit, like one board over time, or many boards under the same conditions.
  3. Plan how you will repeat power-on tests so you can separate random noise from real board differences.
  4. Design temperature and voltage test conditions that change one factor at a time.
  5. Build a scoring method for uniqueness, stability, and error rate so you can compare boards fairly.
  6. Decide how you will test whether a simple key derivation method still works after corrections.

Common Pitfalls

  • Mixing startup data from boards with different firmware versions, which can change the memory pattern you think you are measuring.
  • Letting the USB power source sag during repeated boots, which makes voltage a hidden variable.
  • Comparing boards without enough repeated trials, which makes a flaky SRAM pattern look stable.
  • Recording data after software has already overwritten SRAM, which destroys the startup fingerprint.
  • Testing temperature effects without tracking actual board temperature, which makes your condition labels unreliable.

What Makes This Competitive

A class-level version of this project only shows that SRAM startup patterns differ. A stronger version measures how well those patterns survive real stress, like temperature drift and voltage variation, across many boards and many boots. You can also raise the level by using proper statistical tests, confidence intervals, and receiver operating characteristic style metrics for identification. The best projects here do not stop at "this works," they answer how reliable it is, when it fails, and why.

Project Variations

  • Compare SRAM startup stability across Pi Pico boards from different production batches.
  • Test whether humidity or long storage time changes startup bit stability before power-on.
  • Use a simple fuzzy extractor or error-correction method and measure how much key reliability improves.

Learn More

  • Riscure PUF course materials: Search for free introductory lectures and articles on physically unclonable functions from this hardware security company and university partners.
  • NIST Special Publication on hardware security: Search NIST for publications on device authentication, randomness, and secure key storage.
  • IEEE Xplore: Search for review articles on SRAM PUFs, startup behavior, and bit stability in microcontrollers.
  • PubMed: Search for papers on temperature effects in electronic sensors and device reliability methods if you want broader measurement ideas.
  • MIT OpenCourseWare: Search for embedded systems and digital design lectures that explain microcontroller memory and startup behavior.

For next steps tailored to your interests, skill level, and timeline, work one-on-one with a MehtA+ mentor. Learn more about MehtA+ Science & Engineering Research Mentorship →

To discover more projects, visit the MehtA+ Science Fair Project Discovery Hub​ →

Shopping Cart