This repository contains the production snapshot of the instrument-control software and associated measurements used for a scientific manuscript and its Supporting Information. It combines Python control scripts, Arduino firmware, and raw/summary measurement data.
.
├── src/
│ ├── AURORA_SDL_Scripts/ Python instrument-control scripts
│ └── T_controller/ Arduino sketches for temperature and laser control
├── Raw Data/ Raw spectrometer/power files and per-condition summaries
├── docs/ Reproducibility and data documentation
└── requirements.txt Python dependencies
The source files are retained as supplied from production. This repository organization does not imply that the control code has been refactored, generalized, or validated on hardware outside the original setup.
The control scripts can actuate a high-temperature heater, laser, syringe pump, shutter, and spectrometers. They are not simulation code. Do not execute them without the relevant hardware, interlocks, trained supervision, and an experimentally approved operating procedure. Confirm all fluid connections, waste routing, temperature limits, laser safety controls, and serial-port assignments before use.
Use a supported Python 3 environment on the acquisition computer. From the repository root:
py -3 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python -m pip install -r requirements-hardware.txtThe production scripts also import the lab-specific matterlab_pumps and matterlab_spectrometers packages. Install those from the original Matterlab source or internal package index; their source revision is not included in this snapshot and should be recorded in the experiment log.
src/AURORA_SDL_Scripts/maincode_OO.py is the main orchestration script. The current production configuration expects:
| Device | Current port in script |
|---|---|
| Temperature controller | COM3 |
| Laser controller | COM4 |
| Pump controller | COM5 |
The script constructs temperature, laser, shutter, spectrometer, power-meter, and pump controllers. Its active sequence includes system cleaning and argon operations; additional acquisition and reaction stages remain in the source as commented production instructions. Review the file and the experimental run sheet before enabling any stage.
The autosave classes write three measurement products for each run:
*_PL.csv: wavelength/intensity data at the longer integration time;*_power.txt: 31 power-meter readings;*_UV2.csv: wavelength/intensity data at the shorter integration time.
The production scripts default to an absolute Windows results directory. For a new run, supply or configure a run-specific output directory according to the lab's operating procedure; do not overwrite the archived Raw Data/ files.
Raw Data/ contains 15 experimental-condition directories, 277 files, and approximately 30.6 MB of data in this snapshot. Directory names encode the condition labels used during the experiments; the exact meaning and units of each numeric component should be taken from the manuscript and laboratory notebook rather than inferred from the filenames alone.
Each condition contains some combination of:
- PL and UV2 two-column CSV files generated by the autosave scripts;
- power files with columns
Measurement_Number,Power; summary_results.csvfiles with columnsSample,Green Area,Red Area,RQY Green,RQY Red,Total RQY,Max Red/Green, andA.
The data are retained in their original naming and numeric format. No filtering, baseline correction, or recalculation is performed by this repository.
Upload the appropriate sketch from src/T_controller/ using the Arduino IDE and the board-specific settings recorded in the hardware log. T_controller.ino communicates at 9600 baud using newline-delimited JSON-like commands. LASER_Serial_Manipulation_final.ino communicates at 9600 baud using 0, 1, and 2 commands for laser off, on, and status.
The temperature sketch requires the ArduinoJson library. Firmware, board, library, calibration, and wiring revisions are part of the experimental provenance and should be recorded with each acquisition.
See docs/DATA_DICTIONARY.md for file formats and naming conventions.
This archive is intended to support manuscript review and future reconstruction of the experiment. It is not a replacement for the laboratory notebook, instrument calibration records, safety documentation, or raw vendor metadata.