Run the PDU, DAPHNE and WIB emulators with the existing Python environment. Use the OPC UA bridge for one technology or a mixed fleet.
The dune-dscs repository is the top-level repository for the Detector Slow Controls System. Initially, it will contain code for bridges and emulators, but these may be refactored into other repositories in the future. The DSCS code wiki will be hosted at this repository, and the DUNE wiki will be used for internal information.
If you encounter problems with the setup instructions below, please file an issue with enough detail to reproduce your error from scratch.
To make the python virtual environment consistent, we recommend using uv. To install uv without root on Linux or MacOS:
curl -LsSf https://astral.sh/uv/install.sh | shOn Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"After installing uv, you may need to open a new shell to use it. Test with uv --version.
git clone https://github.com/DUNE/dune-dscs.git && cd dune-dscs
uv sync # creates .venv
uv run python Tutorials/workshop2026/zmq_emulator.py # Or whatever script you wantCheck python --version first. Python 3.10 or newer is required.
Use uv if you cannot install a suitable Python version yourself.
git clone https://github.com/DUNE/dune-dscs.git && cd dune-dscs
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
python Tutorials/workshop2026/zmq_emulator.py # Or whatever script you wantuv add <package> # updates pyproject.toml and uv.lock
uv export --frozen --no-hashes --no-dev --no-emit-project -o requirements.txt
# commit pyproject.toml, uv.lock and requirements.txt togetherPython code should follow PEP 8 conventions.
https://peps.python.org/pep-0008/
Pull requests run Ruff on maintained Python code. Archived scripts and generated protobuf bindings are excluded. The WIB binding requires protobuf 7.36.2 or newer.
Copyright © 2026 FERMI NATIONAL ACCELERATOR LABORATORY for the benefit of the DUNE Collaboration.
This repository, and all software contained within, is licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Copyright is granted to FERMI NATIONAL ACCELERATOR LABORATORY on behalf of the Deep Underground Neutrino Experiment (DUNE). Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.