SkillAgentSearch skills...

GammaSpectrometer

Device for quantitative analyze energy spectra of gamma-ray sources. Allows to study what radioactive isotopes in what quantities are present in measured sample.

Install / Use

/learn @RobertGawron/GammaSpectrometer
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Silicon Photomultiplier Gamma Spectrometer

Formal Verification Unit Tests firmware-build

Principle of operation

This device allows for the quantitative measurement of the amount of different isotopes in an analyzed sample.

It consists of a scintillator (a material that converts gamma particles into photons) and a photomultiplier that multiplies those photons and converts them into electric current pulses. By measuring the amplitude of these pulses, it is possible to calculate the original energy of the gamma ray that produced the pulse.

Sampling data over time and plotting its histogram reveals which radioactive isotopes are present in the measured sample and their respective ratios.

Design Philosophy

Silicon Photomultiplier vs Traditional PMT

Traditional gamma spectrometers use vacuum photomultiplier tubes (PMT) that require high voltage (1-2kV), are fragile, bulky, and sensitive to magnetic fields.

This project uses a Silicon Photomultiplier (SiPM) - a modern solid-state alternative that solves the mentioned issues of PMTs.

Digital vs Analog Processing

Traditional spectrometers use analog CR-RC pulse shaping circuits and peak detectors.

Thanks to modern ADCs and FPGAs, it is possible to do all of this in software, making modifications much easier. The disadvantage is that the project is more costly due to higher requirements for the ADC and FPGA.

Hardware

Architecture Overview

The hardware consists of three PCBs:

Data Acquisition Unit

Handles low-level currents produced by the sensor (typically 1µA - 1mA pulses, 10mV - 1V after amplification):

  • NaI(Tl) Scintillator Crystal - Converts gamma rays into visible light pulses through scintillation
  • Silicon Photomultiplier (MICROFC-60035-SMT-TR1 SiPM) - Converts light pulses from the scintillator crystal into electrical current pulses
  • Transimpedance Amplifier (LTC6268) - Amplifies current pulses from SiPM and converts to voltage
  • Differential ADC Driver (AD8139) - Shifts the signal to +1v5 common-mode voltage required by the ADC
  • Temperature Sensing (TBD) - Monitors SiPM temperature for bias compensation
  • Bias Supply (TPS7A4901) - Provides stable, filtered 29V bias voltage for the SiPM, automatically adjusted for SIPM's temperature changes
  • Overcurrent Protection (TBD) - Cuts bias voltage if SiPM is exposed to external light source, preventing sensor damage from excessive photocurrent

Note: Analog pulse shaping and peak detection are not used - raw signal is digitized directly and processed in FPGA.

More info.

Data Processing Unit

Handles high-speed data processing and provides power for all nodes:

  • ADC (AD9226) - 12-bit, 65 MSPS sampling rate, produces 780 Mbps (97 MB/s) of raw data
  • FPGA (iCE40HX4K) - Real-time digital pulse processing (trapezoidal filtering, peak detection, histogram generation)
  • SPI Flash (TBD) - Stores FPGA configuration bitstream
  • SPI Port - External header for FPGA programming
  • UART to USB Converter (TBD) - Communication interface to PC.

More info.

Main Board

Provides mechanical and electrical connections between the two boards above, power distribution and external interfaces (Power and USB socket).

More info.

Tools: KiCad.

Software

The project is developed using a completely open-source FPGA toolchain. The RTL code is written in VHDL-2008, synthesized with Yosys + GHDL, and targets iCE40 FPGAs via nextpnr. All code is formally verified using SymbiYosys with PSL assertions and unit tested using the VUnit framework.

The entire toolchain is containerized in a Docker image.

More info.

Mechanical

The analog frontend requires a metal chassis for protection from electromagnetic interference and external light sources.

The scintillator crystal is mounted inside using a 3D-printed stand.

The crystal and SiPM are optically coupled using optical gel to minimize light pulse reflections at the interface

Tools: OpenSCAD and FreeCAD.

More info.

Simulation

LTspice

DevOps

More info.

View on GitHub
GitHub Stars12
CategoryProduct
Updated1d ago
Forks1

Languages

Jupyter Notebook

Security Score

95/100

Audited on Mar 30, 2026

No findings