On this page 9 sections
Serial line instruments as SerialDriver command maps
Generated by MHS/registry/build_registry.py on 2026-10-20T00:00:00Z from 58 registry records and their task cards. A plan, not a conformance claim.
- bridge_status:
available - helper:
SerialDriver - exemplar:
MHS/drivers/labs/thinksrs__srsinst.sr860
Launch
Every driver package starts the same way; per-repo configuration (environment id, model path, port, baud rate, VISA resource) lives in the package's driver.py, never in launch flags:
mhs serve <driver-dir>A package is done when python3 -m mhs.driver check <driver-dir> --backend fake exits 0 (evidence contract_checked; a fake never yields an MHS-Device level).
Registry coverage
- Repos: 58
- Decisions: bridge-runtime 1, direct-driver 33, family-config 3, reference 4, skip 17
- Waves: 1: 6, 3: 28, 5: 2, 9: 22
- Dispatchable now: 0
- Modes: hardware 37, simulated 10
Applicability
The repo imports pyserial (or an equivalent) and has no strong Python device class: triage rule 9, family:serial. It copies the command-map structure of the sr860 exemplar.
Capability mapping
| native call | OpenMHS target | notes |
|---|---|---|
| serial port settings (port, baud, parity) | lifecycle: transport configuration in driver.py | never launch flags; a fake or a transcript replaces the port |
query command (for example IN_PV_00) | reads: the measure class that fits, else cap.sensing.read.v1 | parse the reply; the unit comes from the manual |
set command (for example OUT_SP_00 25.0) | writes: cap.device.configure.v1, or a write class that fits | every limit cites its source |
| a raw write(command) | only as a named command-map entry | never cap.actuation.gpio.v1 for an arbitrary command |
| stop or output-off command | safety_bindings: e-stop and safe state | written under the short write lock; it aborts a pending reply wait |
Class ids come from python3 -m mhs.driver catalog search <words>. The deprecated classes cap.device.describe.v1, cap.world.state.v1, cap.world.snapshot.v1 and cap.world.restore.v1 are replaced by the protocol methods mhs.devices.get, mhs.resource.read, mhs.snapshot and mhs.restore.
Safety
The risk floor of a device is the highest catalogue risk_class of its classes (CAP-017); a driver may declare a higher risk, never a lower one. Hardware at R1 or above needs an @estop and a non-empty safe state. A serial line can drive pumps, heaters and motors. Port names and baud rates are deployment-specific and are never guessed at run time.
Fidelity
A transcript fake proves the framing and the command map, not the physics.
Pitfalls
Line endings and checksums vary; unbounded reads hang; USB re-enumeration renames ports; error replies are vendor-specific.
First task cards
gh.amsikking/thorlabs_mcm3000: direct-driver, wave 1, rank 39,MHS/registry/tasks/labs/amsikking__thorlabs_mcm3000.jsongh.amsikking/asi_ms_2000_500_cp: direct-driver, wave 1, rank 41,MHS/registry/tasks/labs/amsikking__asi_ms_2000_500_cp.jsongh.fretchen/synqs_devices: direct-driver, wave 1, rank 45,MHS/registry/tasks/labs/fretchen__synqs_devices.jsongh.mattgbiz/velmex-xyz-stagecontrol-python: direct-driver, wave 1, rank 46,MHS/registry/tasks/labs/mattgbiz__velmex-xyz-stagecontrol-python.jsongh.amsikking/zaber_x_adr130: direct-driver, wave 1, rank 49,MHS/registry/tasks/labs/amsikking__zaber_x_adr130.json
Sources
- Task cards:
MHS/registry/tasks/<track>/<owner>__<repo>.json(schema/taskcard.schema.json). - Triage rules and the helper table:
MHS/registry/triage.py; curated decisions:MHS/registry/overrides/. - Driver API and gate:
MHS/sdk/docs/driver-authoring.md; exemplars:MHS/drivers/.
Packages
Top 24 of 58 by stars. Filter the full list.
| Package | Tier | Ring | Evidence | Stars |
|---|---|---|---|---|
| petoicamp/opencat-quadruped-robot petoicamp/opencat-quadruped-robot: device backend for legged robots (robotics track). OpenMHS plan: direct-driver with S | Tier B | 1 | contract checked | 5,433 |
| nate711/stanforddoggoproject nate711/stanforddoggoproject: model assets for legged robots (robotics track). OpenMHS plan: not integrated (override:re | Tier D | 3 | static scan | 2,563 |
| serhmarch/modbustools serhmarch/modbustools: protocol implementation/bridge for electronic measurement (lab instrumentation track). OpenMHS pl | Tier D | 3 | static scan | 544 |
| robodk/robodk-api robodk/robodk-api: device backend for robot arm manipulation (robotics track). OpenMHS plan: SDK bridge runtime, not a p | Tier B | 3 | static scan | 313 |
| scifidryer/modbusmechanic scifidryer/modbusmechanic: auxiliary tooling for electronic measurement (lab instrumentation track). OpenMHS plan: not i | Tier D | 3 | static scan | 212 |
| pymodbus-dev/modbus-simulator pymodbus-dev/modbus-simulator: protocol implementation/bridge for electronic measurement (lab instrumentation track). Op | Tier D | 3 | static scan | 191 |
| ploxc/modbux ploxc/modbux: auxiliary tooling for electronic measurement (lab instrumentation track). OpenMHS plan: not integrated (sk | Tier D | 3 | static scan | 110 |
| ortegahernandes/scanbus-br-simulator-modbus ortegahernandes/scanbus-br-simulator-modbus: auxiliary tooling for electronic measurement (lab instrumentation track). O | Tier D | 3 | static scan | 78 |
| alongl/modbusplcsimulator alongl/modbusplcsimulator: protocol implementation/bridge for electronic measurement (lab instrumentation track). OpenMH | Tier D | 3 | static scan | 69 |
| afrl-ares/ares_os afrl-ares/ares_os: orchestration/scheduling for general (lab instrumentation track). OpenMHS plan: reference only (host) | Tier D | 3 | static scan | 45 |
| unine-chyn/thorpy unine-chyn/thorpy: protocol implementation/bridge for optics (lab instrumentation track). OpenMHS plan: direct-driver wi | Tier B | 1 | contract checked | 45 |
| zeelos/modbuspal zeelos/modbuspal: protocol implementation/bridge for electronic measurement (lab instrumentation track). OpenMHS plan: n | Tier D | 3 | static scan | 40 |
| drmcnelson/linear-ccd-with-ltspice-kicad-firmware-and-python-library drmcnelson/linear-ccd-with-ltspice-kicad-firmware-and-python-library: device backend for optics (lab instrumentation tra | Tier B | 1 | contract checked | 36 |
| opentrons/opentrons-modules opentrons/opentrons-modules: device backend for liquid handling (lab instrumentation track). OpenMHS plan: direct-driver | Tier B | 1 | contract checked | 33 |
| soso7885/modbus_simulator soso7885/modbus_simulator: protocol implementation/bridge for electronic measurement (lab instrumentation track). OpenMH | Tier D | 3 | static scan | 30 |
| adaptyvbio/automancer adaptyvbio/automancer: orchestration/scheduling for biology (lab instrumentation track). OpenMHS plan: reference only (h | Tier D | 3 | static scan | 27 |
| idc-milab/openlh idc-milab/openlh: device backend for liquid handling (lab instrumentation track). OpenMHS plan: direct-driver with Seria | Tier B | 1 | contract checked | 27 |
| starnight/modbus-server starnight/modbus-server: protocol implementation/bridge for electronic measurement (lab instrumentation track). OpenMHS | Tier D | 3 | static scan | 18 |
| gehelem/indi_cam86_ccd gehelem/indi_cam86_ccd: device backend for optics (lab instrumentation track). OpenMHS plan: not integrated (override:re | Tier D | 3 | static scan | 14 |
| freespace/pysmc100 freespace/pysmc100: device backend for optics (lab instrumentation track). OpenMHS plan: direct-driver with SerialDriver | Tier B | 1 | contract checked | 13 |
| bi2air/advanced-bioreactor bi2air/advanced-bioreactor: device backend for biology (lab instrumentation track). OpenMHS plan: not integrated (skip:p | Tier D | 3 | static scan | 8 |
| clarklabucb/newerapumps_python3 clarklabucb/newerapumps_python3: device backend for liquid handling (lab instrumentation track). OpenMHS plan: direct-dr | Tier B | 1 | contract checked | 7 |
| hrosiak/esp301 hrosiak/esp301: device backend for optics (lab instrumentation track). OpenMHS plan: direct-driver with SerialDriver, wa | Tier B | 1 | contract checked | 7 |
| knerlab/sim_control_software knerlab/sim_control_software: device backend for microscopy imaging (lab instrumentation track). OpenMHS plan: direct-dr | Tier B | 1 | contract checked | 7 |