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.
pylabrobot.mettler_toledo.MettlerToledoWXS205SDUPhysical 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()