Repository files navigation

PACE Controller icon

PACE Controller

VersionDOIWindowsLinuxMIT License

Cross-platform graphical controller for classic Druck PACE 5000 and PACE 6000 instruments using Ethernet or RS-232.

Current public version: 1.0.3

Caution

This application sends real pressure-control and vent commands. It is not a certified safety system and does not replace pressure-relief devices, hardware interlocks, instrument limits, laboratory procedures, or direct operator supervision.

Download

Download the latest release

  • standalone Windows x86-64 executable;
  • standalone Linux x86-64 archive;
  • complete offline source package;
  • versioned PDF manual and SHA-256 checksums.

The binaries are unsigned, so Windows SmartScreen or local Linux security policy may request confirmation. Source code and reproducible build automation are public.

Interface

Real cross-platform PACE Controller interface

The screenshot is generated automatically by the real PySide6 GUI in offline simulator mode. No instrument command is sent while producing it.

Connections

ConnectionWindowsLinuxRuntime driver
Ethernet TCP/SCPIYesYesNone
Native RS-232YesYesOS serial driver
USB-to-RS-232YesYesConverter driver only
Offline simulatorYesYesNone

No NI-VISA, Druck USB driver, Python, LabVIEW, or Internet connection is required by the packaged application.

Highlights

  • English by default, with persistent Italian selection.
  • Nine telemetry cards visible together on two rows, with three-decimal display.
  • Manual targets, selectable slew, CONTROL/MEASURE behaviour, and protected advanced parameters.
  • Indenting cycle and editable multi-step JSON routines.
  • Permanent sample-side and inlet-side loss indicators with configurable thresholds.
  • Source-margin interlock: CONTROL stops below 2.0 bar margin and rearms at 2.2 bar.
  • Confirmation for target increases of at least 10 bar and slew above 0.5 bar/s.
  • Automatic MEASURE attempt on required-telemetry loss during CONTROL.
  • Full-precision CSV telemetry and diagnostic logs.
  • Hardware-free simulator and automated screenshot tests.
  • Bilingual Help menu with institutional acknowledgements and direct GitHub issue reporting.
  • Automatic Zenodo DOI discovery and citation-metadata synchronisation after release archival.

PACE configuration

Ethernet

Use static address 192.168.10.2, mask 255.255.255.0, empty gateway/DNS, Access Control Open, and TCP SCPI port 5025.

Ethernet commands are sent with CRLF line endings: the final LF is the SCPI message terminator required by the Druck K0472 manual and matches the validated legacy Windows implementation.

The application first tries the configured address. If enabled, it temporarily adds 192.168.10.1/24 only to exactly one safe dedicated adapter with no gateway or unrelated network. Ambiguous adapters are never modified.

RS-232

Start with 9600 baud, 8 data bits, no parity, 1 stop bit, no flow control, SCPI protocol, and CR terminator. The GUI also supports every documented PACE baud rate from 2400 to 115200, Even/Odd parity, XON/XOFF, and RTS/CTS.

On Linux, serial access may require membership in the dialout group.

Documentation

Source layout

  • cross_platform/: current Python/PySide6 application for Windows and Linux;
  • PACE_Controller.ps1: unchanged legacy PowerShell/WinForms v0.3.1;
  • .github/workflows/: validation, screenshot, packaging, and automatic release pipelines.

The cross-platform pipeline builds and publishes both operating-system packages automatically from a validated tag. Local reproducible build scripts are available in cross_platform/scripts/.

The v0.3.1 implementation remains permanently available from its immutable tag and release. The cross-platform rewrite does not modify it.

Development

cd cross_platform
python -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements-dev.txt
python -m pace_controller --simulate
python -m pytest

Citation

If PACE Controller contributes to published work, cite the exact version used. GitHub also provides a Cite this repository entry from CITATION.cff.

Romi, S. (2026). PACE Controller (Version 1.0.3) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.22162885

DOI: 10.5281/zenodo.22162885

License and independence

MIT License. See LICENSE.

PACE Controller is independent open-source software and is not an official Druck or Baker Hughes product. Development used AI-assisted programming. Validate every workflow at low pressure on a safe, unloaded setup before operational use.

About

ross-platform open-source GUI controller for Druck PACE 5000/6000 pressure controllers via Ethernet/SCPI and RS-232.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

PACE Controller icon

PACE Controller

VersionDOIWindowsLinuxMIT License

Cross-platform graphical controller for classic Druck PACE 5000 and PACE 6000 instruments using Ethernet or RS-232.

Current public version: 1.0.3

Caution

This application sends real pressure-control and vent commands. It is not a certified safety system and does not replace pressure-relief devices, hardware interlocks, instrument limits, laboratory procedures, or direct operator supervision.

Download

Download the latest release

  • standalone Windows x86-64 executable;
  • standalone Linux x86-64 archive;
  • complete offline source package;
  • versioned PDF manual and SHA-256 checksums.

The binaries are unsigned, so Windows SmartScreen or local Linux security policy may request confirmation. Source code and reproducible build automation are public.

Interface

Real cross-platform PACE Controller interface

The screenshot is generated automatically by the real PySide6 GUI in offline simulator mode. No instrument command is sent while producing it.

Connections

ConnectionWindowsLinuxRuntime driver
Ethernet TCP/SCPIYesYesNone
Native RS-232YesYesOS serial driver
USB-to-RS-232YesYesConverter driver only
Offline simulatorYesYesNone

No NI-VISA, Druck USB driver, Python, LabVIEW, or Internet connection is required by the packaged application.

Highlights

  • English by default, with persistent Italian selection.
  • Nine telemetry cards visible together on two rows, with three-decimal display.
  • Manual targets, selectable slew, CONTROL/MEASURE behaviour, and protected advanced parameters.
  • Indenting cycle and editable multi-step JSON routines.
  • Permanent sample-side and inlet-side loss indicators with configurable thresholds.
  • Source-margin interlock: CONTROL stops below 2.0 bar margin and rearms at 2.2 bar.
  • Confirmation for target increases of at least 10 bar and slew above 0.5 bar/s.
  • Automatic MEASURE attempt on required-telemetry loss during CONTROL.
  • Full-precision CSV telemetry and diagnostic logs.
  • Hardware-free simulator and automated screenshot tests.
  • Bilingual Help menu with institutional acknowledgements and direct GitHub issue reporting.
  • Automatic Zenodo DOI discovery and citation-metadata synchronisation after release archival.

PACE configuration

Ethernet

Use static address 192.168.10.2, mask 255.255.255.0, empty gateway/DNS, Access Control Open, and TCP SCPI port 5025.

Ethernet commands are sent with CRLF line endings: the final LF is the SCPI message terminator required by the Druck K0472 manual and matches the validated legacy Windows implementation.

The application first tries the configured address. If enabled, it temporarily adds 192.168.10.1/24 only to exactly one safe dedicated adapter with no gateway or unrelated network. Ambiguous adapters are never modified.

RS-232

Start with 9600 baud, 8 data bits, no parity, 1 stop bit, no flow control, SCPI protocol, and CR terminator. The GUI also supports every documented PACE baud rate from 2400 to 115200, Even/Odd parity, XON/XOFF, and RTS/CTS.

On Linux, serial access may require membership in the dialout group.

Documentation

Source layout

  • cross_platform/: current Python/PySide6 application for Windows and Linux;
  • PACE_Controller.ps1: unchanged legacy PowerShell/WinForms v0.3.1;
  • .github/workflows/: validation, screenshot, packaging, and automatic release pipelines.

The cross-platform pipeline builds and publishes both operating-system packages automatically from a validated tag. Local reproducible build scripts are available in cross_platform/scripts/.

The v0.3.1 implementation remains permanently available from its immutable tag and release. The cross-platform rewrite does not modify it.

Development

cd cross_platform
python -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements-dev.txt
python -m pace_controller --simulate
python -m pytest

Citation

If PACE Controller contributes to published work, cite the exact version used. GitHub also provides a Cite this repository entry from CITATION.cff.

Romi, S. (2026). PACE Controller (Version 1.0.3) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.22162885

DOI: 10.5281/zenodo.22162885

License and independence

MIT License. See LICENSE.

PACE Controller is independent open-source software and is not an official Druck or Baker Hughes product. Development used AI-assisted programming. Validate every workflow at low pressure on a safe, unloaded setup before operational use.

About

ross-platform open-source GUI controller for Druck PACE 5000/6000 pressure controllers via Ethernet/SCPI and RS-232.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

PACE Controller icon

PACE Controller

VersionDOIWindowsLinuxMIT License

Cross-platform graphical controller for classic Druck PACE 5000 and PACE 6000 instruments using Ethernet or RS-232.

Current public version: 1.0.3

Caution

This application sends real pressure-control and vent commands. It is not a certified safety system and does not replace pressure-relief devices, hardware interlocks, instrument limits, laboratory procedures, or direct operator supervision.

Download

Download the latest release

  • standalone Windows x86-64 executable;
  • standalone Linux x86-64 archive;
  • complete offline source package;
  • versioned PDF manual and SHA-256 checksums.

The binaries are unsigned, so Windows SmartScreen or local Linux security policy may request confirmation. Source code and reproducible build automation are public.

Interface

Real cross-platform PACE Controller interface

The screenshot is generated automatically by the real PySide6 GUI in offline simulator mode. No instrument command is sent while producing it.

Connections

ConnectionWindowsLinuxRuntime driver
Ethernet TCP/SCPIYesYesNone
Native RS-232YesYesOS serial driver
USB-to-RS-232YesYesConverter driver only
Offline simulatorYesYesNone

No NI-VISA, Druck USB driver, Python, LabVIEW, or Internet connection is required by the packaged application.

Highlights

  • English by default, with persistent Italian selection.
  • Nine telemetry cards visible together on two rows, with three-decimal display.
  • Manual targets, selectable slew, CONTROL/MEASURE behaviour, and protected advanced parameters.
  • Indenting cycle and editable multi-step JSON routines.
  • Permanent sample-side and inlet-side loss indicators with configurable thresholds.
  • Source-margin interlock: CONTROL stops below 2.0 bar margin and rearms at 2.2 bar.
  • Confirmation for target increases of at least 10 bar and slew above 0.5 bar/s.
  • Automatic MEASURE attempt on required-telemetry loss during CONTROL.
  • Full-precision CSV telemetry and diagnostic logs.
  • Hardware-free simulator and automated screenshot tests.
  • Bilingual Help menu with institutional acknowledgements and direct GitHub issue reporting.
  • Automatic Zenodo DOI discovery and citation-metadata synchronisation after release archival.

PACE configuration

Ethernet

Use static address 192.168.10.2, mask 255.255.255.0, empty gateway/DNS, Access Control Open, and TCP SCPI port 5025.

Ethernet commands are sent with CRLF line endings: the final LF is the SCPI message terminator required by the Druck K0472 manual and matches the validated legacy Windows implementation.

The application first tries the configured address. If enabled, it temporarily adds 192.168.10.1/24 only to exactly one safe dedicated adapter with no gateway or unrelated network. Ambiguous adapters are never modified.

RS-232

Start with 9600 baud, 8 data bits, no parity, 1 stop bit, no flow control, SCPI protocol, and CR terminator. The GUI also supports every documented PACE baud rate from 2400 to 115200, Even/Odd parity, XON/XOFF, and RTS/CTS.

On Linux, serial access may require membership in the dialout group.

Documentation

Source layout

  • cross_platform/: current Python/PySide6 application for Windows and Linux;
  • PACE_Controller.ps1: unchanged legacy PowerShell/WinForms v0.3.1;
  • .github/workflows/: validation, screenshot, packaging, and automatic release pipelines.

The cross-platform pipeline builds and publishes both operating-system packages automatically from a validated tag. Local reproducible build scripts are available in cross_platform/scripts/.

The v0.3.1 implementation remains permanently available from its immutable tag and release. The cross-platform rewrite does not modify it.

Development

cd cross_platform
python -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements-dev.txt
python -m pace_controller --simulate
python -m pytest

Citation

If PACE Controller contributes to published work, cite the exact version used. GitHub also provides a Cite this repository entry from CITATION.cff.

Romi, S. (2026). PACE Controller (Version 1.0.3) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.22162885

DOI: 10.5281/zenodo.22162885

License and independence

MIT License. See LICENSE.

PACE Controller is independent open-source software and is not an official Druck or Baker Hughes product. Development used AI-assisted programming. Validate every workflow at low pressure on a safe, unloaded setup before operational use.

About

ross-platform open-source GUI controller for Druck PACE 5000/6000 pressure controllers via Ethernet/SCPI and RS-232.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

PACE Controller icon

PACE Controller

VersionDOIWindowsLinuxMIT License

Cross-platform graphical controller for classic Druck PACE 5000 and PACE 6000 instruments using Ethernet or RS-232.

Current public version: 1.0.3

Caution

This application sends real pressure-control and vent commands. It is not a certified safety system and does not replace pressure-relief devices, hardware interlocks, instrument limits, laboratory procedures, or direct operator supervision.

Download

Download the latest release

  • standalone Windows x86-64 executable;
  • standalone Linux x86-64 archive;
  • complete offline source package;
  • versioned PDF manual and SHA-256 checksums.

The binaries are unsigned, so Windows SmartScreen or local Linux security policy may request confirmation. Source code and reproducible build automation are public.

Interface

Real cross-platform PACE Controller interface

The screenshot is generated automatically by the real PySide6 GUI in offline simulator mode. No instrument command is sent while producing it.

Connections

ConnectionWindowsLinuxRuntime driver
Ethernet TCP/SCPIYesYesNone
Native RS-232YesYesOS serial driver
USB-to-RS-232YesYesConverter driver only
Offline simulatorYesYesNone

No NI-VISA, Druck USB driver, Python, LabVIEW, or Internet connection is required by the packaged application.

Highlights

  • English by default, with persistent Italian selection.
  • Nine telemetry cards visible together on two rows, with three-decimal display.
  • Manual targets, selectable slew, CONTROL/MEASURE behaviour, and protected advanced parameters.
  • Indenting cycle and editable multi-step JSON routines.
  • Permanent sample-side and inlet-side loss indicators with configurable thresholds.
  • Source-margin interlock: CONTROL stops below 2.0 bar margin and rearms at 2.2 bar.
  • Confirmation for target increases of at least 10 bar and slew above 0.5 bar/s.
  • Automatic MEASURE attempt on required-telemetry loss during CONTROL.
  • Full-precision CSV telemetry and diagnostic logs.
  • Hardware-free simulator and automated screenshot tests.
  • Bilingual Help menu with institutional acknowledgements and direct GitHub issue reporting.
  • Automatic Zenodo DOI discovery and citation-metadata synchronisation after release archival.

PACE configuration

Ethernet

Use static address 192.168.10.2, mask 255.255.255.0, empty gateway/DNS, Access Control Open, and TCP SCPI port 5025.

Ethernet commands are sent with CRLF line endings: the final LF is the SCPI message terminator required by the Druck K0472 manual and matches the validated legacy Windows implementation.

The application first tries the configured address. If enabled, it temporarily adds 192.168.10.1/24 only to exactly one safe dedicated adapter with no gateway or unrelated network. Ambiguous adapters are never modified.

RS-232

Start with 9600 baud, 8 data bits, no parity, 1 stop bit, no flow control, SCPI protocol, and CR terminator. The GUI also supports every documented PACE baud rate from 2400 to 115200, Even/Odd parity, XON/XOFF, and RTS/CTS.

On Linux, serial access may require membership in the dialout group.

Documentation

Source layout

  • cross_platform/: current Python/PySide6 application for Windows and Linux;
  • PACE_Controller.ps1: unchanged legacy PowerShell/WinForms v0.3.1;
  • .github/workflows/: validation, screenshot, packaging, and automatic release pipelines.

The cross-platform pipeline builds and publishes both operating-system packages automatically from a validated tag. Local reproducible build scripts are available in cross_platform/scripts/.

The v0.3.1 implementation remains permanently available from its immutable tag and release. The cross-platform rewrite does not modify it.

Development

cd cross_platform
python -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements-dev.txt
python -m pace_controller --simulate
python -m pytest

Citation

If PACE Controller contributes to published work, cite the exact version used. GitHub also provides a Cite this repository entry from CITATION.cff.

Romi, S. (2026). PACE Controller (Version 1.0.3) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.22162885

DOI: 10.5281/zenodo.22162885

License and independence

MIT License. See LICENSE.

PACE Controller is independent open-source software and is not an official Druck or Baker Hughes product. Development used AI-assisted programming. Validate every workflow at low pressure on a safe, unloaded setup before operational use.

About

ross-platform open-source GUI controller for Druck PACE 5000/6000 pressure controllers via Ethernet/SCPI and RS-232.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

PACE Controller icon

PACE Controller

VersionDOIWindowsLinuxMIT License

Cross-platform graphical controller for classic Druck PACE 5000 and PACE 6000 instruments using Ethernet or RS-232.

Current public version: 1.0.3

Caution

This application sends real pressure-control and vent commands. It is not a certified safety system and does not replace pressure-relief devices, hardware interlocks, instrument limits, laboratory procedures, or direct operator supervision.

Download

Download the latest release

  • standalone Windows x86-64 executable;
  • standalone Linux x86-64 archive;
  • complete offline source package;
  • versioned PDF manual and SHA-256 checksums.

The binaries are unsigned, so Windows SmartScreen or local Linux security policy may request confirmation. Source code and reproducible build automation are public.

Interface

Real cross-platform PACE Controller interface

The screenshot is generated automatically by the real PySide6 GUI in offline simulator mode. No instrument command is sent while producing it.

Connections

ConnectionWindowsLinuxRuntime driver
Ethernet TCP/SCPIYesYesNone
Native RS-232YesYesOS serial driver
USB-to-RS-232YesYesConverter driver only
Offline simulatorYesYesNone

No NI-VISA, Druck USB driver, Python, LabVIEW, or Internet connection is required by the packaged application.

Highlights

  • English by default, with persistent Italian selection.
  • Nine telemetry cards visible together on two rows, with three-decimal display.
  • Manual targets, selectable slew, CONTROL/MEASURE behaviour, and protected advanced parameters.
  • Indenting cycle and editable multi-step JSON routines.
  • Permanent sample-side and inlet-side loss indicators with configurable thresholds.
  • Source-margin interlock: CONTROL stops below 2.0 bar margin and rearms at 2.2 bar.
  • Confirmation for target increases of at least 10 bar and slew above 0.5 bar/s.
  • Automatic MEASURE attempt on required-telemetry loss during CONTROL.
  • Full-precision CSV telemetry and diagnostic logs.
  • Hardware-free simulator and automated screenshot tests.
  • Bilingual Help menu with institutional acknowledgements and direct GitHub issue reporting.
  • Automatic Zenodo DOI discovery and citation-metadata synchronisation after release archival.

PACE configuration

Ethernet

Use static address 192.168.10.2, mask 255.255.255.0, empty gateway/DNS, Access Control Open, and TCP SCPI port 5025.

Ethernet commands are sent with CRLF line endings: the final LF is the SCPI message terminator required by the Druck K0472 manual and matches the validated legacy Windows implementation.

The application first tries the configured address. If enabled, it temporarily adds 192.168.10.1/24 only to exactly one safe dedicated adapter with no gateway or unrelated network. Ambiguous adapters are never modified.

RS-232

Start with 9600 baud, 8 data bits, no parity, 1 stop bit, no flow control, SCPI protocol, and CR terminator. The GUI also supports every documented PACE baud rate from 2400 to 115200, Even/Odd parity, XON/XOFF, and RTS/CTS.

On Linux, serial access may require membership in the dialout group.

Documentation

Source layout

  • cross_platform/: current Python/PySide6 application for Windows and Linux;
  • PACE_Controller.ps1: unchanged legacy PowerShell/WinForms v0.3.1;
  • .github/workflows/: validation, screenshot, packaging, and automatic release pipelines.

The cross-platform pipeline builds and publishes both operating-system packages automatically from a validated tag. Local reproducible build scripts are available in cross_platform/scripts/.

The v0.3.1 implementation remains permanently available from its immutable tag and release. The cross-platform rewrite does not modify it.

Development

cd cross_platform
python -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements-dev.txt
python -m pace_controller --simulate
python -m pytest

Citation

If PACE Controller contributes to published work, cite the exact version used. GitHub also provides a Cite this repository entry from CITATION.cff.

Romi, S. (2026). PACE Controller (Version 1.0.3) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.22162885

DOI: 10.5281/zenodo.22162885

License and independence

MIT License. See LICENSE.

PACE Controller is independent open-source software and is not an official Druck or Baker Hughes product. Development used AI-assisted programming. Validate every workflow at low pressure on a safe, unloaded setup before operational use.

About

ross-platform open-source GUI controller for Druck PACE 5000/6000 pressure controllers via Ethernet/SCPI and RS-232.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

PACE Controller icon

PACE Controller

VersionDOIWindowsLinuxMIT License

Cross-platform graphical controller for classic Druck PACE 5000 and PACE 6000 instruments using Ethernet or RS-232.

Current public version: 1.0.3

Caution

This application sends real pressure-control and vent commands. It is not a certified safety system and does not replace pressure-relief devices, hardware interlocks, instrument limits, laboratory procedures, or direct operator supervision.

Download

Download the latest release

  • standalone Windows x86-64 executable;
  • standalone Linux x86-64 archive;
  • complete offline source package;
  • versioned PDF manual and SHA-256 checksums.

The binaries are unsigned, so Windows SmartScreen or local Linux security policy may request confirmation. Source code and reproducible build automation are public.

Interface

Real cross-platform PACE Controller interface

The screenshot is generated automatically by the real PySide6 GUI in offline simulator mode. No instrument command is sent while producing it.

Connections

ConnectionWindowsLinuxRuntime driver
Ethernet TCP/SCPIYesYesNone
Native RS-232YesYesOS serial driver
USB-to-RS-232YesYesConverter driver only
Offline simulatorYesYesNone

No NI-VISA, Druck USB driver, Python, LabVIEW, or Internet connection is required by the packaged application.

Highlights

  • English by default, with persistent Italian selection.
  • Nine telemetry cards visible together on two rows, with three-decimal display.
  • Manual targets, selectable slew, CONTROL/MEASURE behaviour, and protected advanced parameters.
  • Indenting cycle and editable multi-step JSON routines.
  • Permanent sample-side and inlet-side loss indicators with configurable thresholds.
  • Source-margin interlock: CONTROL stops below 2.0 bar margin and rearms at 2.2 bar.
  • Confirmation for target increases of at least 10 bar and slew above 0.5 bar/s.
  • Automatic MEASURE attempt on required-telemetry loss during CONTROL.
  • Full-precision CSV telemetry and diagnostic logs.
  • Hardware-free simulator and automated screenshot tests.
  • Bilingual Help menu with institutional acknowledgements and direct GitHub issue reporting.
  • Automatic Zenodo DOI discovery and citation-metadata synchronisation after release archival.

PACE configuration

Ethernet

Use static address 192.168.10.2, mask 255.255.255.0, empty gateway/DNS, Access Control Open, and TCP SCPI port 5025.

Ethernet commands are sent with CRLF line endings: the final LF is the SCPI message terminator required by the Druck K0472 manual and matches the validated legacy Windows implementation.

The application first tries the configured address. If enabled, it temporarily adds 192.168.10.1/24 only to exactly one safe dedicated adapter with no gateway or unrelated network. Ambiguous adapters are never modified.

RS-232

Start with 9600 baud, 8 data bits, no parity, 1 stop bit, no flow control, SCPI protocol, and CR terminator. The GUI also supports every documented PACE baud rate from 2400 to 115200, Even/Odd parity, XON/XOFF, and RTS/CTS.

On Linux, serial access may require membership in the dialout group.

Documentation

Source layout

  • cross_platform/: current Python/PySide6 application for Windows and Linux;
  • PACE_Controller.ps1: unchanged legacy PowerShell/WinForms v0.3.1;
  • .github/workflows/: validation, screenshot, packaging, and automatic release pipelines.

The cross-platform pipeline builds and publishes both operating-system packages automatically from a validated tag. Local reproducible build scripts are available in cross_platform/scripts/.

The v0.3.1 implementation remains permanently available from its immutable tag and release. The cross-platform rewrite does not modify it.

Development

cd cross_platform
python -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements-dev.txt
python -m pace_controller --simulate
python -m pytest

Citation

If PACE Controller contributes to published work, cite the exact version used. GitHub also provides a Cite this repository entry from CITATION.cff.

Romi, S. (2026). PACE Controller (Version 1.0.3) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.22162885

DOI: 10.5281/zenodo.22162885

License and independence

MIT License. See LICENSE.

PACE Controller is independent open-source software and is not an official Druck or Baker Hughes product. Development used AI-assisted programming. Validate every workflow at low pressure on a safe, unloaded setup before operational use.

About

ross-platform open-source GUI controller for Druck PACE 5000/6000 pressure controllers via Ethernet/SCPI and RS-232.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

PACE Controller icon

PACE Controller

VersionDOIWindowsLinuxMIT License

Cross-platform graphical controller for classic Druck PACE 5000 and PACE 6000 instruments using Ethernet or RS-232.

Current public version: 1.0.3

Caution

This application sends real pressure-control and vent commands. It is not a certified safety system and does not replace pressure-relief devices, hardware interlocks, instrument limits, laboratory procedures, or direct operator supervision.

Download

Download the latest release

  • standalone Windows x86-64 executable;
  • standalone Linux x86-64 archive;
  • complete offline source package;
  • versioned PDF manual and SHA-256 checksums.

The binaries are unsigned, so Windows SmartScreen or local Linux security policy may request confirmation. Source code and reproducible build automation are public.

Interface

Real cross-platform PACE Controller interface

The screenshot is generated automatically by the real PySide6 GUI in offline simulator mode. No instrument command is sent while producing it.

Connections

ConnectionWindowsLinuxRuntime driver
Ethernet TCP/SCPIYesYesNone
Native RS-232YesYesOS serial driver
USB-to-RS-232YesYesConverter driver only
Offline simulatorYesYesNone

No NI-VISA, Druck USB driver, Python, LabVIEW, or Internet connection is required by the packaged application.

Highlights

  • English by default, with persistent Italian selection.
  • Nine telemetry cards visible together on two rows, with three-decimal display.
  • Manual targets, selectable slew, CONTROL/MEASURE behaviour, and protected advanced parameters.
  • Indenting cycle and editable multi-step JSON routines.
  • Permanent sample-side and inlet-side loss indicators with configurable thresholds.
  • Source-margin interlock: CONTROL stops below 2.0 bar margin and rearms at 2.2 bar.
  • Confirmation for target increases of at least 10 bar and slew above 0.5 bar/s.
  • Automatic MEASURE attempt on required-telemetry loss during CONTROL.
  • Full-precision CSV telemetry and diagnostic logs.
  • Hardware-free simulator and automated screenshot tests.
  • Bilingual Help menu with institutional acknowledgements and direct GitHub issue reporting.
  • Automatic Zenodo DOI discovery and citation-metadata synchronisation after release archival.

PACE configuration

Ethernet

Use static address 192.168.10.2, mask 255.255.255.0, empty gateway/DNS, Access Control Open, and TCP SCPI port 5025.

Ethernet commands are sent with CRLF line endings: the final LF is the SCPI message terminator required by the Druck K0472 manual and matches the validated legacy Windows implementation.

The application first tries the configured address. If enabled, it temporarily adds 192.168.10.1/24 only to exactly one safe dedicated adapter with no gateway or unrelated network. Ambiguous adapters are never modified.

RS-232

Start with 9600 baud, 8 data bits, no parity, 1 stop bit, no flow control, SCPI protocol, and CR terminator. The GUI also supports every documented PACE baud rate from 2400 to 115200, Even/Odd parity, XON/XOFF, and RTS/CTS.

On Linux, serial access may require membership in the dialout group.

Documentation

Source layout

  • cross_platform/: current Python/PySide6 application for Windows and Linux;
  • PACE_Controller.ps1: unchanged legacy PowerShell/WinForms v0.3.1;
  • .github/workflows/: validation, screenshot, packaging, and automatic release pipelines.

The cross-platform pipeline builds and publishes both operating-system packages automatically from a validated tag. Local reproducible build scripts are available in cross_platform/scripts/.

The v0.3.1 implementation remains permanently available from its immutable tag and release. The cross-platform rewrite does not modify it.

Development

cd cross_platform
python -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements-dev.txt
python -m pace_controller --simulate
python -m pytest

Citation

If PACE Controller contributes to published work, cite the exact version used. GitHub also provides a Cite this repository entry from CITATION.cff.

Romi, S. (2026). PACE Controller (Version 1.0.3) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.22162885

DOI: 10.5281/zenodo.22162885

License and independence

MIT License. See LICENSE.

PACE Controller is independent open-source software and is not an official Druck or Baker Hughes product. Development used AI-assisted programming. Validate every workflow at low pressure on a safe, unloaded setup before operational use.

About

ross-platform open-source GUI controller for Druck PACE 5000/6000 pressure controllers via Ethernet/SCPI and RS-232.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

PACE Controller icon

PACE Controller

VersionDOIWindowsLinuxMIT License

Cross-platform graphical controller for classic Druck PACE 5000 and PACE 6000 instruments using Ethernet or RS-232.

Current public version: 1.0.3

Caution

This application sends real pressure-control and vent commands. It is not a certified safety system and does not replace pressure-relief devices, hardware interlocks, instrument limits, laboratory procedures, or direct operator supervision.

Download

Download the latest release

  • standalone Windows x86-64 executable;
  • standalone Linux x86-64 archive;
  • complete offline source package;
  • versioned PDF manual and SHA-256 checksums.

The binaries are unsigned, so Windows SmartScreen or local Linux security policy may request confirmation. Source code and reproducible build automation are public.

Interface

Real cross-platform PACE Controller interface

The screenshot is generated automatically by the real PySide6 GUI in offline simulator mode. No instrument command is sent while producing it.

Connections

ConnectionWindowsLinuxRuntime driver
Ethernet TCP/SCPIYesYesNone
Native RS-232YesYesOS serial driver
USB-to-RS-232YesYesConverter driver only
Offline simulatorYesYesNone

No NI-VISA, Druck USB driver, Python, LabVIEW, or Internet connection is required by the packaged application.

Highlights

  • English by default, with persistent Italian selection.
  • Nine telemetry cards visible together on two rows, with three-decimal display.
  • Manual targets, selectable slew, CONTROL/MEASURE behaviour, and protected advanced parameters.
  • Indenting cycle and editable multi-step JSON routines.
  • Permanent sample-side and inlet-side loss indicators with configurable thresholds.
  • Source-margin interlock: CONTROL stops below 2.0 bar margin and rearms at 2.2 bar.
  • Confirmation for target increases of at least 10 bar and slew above 0.5 bar/s.
  • Automatic MEASURE attempt on required-telemetry loss during CONTROL.
  • Full-precision CSV telemetry and diagnostic logs.
  • Hardware-free simulator and automated screenshot tests.
  • Bilingual Help menu with institutional acknowledgements and direct GitHub issue reporting.
  • Automatic Zenodo DOI discovery and citation-metadata synchronisation after release archival.

PACE configuration

Ethernet

Use static address 192.168.10.2, mask 255.255.255.0, empty gateway/DNS, Access Control Open, and TCP SCPI port 5025.

Ethernet commands are sent with CRLF line endings: the final LF is the SCPI message terminator required by the Druck K0472 manual and matches the validated legacy Windows implementation.

The application first tries the configured address. If enabled, it temporarily adds 192.168.10.1/24 only to exactly one safe dedicated adapter with no gateway or unrelated network. Ambiguous adapters are never modified.

RS-232

Start with 9600 baud, 8 data bits, no parity, 1 stop bit, no flow control, SCPI protocol, and CR terminator. The GUI also supports every documented PACE baud rate from 2400 to 115200, Even/Odd parity, XON/XOFF, and RTS/CTS.

On Linux, serial access may require membership in the dialout group.

Documentation

Source layout

  • cross_platform/: current Python/PySide6 application for Windows and Linux;
  • PACE_Controller.ps1: unchanged legacy PowerShell/WinForms v0.3.1;
  • .github/workflows/: validation, screenshot, packaging, and automatic release pipelines.

The cross-platform pipeline builds and publishes both operating-system packages automatically from a validated tag. Local reproducible build scripts are available in cross_platform/scripts/.

The v0.3.1 implementation remains permanently available from its immutable tag and release. The cross-platform rewrite does not modify it.

Development

cd cross_platform
python -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements-dev.txt
python -m pace_controller --simulate
python -m pytest

Citation

If PACE Controller contributes to published work, cite the exact version used. GitHub also provides a Cite this repository entry from CITATION.cff.

Romi, S. (2026). PACE Controller (Version 1.0.3) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.22162885

DOI: 10.5281/zenodo.22162885

License and independence

MIT License. See LICENSE.

PACE Controller is independent open-source software and is not an official Druck or Baker Hughes product. Development used AI-assisted programming. Validate every workflow at low pressure on a safe, unloaded setup before operational use.

About

ross-platform open-source GUI controller for Druck PACE 5000/6000 pressure controllers via Ethernet/SCPI and RS-232.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages