diff --git a/docs/resources/index.md b/docs/resources/index.md
index d3767d4e8df..86aa4006dbc 100644
--- a/docs/resources/index.md
+++ b/docs/resources/index.md
@@ -192,6 +192,7 @@ library/perkin_elmer
library/pioreactor
library/porvair
library/revvity
+library/sarstedt
library/sergi
library/thermo_fisher
library/vwr
diff --git a/docs/resources/library/img/sarstedt/sarstedt_tube_2mL_Vb.jpeg b/docs/resources/library/img/sarstedt/sarstedt_tube_2mL_Vb.jpeg
new file mode 100644
index 00000000000..2227822efbc
Binary files /dev/null and b/docs/resources/library/img/sarstedt/sarstedt_tube_2mL_Vb.jpeg differ
diff --git a/docs/resources/library/sarstedt.md b/docs/resources/library/sarstedt.md
new file mode 100644
index 00000000000..040ecae7018
--- /dev/null
+++ b/docs/resources/library/sarstedt.md
@@ -0,0 +1,14 @@
+# Sarstedt
+
+## Tubes
+
+| Description | Image | PLR definition |
+|-------------|-------|----------------|
+| Screw-cap micro tube, 2 mL
Part no.: 72.609.300
[manufacturer website](https://www.sarstedt.com/en/MX/c/life-science/sample-handling/screw-cap-micro-tubes/p/screw-cap-micro-tube-2-ml/72.609.300)
Polypropylene, skirted tube with a conical interior bottom; uncapped definition. | 
The photograph shows a cap; the definition represents the uncapped tube. | `sarstedt_tube_2mL_Vb` |
+
+The definition uses a 10.8 mm diameter, 2,000 µL working volume, 45 mm overall height, and
+44 mm inner depth. The cavity floor is 1 mm above the outside base of the skirt
+(`material_z_thickness=1.0`).
+
+The measured calibration covers **50–2000 µL**, corresponding to **2.55–39.36 mm above the
+cavity floor**. No calibration is defined below 50 µL, including zero, or above 2000 µL.
diff --git a/pylabrobot/resources/__init__.py b/pylabrobot/resources/__init__.py
index 66830048a5e..07e878f25eb 100644
--- a/pylabrobot/resources/__init__.py
+++ b/pylabrobot/resources/__init__.py
@@ -58,6 +58,7 @@
)
from .revvity import *
from .rotation import Rotation
+from .sarstedt import *
from .sergi import *
from .tecan import *
from .thermo_fisher import *
diff --git a/pylabrobot/resources/sarstedt/__init__.py b/pylabrobot/resources/sarstedt/__init__.py
new file mode 100644
index 00000000000..1cc83c5b399
--- /dev/null
+++ b/pylabrobot/resources/sarstedt/__init__.py
@@ -0,0 +1 @@
+from .tubes import sarstedt_tube_2mL_Vb
diff --git a/pylabrobot/resources/sarstedt/tech_drawings/Product-Specification-Screw-cap-micro-tube-2-ml-72.609.300.pdf b/pylabrobot/resources/sarstedt/tech_drawings/Product-Specification-Screw-cap-micro-tube-2-ml-72.609.300.pdf
new file mode 100644
index 00000000000..c792ecf75dc
Binary files /dev/null and b/pylabrobot/resources/sarstedt/tech_drawings/Product-Specification-Screw-cap-micro-tube-2-ml-72.609.300.pdf differ
diff --git a/pylabrobot/resources/sarstedt/tubes.py b/pylabrobot/resources/sarstedt/tubes.py
new file mode 100644
index 00000000000..7fa33e9204a
--- /dev/null
+++ b/pylabrobot/resources/sarstedt/tubes.py
@@ -0,0 +1,52 @@
+"""Resource definitions for Sarstedt tubes."""
+
+from pylabrobot.resources.tube import Tube, TubeBottomType
+
+
+def sarstedt_tube_2mL_Vb(name: str) -> Tube:
+ """Sarstedt screw-cap micro tube, part no. 72.609.300, without cap.
+
+ Transparent polypropylene tube with a skirted conical base and knurling.
+ The specified working volume is 2,000 uL.
+
+ The overall height is 45 mm, the inner depth is 44 mm, and the cavity floor
+ is 1 mm above the outside base of the skirt.
+
+ Height-volume conversion uses piecewise-linear interpolation of measured
+ liquid heights above the cavity floor. The calibrated range is 50-2,000 uL,
+ corresponding to heights of 2.55-39.36 mm. Values outside these ranges raise
+ ValueError; the model does not extrapolate to empty or brim-full conditions.
+
+ Specification: tech_drawings/Product-Specification-Screw-cap-micro-tube-2-ml-72.609.300.pdf
+ Manufacturer: https://www.sarstedt.com/en/MX/c/life-science/sample-handling/screw-cap-micro-tubes/p/screw-cap-micro-tube-2-ml/72.609.300
+
+ Args:
+ name: Name of the tube.
+ """
+ return Tube(
+ name=name,
+ size_x=10.8, # from spec
+ size_y=10.8, # from spec
+ size_z=45.0, # measured
+ max_volume=2_000, # from spec: working volume in uL
+ material_z_thickness=1.0, # cavity floor above the outside base
+ model=sarstedt_tube_2mL_Vb.__name__,
+ bottom_type=TubeBottomType.V, # from spec: conical cavity within a standing skirt
+ # Liquid heights measured from the outside base with micrometers, minus the 1 mm
+ # cavity-floor offset. Keys are heights above the cavity floor (mm); values are uL.
+ height_volume_data={
+ 2.55: 50.0,
+ 3.12: 100.0,
+ 6.20: 200.0,
+ 8.61: 300.0,
+ 10.29: 400.0,
+ 12.35: 500.0,
+ 14.10: 600.0,
+ 15.81: 700.0,
+ 17.63: 800.0,
+ 19.62: 900.0,
+ 21.37: 1000.0,
+ 30.55: 1500.0,
+ 39.36: 2000.0,
+ },
+ )