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 |
|---|---|
Communication |
Serial / RS-232 |
VID:PID |
|
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 valuerequest_serial_number()– read the scale’s serial numberclear_tare()– clear the stored tare weightzero(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()