Skip to main content

Python driver for RS-232/USB bench scales (Kern, Mettler-Toledo, etc.).

Project description

serial-scale-bench

PyPI

Python driver for RS-232/USB commercial bench scales (Kern, Mettler-Toledo, etc.).

Supports two ASCII response protocols:

  • Protocol 1 — multi-line header responses (GS, NT, GT prefixes); typical of Kern and similar label-printing scales
  • Protocol 2 — single float line; minimal scales and simpler firmware

Protocol is auto-detected on first connection. A FastAPI HTTP server is included for running the scale as a networked service (e.g. LabWatch integration).

Install

Base (serial only):

pip install serial-scale-bench

With HTTP API server:

pip install "serial-scale-bench[api]"

Or editable from this repo:

pip install -e .

Usage

from serial_scale_bench import SerialScale

scale = SerialScale(port="/dev/ttyUSB0", baudrate=9600)
scale.tare()
weight = scale.get_weight()   # float grams or None
scale.close()

Auto-reconnect wrapper

from serial_scale_bench import AutoReconnectSerialScale

scale = AutoReconnectSerialScale(port="/dev/ttyUSB0")
weight = scale.get_weight()   # reconnects automatically on error

HTTP API server

Start a local REST server exposing the scale over HTTP:

python -m serial_scale_bench.entrypoint --device /dev/ttyUSB0 --port 8080 --scale-id bench1

Endpoints: GET /weight, POST /tare, POST /zero, GET /status, GET /ping.

API reference

Method Description
get_weight() Poll current weight (float or None)
tare() Send tare command
zero() Send zero command
set_tare_value(value) Set absolute tare
is_connected() True if serial port is open
is_responsive() True if scale responds to ping
close() Close serial connection

murineshiftwork integration

Planned: BenchScaleAdapter in murineshiftwork.logic.scale. Install with:

pip install "murineshiftwork[calibration]"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

serial_scale_bench-0.2.5.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

serial_scale_bench-0.2.5-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file serial_scale_bench-0.2.5.tar.gz.

File metadata

  • Download URL: serial_scale_bench-0.2.5.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.27 {"installer":{"name":"uv","version":"0.11.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for serial_scale_bench-0.2.5.tar.gz
Algorithm Hash digest
SHA256 fdabe468a97bc0ecec186b87f0b5aceb4fa34dbda226ad88bfa2d3aaa57d67cf
MD5 7980ff6dfa355c5d93c19c7abd4706bf
BLAKE2b-256 3f4d583a6866decc267f8588034c3cc2587cb26d3a2fd4d55f250d833828f372

See more details on using hashes here.

File details

Details for the file serial_scale_bench-0.2.5-py3-none-any.whl.

File metadata

  • Download URL: serial_scale_bench-0.2.5-py3-none-any.whl
  • Upload date:
  • Size: 11.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.27 {"installer":{"name":"uv","version":"0.11.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for serial_scale_bench-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 7ef9907139725e5ed2330a70c88b149eb1858a2f0b99e2268ac3c3f2b0770c35
MD5 eec741e14d3dc5f8f27cda2d776a82c6
BLAKE2b-256 8c06fcdd9ea61b0c23e3b124548f482015de1a1596df06ac676a5bba8e3c9faf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page