The Need

The detector needed a maintainable control and acquisition layer that could participate in the same EPICS ecosystem as motion, scanning, diagnostics, and higher-level automation. The goal was broader than displaying an image: the system needed predictable acquisition controls, health telemetry, metadata, simulation support, and compatibility with existing areaDetector plugins.

Driver Architecture

I developed the core C++ driver around EPICS asyn, ADDriver, and ADCore. Both simulation and hardware acquisition were designed to feed the same NDArray pipeline, allowing acquisition logic, visualization, callbacks, and downstream plugins to be exercised before the complete detector was available.

The IOC exposed acquisition state, exposure time, trigger mode, gain, detector status, serial number, FPGA and microcontroller versions, FPGA and PCB temperatures, and correction status. Complete NDArray metadata and callback configuration were important to reliable Phoebus rendering and downstream processing.

Hardware Integration

The development path began with the Hamamatsu F40 control board on Linux. The board enumerated as a Cypress WestBridge/FX3 boot device before RAM-loading the detector firmware and transitioning to its operational USB identity. Work included reproducing the initialization sequence, implementing firmware upload and register wrappers, studying bulk endpoint behavior, and diagnosing re-enumeration and fragmented-frame handling.

I coordinated with the detector, firmware, and software teams as the interface progressed from simulation into hardware integration. Fragmented image support and seam-interpolation/correction handling were incorporated into the production path, while the IOC was integrated into the CIDER Docker deployment environment.

Operator Experience

The Linux interface provided live two-dimensional image display, acquisition control, trigger and gain selection, status indication, correction state, and access to detector diagnostics through EPICS process variables. Using standard EPICS boundaries made the camera accessible to operators, scan software, automation services, and diagnostic tools without requiring each consumer to implement the vendor protocol.

Engineering Outcome

The result was a more comprehensive controls layer than a narrowly scoped vendor acquisition utility: simulation and real-device paths, standardized metadata, detector health, image corrections, operator controls, and integration with the larger microscope architecture. The work also established a reusable pattern for bringing specialized X-ray detectors into a product-agnostic EPICS platform.

ENGINEERING INSIGHT

A detector driver becomes infrastructure when acquisition, metadata, diagnostics, simulation, and deployment are designed as one system.

Technologies: EPICS 7, areaDetector, ADCore, ADDriver, asyn, C++, libusb, Cypress FX3, NDArray, Phoebus, Linux, Docker, and CIDER.

← Back to Projects