Sense
Pressure transducers, thermocouples, and load cells continuously translate test-stand physics into measurable signals.
PT · TC · LOADA real-time command, instrumentation, and sequencing platform for Maelstrom — a 500-lbf kerosene/LOX rocket engine testbed built to make experimental propulsion controllable.
Propulsion as a controllable system
Maelstrom is described in the project repository as a 500-lbf kerosene–LOX heatsink engine and a testbed for Purdue's Undergraduate Rocket Propulsion Laboratory to explore experimental propulsion technologies.
Its control software brings pressure transducers, thermocouples, load cells, solenoid valves, sequencing, and data logging into one operator-facing interface — with an emergency shutdown path always in reach.
The repository identifies a six-element, fuel-centered bi-swirl coaxial injector manufactured in 17-4 stainless steel.
Command path
Pressure transducers, thermocouples, and load cells continuously translate test-stand physics into measurable signals.
PT · TC · LOADA LabJack T7 provides the hardware I/O bridge between the physical test system and the Python application.
LABJACK T7The PyQt interface places readings and device states directly on a scaled piping & instrumentation diagram.
PYQT5 / P&IDSolenoid and pneumatic valve objects expose operator control while preserving defaults for shutdown behavior.
VALVE CONTROLCSV-defined sequences automate timed actions while the logger records timestamped sensor and valve state data.
10 ms / 500 msControl architecture
The application starts from main.py, creates the PyQt main window, initializes device objects, connects to the LabJack, loads an autosequence, and binds logging and shutdown behavior around the P&ID view.
Interactive showcase
This web panel is an interactive project visualization, not a connection to the real test stand. It mirrors the repository's control concepts: valve state, pressure channels, autosequencing, data rate, and emergency shutdown.
Operator visualization
The production application uses the test-stand P&ID as its background and places pressure readings, valve states, connection status, logging controls, plots, and emergency shutdown behavior around the diagram.
The repository also notes that the visual layer is positioned from a static coordinate system and scaled to fit the available screen geometry.
Valve states and pressure channels are positioned directly over the system schematic while controls remain grouped along the operator panel.
Modular Python stack
The repository separates physical devices, LabJack connectivity, data logging, the sequencer, and the GUI into focused modules so the test stand can evolve without collapsing the control software into one file.
Builds the P&ID view, initializes devices, charts, controls, connection status, and shutdown behavior.
Owns the connection path to the LabJack T7 used by the operator application.
Executes timed device actions loaded from sequence files and coordinates automated operation.
Encapsulates valve control, pressure transducers, thermocouples, and load-cell behavior.
# Launch the control application
app = QtWidgets.QApplication(sys.argv)
main_window = MainWindow()
app.setQuitOnLastWindowClosed(True)
main_window.show()
sys.exit(app.exec_())
# Conceptual execution path
connect(LabJack_T7)
initialize(devices)
load(sequence_csv)
start(data_logger)
run(autosequence)
emergency_shutdown()