Hardware and firmware platform for Nitrogen-Vacancy (NV) center-based optical sensing. Acquires photon-count signals from NV-center diamond samples, applies quenching pulses, and streams live data via a browser dashboard hosted on an ESP32-S3.
| NV Module | Optical Module | Quenching PCB |
|---|---|---|
|  |  |  |
| Diamond sample holder | BPW34 photodetector | Rev-5 quenching board |
| Module | Description | Photo |
|---|---|---|
| NV Module | Diamond sample holder with optical coupling | |
| Optical Module | BPW34 photodetector with signal conditioning | |
| Quenching PCB (rev 5) | Laser/MW pulse driver for spin initialization | |
| Readout Box | Enclosure integrating all modules | |
| ESP32-S3 | Main MCU — ADC readout + Wi-Fi web server | |
| ADS1015 / ADS1115 | External 12/16-bit ADC for precision readout |
Full schematic PDF → SCH_Schematic4_2026-02-13.pdf
| Metric | Value | Conditions |
|---|---|---|
| ADC noise floor | ___ LSB RMS | ADS1115, PGA ±0.256 V |
| Sampling rate | ___ Hz | Web server mode |
| Signal-to-noise ratio | ___ dB | Laser power: ___ mW |
| Quenching pulse width | ___ µs | |
| Web dashboard latency | ___ ms | LAN, single client |
Figure 1 — Raw vs. optimized ADC readout (ADD CAPTION)
![]() |
![]() |
Live ADC readout served from ESP32-S3 over Wi-Fi
After flashing, the ESP32 hosts a dashboard at the IP shown on the serial monitor:
- Live ADC signal plot
- Start / Stop acquisition
- CSV data export
CAD files: Autodesk Inventor assemblies in Design/. Printable STLs in Design/Print/.
Fraunhofer/
├── Design/ # Mechanical CAD (Autodesk Inventor)
│ ├── Parts/ # Component libraries (PCB 3D models, connectors, sensors)
│ ├── Photos/ # Renders and assembly photos
│ ├── Print/ # 3D-printable STL exports
│ ├── Assembly_NV_Module.iam # NV sensor module assembly
│ ├── Assembly_Optical_Module.iam
│ ├── Assembly_Quenching.iam
│ └── Assembly_Box.iam # Enclosure assembly
│
├── Design Photos/ # Step-by-step build photos and design plots
│
├── ESP32/ # Firmware (PlatformIO / Arduino)
│ └── ReadOut/
│ ├── ESP32S3 ReadOut/ # Base acquisition firmware
│ ├── ESP32S3 ReadOut Web Server/ # Web interface variant
│ ├── ESP32S3 ReadOut Web Server Optimized/ # Production variant
│ └── ESP32S3 Noise Optimization/ # ADC noise experiments
│
└── Ordered PCB/ # Manufacturing files — PCB revision 5
├── Gerber_PCB5_2026-02-13.zip
├── BOM_Quenching_kit_PCB5_2026-02-13.xlsx
├── PickAndPlace_PCB5_2026-02-13.xlsx
└── SCH_Schematic4_2026-02-13.pdf
Built with PlatformIO (Arduino framework).
cd "ESP32/ReadOut/ESP32S3 ReadOut Web Server Optimized"
pio run --target upload| File | Purpose |
|---|---|
Gerber_PCB5_2026-02-13.zip |
Upload to JLCPCB / PCBWay |
BOM_Quenching_kit_PCB5_2026-02-13.xlsx |
Bill of materials |
PickAndPlace_PCB5_2026-02-13.xlsx |
SMT assembly file |
SCH_Schematic4_2026-02-13.pdf |
Full schematic |
3D_PCB5.step |
3D PCB model |
| Tool | Version |
|---|---|
| Autodesk Inventor | 2024+ |
| PlatformIO | Latest (VS Code extension) |
| EasyEDA | v6.5.51 |
| ESP32 Arduino core | Latest stable |
Samuel Sanchez Moreno — Fraunhofer IAO (HiWi, 2025–2026)






