Skip to main content

Hardware Interfaces

Summary of the device-level communication protocols used by Jope.SMB. Full register maps and command reference are in the Hardware Manuals (internal repo, coming to this site).

info

Jope.SMB abstracts every device behind an interface (IPump, IValve, IDetector, ISpectrometer). Swapping a device model only requires a new driver implementation — no application-layer change.

Device Inventory

DeviceModelRoleTransport
Raman SpectrometerRS2000 (785 nm, dual probe, 2048 wavenumbers)Concentration soft-sensor inputModbus RS485 → Ethernet gateway
Feed / Eluent PumpNP7000 (漢邦 high-pressure)Primary solvent deliverySerial ASCII 16-byte @ 9600
Metering PumpEPP (依利特)Auxiliary meteringSerial Binary 0x88 odd-parity @ 9600
Third-party PumpP3700Alternative supplierSerial Binary 0xFF @ 9600
UV DetectorNU3000 (漢邦)Auxiliary absorbanceSerial ASCII 16-byte @ 9600
Multi-wavelength UVUV1000DMulti-wavelength absorbanceSerial ASCII (dual / tri-wave) @ 9600
Rotary ValveSKS S3612 (12-port)Inlet / outlet zone switchingSerial ASCII 12-char @ 19200
Switching ValveSKS S3203 (3-port)Feed routingSerial ASCII 4-char @ 9600
Pneumatic ValveAPAX ApaxValve (×6)On/off gas or liquidAPAX module

Raman Spectrometer · RS2000

  • Physical: 785 nm laser, 500 mW, 10 cm⁻¹ resolution, 200-3200 cm⁻¹ range, 2048 channels, dual probe (PR100 × 2)
  • Connection: Modbus RS485 → RS232 / RJ45 gateway
  • Data: One spectrum per probe per scan, integration time configurable (default 1000 ms)
  • Integration: Scheduled poll every 3 s; each scan emits two spectrum readings (one per probe), each tagged with channel: 1 or channel: 2
  • Multi-channel strategy: Each channel gets its own predict request (see ZMQ Protocol) — this keeps Inference Server stateless and avoids batching complexity

Pumps

NP7000 (漢邦 high-pressure)

  • Serial ASCII, 16-byte fixed frames
  • Commands: SET_FLOW, START, STOP, STATUS
  • Polling: 1 Hz for flow + pressure telemetry

EPP (依利特)

  • Serial binary protocol with 0x88 start byte and odd parity
  • Commands include checksum byte
  • Slightly higher accuracy for low-flow metering

P3700

  • Serial binary protocol with 0xFF start byte
  • Alternative supplier; used when NP7000 is not available

UV Detectors

NU3000

  • Serial ASCII 16-byte
  • Single wavelength absorbance
  • Polling: 1 Hz

UV1000D

  • Serial ASCII, dual or tri-wavelength variant
  • 16-byte frames per wavelength
  • Used when multi-wavelength cross-check is needed

Valves

SKS S3612 (Rotary, 12-port)

  • Serial ASCII 12-char frames
  • Commands: GOTO_PORT, READ_POS, HOME
  • 19200 baud, higher than other devices
  • Critical for SMB zone switching — position error triggers batch hold

SKS S3203 (Switching, 3-port)

  • Serial ASCII 4-char frames (A1, A2, A3, ST)
  • Used for feed routing at inlet

APAX Pneumatic (PV301-PV306)

  • APAX I/O module (discrete output for coil, discrete input for limit switch)
  • On/off control with 100 ms debounce
  • Used for gas/liquid isolation

Driver Integration Pattern

All drivers implement the common state machine (see DeviceConnectionStateMachine in Jope.SMB.Core):

Each device registers its own driver with the DI container:

sc.AddSingleton<IPump>(sp => new NP7000PumpDriver(portName: "COM3", baud: 9600));
sc.AddSingleton<IDetector>(sp => new NU3000Detector(portName: "COM4"));

Validation

All device drivers have validated test harnesses (Jope.SMB.Core.Tests) using a protocol simulator for each device model. The simulator is also used by QA for end-to-end tests without requiring real hardware.