Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mi-BEAM Control

A safety-focused Qt 6 desktop application for the Sorensen Mi-BEAM Series. It implements the USB virtual-COM and RS-232 transports described in programming manual M587352-01 Rev B (March 2026). Ethernet, GPIB, and CAN transports are intentionally not implemented.

Features

  • A simple first screen with auto-updating measured voltage, measured current, measured power, clearly separate voltage/current request controls, and timestamped device-confirmed setpoint readbacks (including an unambiguous confirmed zero-current target).
  • Native Qt/platform styling with no application-wide custom color theme.
  • Live voltage, current, power, capacity, state-of-charge, energy, output, mode, and trip status.
  • Device-discovered voltage/current/power/protection ranges; values outside the instrument's reported limits cannot be sent.
  • Output controls with deliberate enable confirmation, prominent trip state, fault decoding, error queue access, and protection masks.
  • Source/eLoad/bidirectional setup, slew and ramp control, transient lists, PV simulation, battery simulation, battery test profiles/sequences, analog programming, DIO, relays, remote inhibit, sensing, and isolation-relay control.
  • Searchable graphical command workbench covering every SCPI subsystem in the manual. Each query response and every transmitted/received byte is visible and exportable.
  • Manual-derived technician warning and explicit confirmation for every calibration/service write. Persistent writes require output-off; only documented energized calibration steps are permitted while the output is on.
  • Read-only monitoring on connect: connecting never changes an already-running supply.

Install and run

python3 -m venv .venv
.venv/bin/pip install -e .
.venv/bin/mibeam-control

USB uses 115200 baud. RS-232 defaults to 9600 and supports 9600, 19200, 38400, 57600, and 115200 baud; the application setting must match the front-panel RS-232 setting. Both are 8 data bits, no parity, one stop bit, and no flow control. Following the manual's tested terminal setup, the application transmits commands with CR+LF and accepts CR, LF, or CR+LF replies.

On connect, the application sends only the harmless *IDN? probe. It does not start discovery or live polling until that response succeeds. If it fails, the connection banner reports the active interface, baud, framing, and termination settings, and the Raw TX / RX tab preserves the exact bytes for diagnosis.

Response parsing accepts both the Programming Manual's numeric/positional forms and observed Mi-BEAM firmware forms: labeled VMEAS/IMEAS/PMEAS measurements, word or numeric state values, and chassis-prefixed status/error values. Parsed output configuration and rear-panel I/O also retain their exact device-returned text beside the editable controls.

Safety model

The application does not assume a model rating. On connection it asks the instrument for each available MINimum? and MAXimum? value and only enables programming after those limits are known. User soft limits further constrain setpoints. Cross-field checks require low limits to remain below high limits, set voltage to remain below OVP, and set current to remain within OCP. The instrument remains the final safety authority.

Before enabling an output, independently verify wiring, grounding, polarity, remote-sense leads, load ratings, interlocks, and protection limits. Hazardous voltage may remain after output-off or AC disconnection. Calibration is for qualified service personnel only and requires the external equipment and procedures in Chapter 11 of the manual.

Tests

The non-GUI safety and protocol tests use only the standard library:

python3 -m unittest discover -s tests -v

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages