Openreactor
Open-source IEC nuclear fusion reactor: control, monitoring, and data logging system
Install / Use
/learn @natesales/OpenreactorREADME
OpenReactor
Open-Source IEC nuclear fusion reactor control, monitoring, and data logging system
Overview
OpenReactor is an open source reference design and control system for a small scale neutron-producing IEC fusor. The control system integrates with Pfeiffer high vacuum turbo pumps, MKS and Edwards high vacuum gauges, MKS and Sierra mass flow controllers, high voltage power supplies, and proportional neutron counters and NIM instrumentation.
Features
-
Repeatable "one-click" fusion - OpenReactor runs reusable YAML configuration profiles and monitors power, vacuum, and gas delivery conditions to achieve fusion with no user interaction
-
Mobile Control - a mobile web app communicates with the reactor to tweak settings remotely in real time over the network
-
kubectl-inspired CLI for monitoring and control -
Realtime data logging and monitoring with InfluxDB and Grafana
-
Modular microservice architecture
-
100% open source
|
|
|
|
|:-----------------------------------------------------------------:|:----------------------------------------------------------------------------------:|:-------------------------------------------------------------------------:|
| Deuterium plasma <br> (During neutron-producing fusion run) | Low-energy plasma test <br> (Poor insulation on high voltage feedthrough) | Reactor hardware <br> (Chamber behind lead shield and foil cover) |
Contents
Architecture
OpenReactor runs as a collection of microservices that interface with the hardware components of a reactor over RS232 or USB. Each runs in a container and exposes a REST API that's shared between similar hardware, such as different vacuum guages and mass flow controllers. Hardware subsystem microservices share a common service interface that manages configuration, polling, and data logging for each service.
Hardware Subsystems
hv- High voltage power supplypfturbo- Pfeiffer turbo molecular pump controllersedwgauge- Edwards high vacuum gaugesmksgauge- MKS high vacuum gaugesmksmfc- MKS mass flow controllerssierramfc- Sierra mass Flow controllerscounter- Neutron counterradiacode- Radiacode scintillation counter
Deployment
The hardware subsystem services, state machine, and Grafana and Caddy, all run in Docker Compose on the reactor control computer. InfluxDB runs on a larger compute cluster to offload query processing.
State Machine
The central state machine and operator controls run in a service called "maestro" . When running a fusion profile, maestro monitors and adjusts reactor parameters such as voltage, vacuum level, and flow rate, to achieve repeatable fusion. It also serves the API and WebSocket server for the web UI and fusionctl control program.

FSM Flowchart
maestro detects long term over-current and low vacuum errors and shuts the high voltage supply down to limit arcing. The high voltage supply controller also has an internal current limit that reacts much faster than maestro would be able to.
Remote Control
Reactor operators interact with OpenReactor through a web UI and kubectl-inspired CLI. The web UI communicates with maestro over WebSockets for reactor state management and manual control over the high voltage, gas delivery, and vacuum systems.
|
|
|
|:-----------------------:|:--------------------------------:|
| Web UI | fusionctl CLI |
Fusion Profiles
Fusion profiles describe the reactor's operational parameters for a fusion run. They're stored as YAML documents and managed with the fusionctl control program.
fusionctl
For example, fusionctl profile generate creates a new default profile:
name: Default # User specified name
revision: "0" # User specified revision identifier
auto:
startOnApply: false # Start profile on apply
startGas: false # Skip to GasRegulating immediately on CathodeVoltageReached
vacuum:
turboRotorSpeed: 90000
turboRotorStartupHold: 15s
lowVacuum: 0.01
targetVacuum: 1e-05
targetVacuumHold: 15s
cathode:
tripCurrent: 8
rampCurve: "0" # Voltage ramp curve in slope-intercept form in terms of x (in milliseconds)
voltageCutoff: 40
gas:
flowRate: 10
flowSlop: 0.1
runtime: 1m
To apply the profile, run fusionctl profile apply -f 20240701001.yaml. OpenReactor will start the profile at TurboSpinup if auto.startOnApply is set, otherwise it'll wait in the ProfileReady state for an operator to start the profile from the web UI or with fusionctl fsm next. Running fusionctl fsm reset or clicking the FSM reset button on the web UI sets the FSM back to ProfileWait and stops the current profile.
Data Logging
Each hardware subsystem reports metrics to a central InfluxDB server for visualization in Grafana.

Hardware
High Voltage Supply Controller
The hv service controls and monitors a Spellman PTV power supply and communicates communicates with a RP2040 over serial. The microcontroller features an internal over-current shutoff, read from a 250W ballast resistor to sink momentary arc faults.

HV supply overview
The power supply case is grounded to the chamber and mains earth through the AC plug, and a RG8 coax cable supplies the high voltage output to the cathode feedthrough.

High voltage power supply and ballast resistor
Gas Conversion and Delivery System (GCDS)
The gas delivery conversion and delivery system manages Deuterium production and regulation via electrolysis and flow restriction.
The system has two tasks:
- Convert Deuterium Oxide (D<sub>2</sub>O) to Deuterium (D<sub>2</sub>) gas via electrolysis
- Regulate gas flow into the central vacuum chamber
There are two independent gas supply lines connected to the vacuum chamber. The primary supply line handles gas conversion and closed-loop flow control, while a secondary manual syringe and needle valve allows the chamber to be purged with inert gas or short fusion runs when supplied with D<sub>2</sub> gas.
Gas Conversion and Delivery System Overview
D<sub>2</sub>O to D<sub>2</sub> Conversion
D<sub>2</sub>O is manually injected into a PEM cell mounted under the mass flow controller as needed prior to reactor operation. A 3-way luer lock valve on the PEM cell input supply tube permits a syringe to push any remaining liquid into the PEM cell to conserve D<sub>2</sub>O. The PEM cell output is connected to a second 3-way luer lock "divert" valve fitted with a reservoir syringe to store D<sub>2</sub> gas during or prior to fusion operation. The divert valve enables the gas supply to come directly from the reservoir syringe or both the reservoir syringe and PEM cell for continuous operation.
Gas Regulation
The divert valve feeds the mass flow controller, which regulates gas flow from the reservoir syringe and, depending on the divert valve position, the PEM cell too.
OpenReactor supports MKS and Sierra mass flow controllers. Each shares an identical internal REST API and communicates with the MFC over RS232 (Sierra) or USB to a RP2040-based control board.
|
|
|
|:---------------------------------------------------:|:--------------------------------------------------:|
| GDCS with MFC, PEM cell, and adapter column vi
