USBMCA-2.0 · CSpark Research

A Portable, USB Powered,
Multi Channel Analyzer

USBMCA-2.0 records an energy spectrum over USB. Hardware variants cover 1K to 32K channels. Plug in BNC, feed a shaped pulse, and acquire in list mode — on the desk, in the browser, or from a short Python script.

1K–32K channels 16-bit ADC List mode SHA 0–5 V
USBMCA-2.0 histogram software showing a calibrated photopeak with region analysis
SHA pulse input 0–5 V · USB powered csparkresearch.in
1K–32KSpectrum channels
16-bitPulse-height ADC
List modeEvery event, in order
0–5 VSHA pulse input

Instrument

Spectroscopy without a crate of NIM bins.

USBMCA-2.0 is a compact USB instrument for scintillation spectroscopy. Connect a shaping amplifier to the SHA input, set the threshold, and build a spectrum on the host — live Gaussian fits included. Channel count is a firmware variant: 1K, 2K, 4K, 8K, 16K, or 32K.

Specifications

ModelUSBMCA-2.0
Channels1K–32K variants (1024, 2048, 4096, 8192, 16384, 32768)
InputSHA pulse, 0–5 V
Conversion16-bit ADC
AcquisitionList mode (pulse-height list to the host)
Threshold12-bit lower-level discriminator, software-set
PowerUSB powered, portable enclosure
SoftwareLinux desktop app · Chrome web app · Python library
16

16-bit ADC

Each pulse height is digitised at 16-bit resolution so photopeaks stay well sampled across the 0–5 V SHA range. The firmware maps that conversion onto 1K–32K PHA bins depending on the variant.

LM

List-mode operation

Events are streamed as a list of pulse heights. Histogram is generated on the host in real-time, including on the fly analysis.

TH

4 Channel 12-bit DAC

A 12-bit lower-level discriminator, and 3 spare channels for HV adjustments, and other needs.

SHA

SHA pulse input 0 - 5 V

Shaped analog pulses from a spectroscopy amplifier. Unipolar SHA in the 0-5 V window [the usual output of a scintillator + PMT or SiPM chain] with 3us rise time.

USB

USB powered

No extra power brick. One cable to the computer (or a phone, via the web app) is enough to run the analyzer.

UI

Desktop, browser, Python

Histogram GUI for Linux, Chrome WebUSB on desktop or Android, and a Python library for scripts and overnight runs.

USBMCA-2.0 USB multi-channel analyzer with SHA input and USB port

Host software

Same spectrum on desktop, phone, or script.

The desktop GUI and the Chrome web app share the same workflow: record, clear, live analysis, energy calibration, CSV export.

  • RECORD / PAUSE the histogram; event totals still run
  • Draggable regions with Gaussian µ, σ, FWHM and sum
  • Energy calibration and log-Y view
  • Rebin the plot without touching the underlying data
  • Use it in Chrome on a computer or an Android phone

Applications

What a multi-channel analyzer is for.

An MCA measures the height of each pulse and builds an energy spectrum. With a scintillator and a shaping amplifier, that spectrum is the language of gamma rays.

Gamma spectroscopy

Photopeak, Compton continuum, and backscatter from NaI(Tl), CsI, or LaBr3. Identify 137Cs (662 keV), 60Co (1173 / 1332 keV), 22Na, and mixed sources.

Teaching laboratories

Undergraduate nuclear physics: energy calibration, FWHM vs. energy, coincidence setups, and counting statistics — without a crate of NIM modules.

Detector characterisation

Resolution (FWHM), peak-to-Compton, and gain drift. Live fits update every second so you see the effect of HV, threshold, or shaping time immediately.

Screening & environment

Count-rate and spectral fingerprints for lab sources, shielding checks, and teaching-scale environmental or food-sample demos.

PMT / SiPM pulse height

Any shaped unipolar pulse into the 0–5 V SHA input. Useful for scintillator work, SiPM gain curves, and X-ray fluorescence with a suitable detector.

Automation

The Python library is not tied to the GUI. Log spectra overnight, set the threshold from a script, and write CSV from a notebook.

Download

Installers and web app.

Linux desktop — Debian / Ubuntu

Package usbmca 2.0.0 for USBMCA-2.0 installs the histogram app, USB permissions, and a desktop launcher. The host reads the firmware channel count (1K–32K) on connect.

sudo dpkg -i usbmca-2.0.0.deb
sudo apt-get install -f

Web app — Chrome

No install on desktop Chrome. On Android, use HTTPS and grant USB access when prompted.

After install

Run usbmca from the menu or a terminal. Headless library: from usbmca import MCA.

Library

Ten lines to a spectrum.

Installed with the Debian package as usbmca.

from usbmca import MCA
import time

with MCA() as mca:
    mca.clear()
    mca.set_threshold(200)       # 12-bit threshold
    mca.start()                   # list-mode acquire
    time.sleep(10)
    n = mca.get_counts()
    spec = mca.histogram.copy()
    mca.stop()

print(f"events={n}  peak_bin={spec.argmax()}")

Resources

Specifications and links.

Getting started

Connect USB, attach a 0–5 V SHA pulse, install the desktop package or open the web app, then press RECORD. The installer sets USB permissions on Linux.

Web app

Desktop Chrome can use the histogram app with no extra software. On Android, Chrome needs a secure (HTTPS) page before it will talk to the USB device.

Python

After installing the package: from usbmca import MCA. Start list-mode acquisition, set the 12-bit threshold, and read the histogram or event count from a script.