Scientific Data Acquisition & Controls
Join me for a deep dive into the design of an open source, high-performance realtime data acquisition and control system.
In addition to describing the specifics of the Deimos system, this talk will provide a guide to reusable patterns for building reliable, performant, extensible, and user-friendly realtime machinery.
Topics will include:
- Hardware & firmware design
- Modularity & cost-performance-reusability tradeoffs
- Escaping FPGAs, RTOS, and async tasks - a Rust firmware success story
- Analog frontends
- Uncertainty analysis, calibration, and testing
- Sensor blocks - thermocouple, resistance, 4-20 mA
- Analog filtering - active, passive, combined, keeping the ADC happy
- Over-voltage protection in precision systems - a modern (ab)use of JFETs & an adventure with leakage current
- Digital filtering
- IIR vs. FIR for software-defined low-pass filters
- Live construction, initialization, and error-correction w/ 32-bit floats
- Sample sync via Lagrange polynomial fractional delay filter
- System design & application software
- UDP vs. TCP vs. USB vs. UART-to-USB, pub-sub vs. unicast
- Actively controlled multi-module time sync without admin access, clock wires, or platform-specific implementation
- Inversion of control to mitigate time-of-arrival uncertainty & maintain hard-realtime timing without low-level network access
- Non-dimensionalized controller
- Soft-realtime application timing, CPU usage tradeoff, and performant (busy/waiting) vs. efficient (OS-polled) operating modes
- Monotonics vs. "realtime" clocks, VDSO, and NTP adjustments
- Packet interchange format
- Realtime expression engine & ultra-low-latency calculations
- Cross-platform control software - a Rust software success story
- Supply chain, price cuts, and tariff times
- Prototyping cost-reduction tricks
About the Speaker
James Logan spent five years at SpaceX in propulsion development engineering for the M1D and Raptor engines before moving to Commonwealth Fusion Systems in 2021, where he is now a principal engineer in the scientific software group.