A Multi Channel Analyzer (MCA) is able to split up the different energies of gamma radiation into spectral lines to identify radioactive isotopes.
There are already software solutions for the hobbyist out there like Theremino or PRA that although partly propose hardware implementations to do the signal amplification and analog to digital conversion.
Nevertheless, the idea is to learn as much as possible and therefore develop nearly everything from the ground up.
What is there to learn?
- What kind of scintillation crystal can be used to convert gamma rays into photons of visible light
- Operate photomultiplier tubes (PMT)
- Design and build a signal shaper to get a pulse that can be easily digitized
- Build an amplifier to get a signal that can be fed into the analog to digital converter (ADC)
- Program an STM32 to use its internal fast ADC to directly implement the full MCA functionality
- Transfer the spectrum from the STM32 to a host (e.g. normal PC or SBC) to post-process and display the measurements
- Identify radio isotopes by measuring their spectral lines (energies in eV)
The Scintillation Crystal
Whereas in the professional world semiconductor gamma spectrometer based on nitrogen cooled pure germanium are the first choice, the hobbyist most likely goes for a simpler solution by using scintillation crystals.
Although those crystals do not provide the high energy resolution of a Ge detector, they are still able to resolve the most important spectral lines with a full width at half maximum (FWHM) down to around 6%.
The well-known NaI(TI) scintillators are most common to build MCAs with an acceptable performance.
The Photomultiplier Tube (PMT)
The PMT is able to amplify even a single photon emitted by the scintillator into a measurable signal.
A bit of reverse engineering of the already attached (around 30 year old) pre-amplifier revealed that it needs a +/-15V operational voltage as well as a -HV of around 850V. The output is an already amplified positive exponential pulse in the nano seconds range.
The whole setup has been build into a tin can to make sure that no light and electrical noise can reach the PMT.
Signal Shaping and Amplification
Because of the idea to use the ADC input of the STM32G4 it is necessary to amplify the signal to a level of up to 3.3V to be able to use the full dynamic range.
Furthermore, the ADC will run at around 3.269 MHz which implies the need for an impulse shaping.
The best shape for low noise is a gaussian pulse that can be approximated by using a differentiator followed by integrators. That is simply realized in a passive manner by a CR and RC network.
32 Bit Microcontroller (STM32G4) – Bare Metal Programming
As mentioned above, the STM32 directly takes the samples via DMA (Direct Memory Access) from the internal ADC. Because of the high sample rate it is possible to read around 32 samples within a 10µs window which makes it feasible to find the peak of the shaped impulse without introducing to much noise.
The on hand STM32 includes an ADC that is only able to deliver 10 effective bits (SNR of approximately 60dB) resulting in a 1024 channel spectrum.
That is in fact good enough if we amplify the signal for the energy range of interest.
Furthermore, the used NaI(TI) crystal is quite small (30mm x 30mm) and therefore most effective for lower energy levels.
The STM32 is able to completely run on its own to do the full measurements over long periods of time.
To display and post process the collected data of 2^10 channels they are transferred via UART towards a host computer in a 2 seconds interval and at a speed of 230400 Bits/s. To make sure that the UART transfer does not impact the circular running ADC and peak detection it is using the DMA mechanism too.
The host can be either an SBC (e.g. Raspberry PI) or a full fletched laptop realizing some digital signal processing and displaying the gamma spectrum.
Up to know a very simple Python program receives the data, applies digital signal processing and displays the uncalibrated channels.
As test sources a lantern mantel that contains thorium nitrate and vaseline glas has been used.
ATTENTION: The isotope identification is a 1st guess!