Atef Adel Sheekhoon .
← Home
Open-source project · FPGA · Python

OpenMCS

A low-cost FPGA-based multichannel scaler and dual-input pulse counter, built for laboratory time-resolved measurements.

Architecture

Acquisition in hardware. Control on the desktop.

OpenMCS uses a Sipeed Tang Primer 25K FPGA Dock, a Teensy 4.0 microcontroller, and an SN74LVC245A input buffer.

The FPGA performs triggered histogram accumulation; the Teensy bridges acquisition and control to a Python desktop application for visualization, analysis, and export.

Event + Trigger SN74LVC245A Buffer Tang Primer 25K FPGA Teensy 4.0 → USB / GUI
Features

Documented capabilities

Histogram

1–16,384 bins

Repeated-pass accumulation with configurable bin dwell.

Timing

30 ns minimum bin

Nominal 100 MHz acquisition clock; 300 MHz input sampling is a separate specification.

Counters

Dual-input

64-bit cumulative counters and event/trigger count-rate traces.

Acquisition

Zero-dead-time design

Hardware accumulation; verify system limits for each application.

Software

Python GUI

Live previews, regions of interest, background subtraction, uncertainty and SNR.

Export

CSV + images

Run naming, plots, verification tools, and sample data.

Specifications are taken from the public repository README; see its documentation for operating conditions, caveats, and verification evidence.