Metadata-Version: 2.4
Name: xdm1000
Version: 0.1.0
Summary: Simple Python driver for OWON XDM1000 / XDM1xxx multimeters over serial (SCPI).
Author-email: Andrei Minaev <andrei.minaev@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/quantumfish/xdm1000
Project-URL: Source, https://github.com/quantumfish/xdm1000
Project-URL: Issues, https://github.com/quantumfish/xdm1000/issues
Keywords: owon,xdm1000,multimeter,scpi,instrumentation
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: pyserial>=3.4

# xdm1000

Simple Python driver for OWON XDM1000 / XDM1xxx multimeters over serial (SCPI).

## Features

- Auto-discovery of the first available OWON XDM1xxx using `*IDN?`
- High-level `XDM1000` class:
  - `set_mode()` — selects measurement function (VDC, VAC, IDC, IAC, RES, CAP, FREQ)
  - `set_rate()` — sets measurement speed (`RATE F/M/S`)
  - `measure()` — single measurement using `MEAS?` in the current mode
- Works with:
  - XDM1000 (firmware V4.3.0,3 tested)
  - Other XDM1xxx models should also be compatible (e.g. XDM1241)

## Installation

```bash
pip install xdm1000

(Or clone this repo and install in editable mode:)

git clone https://github.com/yourname/xdm1000.git
cd xdm1000
pip install -e .

## Usage

from xdm1000 import XDM1000, MeasurementMode, MeasurementSpeed
import time

# Auto-discover first XDM1xxx
with XDM1000() as meter:
    print("Connected to:", meter.idn)

    # Set DC voltage mode and FAST rate
    meter.set_mode(MeasurementMode.VDC)
    meter.set_rate(MeasurementSpeed.FAST)

    for i in range(5):
        value = meter.measure()
        print(f"V = {value}")
        time.sleep(1.0)

You can also select a specific instrument by serial suffix:

with XDM1000(serial_suffix="1543") as meter:
    ...

This matches any device whose serial number (3rd field in *IDN?) contains "1543".
