Fraunhofer UMSICHT · master's thesis
A Live Dashboard for CO₂ Electrolysis
Getting a test campaign ready went from hours to about five minutes. I proposed the project myself after watching scientists work out live experiments in Excel.
A CO₂ electrolyser is a machine that turns carbon dioxide into something useful. Running one is an experiment. The people running it could not see how it was doing until long after it had finished.
My software reads the rig while the experiment is still going. It fixes the broken rows, lines every sensor up in time and keeps it all in a small database on the machine itself, so nothing has to reach the cloud first. It watches for the moment the readings change shape, which usually means the cell is wearing out. Then it predicts what should have happened instead. A desktop app on top writes the reports the team used to write by hand.
Under the hood. Live ingestion over OPC UA and Modbus. DuckDB for in-memory vectorised time-series querying at the edge. Variance estimators and statistical change-point detection for structural breaks. Random Forest forecasting and correction against history. Faradaic efficiency and energy-cost KPIs. PyQt6 front end.
- Python
- DuckDB
- scikit-learn
- Random Forest
- change-point detection
- PyQt6
- LabVIEW
- OPC UA
Full walkthrough of the running dashboard, five minutes
- Layer 1
- Reads the rig while it is still running, over OPC UA and Modbus
- Layer 2
- Repairs broken rows and lines every sensor channel up in time
- Layer 3
- Stores it in DuckDB on the machine, so querying is fast and local
- Layer 4
- Works out Faradaic efficiency and energy cost while the run happens
- Layer 5
- Watches for the point where the readings change shape
- Layer 6
- Forecasts and corrects against what the rig did before
- Layer 7
- A PyQt6 application that writes its own reports
The seven layers, in the order the data moves through them

