Hardware Project

PhotonPeek Microscope

Open hardware + software platform to democratize photonic imaging. Designed so a motivated high-schooler with a <$100 budget can assemble, calibrate, and generate quantitative 2D / 3D intensity maps.

Overview

Arduino Python GUI FFT Deconvolution AI SR

PhotonPeek performs a raster scan using either manual stage shifts or stepper-driven motion. A 650 nm laser spot is steered onto the sample and the reflected or transmitted intensity is captured by a photodiode. The Arduino Mega streams raw readings tagged with coordinates; the Python application accumulates, averages (samples-per-pixel oversampling), then executes a modular enhancement pipeline.

Core Goals

  • Affordability: Keep BOM under $100 (excluding optional motors).
  • Transparency: Every algorithm documented; adjustable parameters.
  • Extensibility: Modular processing pipeline for custom stages.
  • Education: Teachable codebase—tidy, commented, minimal dependencies.

Performance Targets

  • <10 µm effective lateral sampling (high mode)
  • Real-time preview refresh without blocking acquisition
  • Configurable oversampling for SNR tradeoff
  • Deterministic scan reproducibility (optional stepper control)

Parts Manifest (Condensed)

See hardware/ in the repo for STL files and wiring diagrams.

Laser Diode 650nm

5mW. Stable red illumination; safe, inexpensive.

Photodiode Module

Analog voltage proportional to intensity; feeds A0.

Penta-Prism

Fixed 90° deviation; alignment simplicity.

Arduino Mega 2560

Multiple analog inputs & flash space.

Stepper Motors

Automated XY(Z) scanning (optional upgrade).

Objective Lens

Spot shaping + resolution improvement.

3D-Printed Mounts

Rigid, repeatable mechanical geometry.

Python Host PC

Acquisition + processing pipeline.

Processing Flow

The Python pipeline executes the following steps:

  1. Calibrate: Complete motor familiarization and flatfield acquisition.
  2. Accumulate: Sum raw counts into voxel grid; maintain hit counters.
  3. Average: Divide sums by counts → floating intensity.
  4. Flat-Field (Optional): Divide by normalized gain map.
  5. Normalize: Scale to [0,1].
  6. Edge Boost (FFT): High-boost via low-freq subtraction.
  7. Deconvolution: Richardson–Lucy or Auto Wiener.
  8. Contrast: CLAHE for local detail.
  9. Upscale: Interp / Rescale / DNN SR model.
  10. Export: CSV, PNG, 3D OBJ, or TIFF stacks.

Serial Data Protocol

The acquisition layer is line-oriented ASCII for clarity & debugging:

CONFIG,<mode>,<precision>,<x>,<y>,<z>,<spp>
HEADER,<x>,<y>,<z>,<spp>
DATA,<x>,<y>,<z>,<value>

CONFIG sets the session. HEADER echoes geometry for host validation. Each DATA line is streamed as soon as the analog read settles, enabling overlapping compute & I/O.

Roadmap

  • v1.0: Core acquisition + basic processing.
  • v1.1: Stepper integration + automated scans.
  • v1.2: Deconvolution + FFT enhancements.
  • v2.0: AI super-resolution models.
  • v2.1: Multi-wavelength support.