Mettler Toledo WXS205SDU#

The WXS205SDU is a high-precision automated weigh module from Mettler Toledo, commonly used for gravimetric liquid transfer verification (e.g. in the Hamilton Liquid Verification Kit).

Property

Value

OEM Link

Communication

Serial / RS-232

VID:PID

0x0403:0x6001

Load range

0 – 220 g

Readability

0.1 mg

The backend has been tested on the WXS205SDU but, per Mettler Toledo firmware documentation, should be applicable to other “Automated Precision Weigh Modules” in the WX and WMS series.

Physical setup#

The system consists of two required units and one optional unit:

Component

Required

Description

Load Cell

yes

The weighing platform where samples are placed

Electronic Unit

yes

The control and communication module

Terminal/Display

no

For manual reading; not needed when using PyLabRobot

Connect the electronic unit to your computer via the RS-232 serial port. You will likely need a USB-to-serial adapter (any generic FTDI-based adapter should work).

Warning

The scale requires a warm-up period after being powered on. Mettler Toledo specifies 60–90 minutes, though 30 minutes is often sufficient in practice. If you attempt measurements before warm-up, you may see: “Command understood but currently not executable”.

Setup#

from pylabrobot.mettler_toledo import MettlerToledoWXS205SDU

scale = MettlerToledoWXS205SDU(port="/dev/cu.usbserial-110")  # replace with your port
await scale.setup()

Weighing#

The scale exposes zero(), tare(), and read_weight().

Zero#

Calibrates the scale to read zero with an empty platform. Use at the start of a workflow.

await scale.zero()

Tare#

Resets the displayed weight to zero while accounting for a container already on the platform. Place your container, then tare, so subsequent readings reflect only the added material.

await scale.tare()

Read weight#

Returns the current weight in grams.

weight = await scale.read_weight()
print(f"Weight: {weight} g")

Further methods#

  • request_tare_weight() – retrieve the stored tare value

  • request_serial_number() – read the scale’s serial number

  • clear_tare() – clear the stored tare weight

  • zero(timeout=...) / tare(timeout=...) / read_weight(timeout=...) – pass a timeout mode ("stable", 0, or seconds)

tare_value = await scale.request_tare_weight()
print(f"Stored tare: {tare_value} g")

Teardown#

await scale.stop()