diff --git a/docs/resources/index.md b/docs/resources/index.md
index 3129ef01835..b58df13055b 100644
--- a/docs/resources/index.md
+++ b/docs/resources/index.md
@@ -183,6 +183,7 @@ library/nest
library/opentrons
library/porvair
library/revvity
+library/sergi
library/thermo_fisher
library/vwr
```
diff --git a/docs/resources/library/img/sergi/SergiLabSupplies_96_MagneticRack_250ul_Vb.jpg b/docs/resources/library/img/sergi/SergiLabSupplies_96_MagneticRack_250ul_Vb.jpg
new file mode 100644
index 00000000000..8007a3ef4c3
Binary files /dev/null and b/docs/resources/library/img/sergi/SergiLabSupplies_96_MagneticRack_250ul_Vb.jpg differ
diff --git a/docs/resources/library/img/vwr/VWR_1_troughplate_195000uL_Ub.jpg b/docs/resources/library/img/vwr/VWR_1_troughplate_195000uL_Ub.jpg
new file mode 100644
index 00000000000..eb6e9d51c6e
Binary files /dev/null and b/docs/resources/library/img/vwr/VWR_1_troughplate_195000uL_Ub.jpg differ
diff --git a/docs/resources/library/img/vwr/VWR_96_wellplate_2mL_Vb.jpg b/docs/resources/library/img/vwr/VWR_96_wellplate_2mL_Vb.jpg
new file mode 100644
index 00000000000..7946958163b
Binary files /dev/null and b/docs/resources/library/img/vwr/VWR_96_wellplate_2mL_Vb.jpg differ
diff --git a/docs/resources/library/sergi.md b/docs/resources/library/sergi.md
new file mode 100644
index 00000000000..c1d8fa5d5d6
--- /dev/null
+++ b/docs/resources/library/sergi.md
@@ -0,0 +1,9 @@
+# Sergi Lab Supplies
+
+Company page: [Sergi Lab Supplies](https://sergilabsupplies.com/?srsltid=AfmBOoqk2e3QkpWxvWEtSXS4ySJVoly7hvdiji_ehH5-s6tM3gi67SMu)
+
+## Plate Adaptors
+
+| Description | Image | PLR definition |
+|--------------------|--------------------|--------------------|
+| 'SergiLabSupplies_96_MagneticRack_250ul_Vb'
Part no.: 1047
[manufacturer website](https://sergilabsupplies.com/collections/magnetic-racks/products/96-wells-magnetic-rack-for-dna-rna-and-other-molecules-purification)
A separator for purifying DNA, RNA or other biomolecules with magnetic beads |  | `SergiLabSupplies_96_MagneticRack_250ul_Vb` |
\ No newline at end of file
diff --git a/docs/resources/library/vwr.md b/docs/resources/library/vwr.md
index 2976683a8ff..62cae2f87ce 100644
--- a/docs/resources/library/vwr.md
+++ b/docs/resources/library/vwr.md
@@ -7,3 +7,10 @@ Company page: [Wikipedia](https://en.wikipedia.org/wiki/VWR_International)
| Description | Image | PLR definition |
|--------------------|--------------------|--------------------|
| 'VWRReagentReservoirs25mL'
Part no.: 89094
[manufacturer website](https://us.vwr.com/store/product/4694822/vwr-disposable-pipetting-reservoirs)
Polystyrene Reservoirs |  | `VWRReagentReservoirs25mL` |
+
+## Plates
+
+| Description | Image | PLR definition |
+|--------------------|--------------------|--------------------|
+| 'VWR_1_troughplate_195000uL_Ub'
Part no.: 77575-302
[manufacturer website](https://www.avantorsciences.com/us/en/product/47763965/vwr-multi-channel-polypropylene-reagent-reservoirs?isCatNumSearch=true&searchedCatalogNumber=77575-302)
Polypropylene multi-channel reagent reservoirs |  | `VWR_1_troughplate_195000uL_Ub` |
+| 'VWR_96_wellplate_2mL_Vb'
Part no.: 76329-998
[manufacturer website](https://us-prod2.vwr.com/store/product/26915641/vwr-96-well-deep-well-plates-with-automation-notches)
Polypropylene multi-channel reagent reservoirs |  | `VWR_96_wellplate_2mL_Vb` |
diff --git a/pylabrobot/resources/__init__.py b/pylabrobot/resources/__init__.py
index e542af7db81..a31d59ce87a 100644
--- a/pylabrobot/resources/__init__.py
+++ b/pylabrobot/resources/__init__.py
@@ -35,6 +35,7 @@
from .resource_stack import ResourceStack
from .revvity import *
from .rotation import Rotation
+from .sergi import *
from .tecan import *
from .thermo_fisher import *
from .tip_rack import TipRack, TipSpot
diff --git a/pylabrobot/resources/sergi/__init__.py b/pylabrobot/resources/sergi/__init__.py
new file mode 100644
index 00000000000..3a2db2824f7
--- /dev/null
+++ b/pylabrobot/resources/sergi/__init__.py
@@ -0,0 +1 @@
+from .plate_adapters import SergiLabSupplies_96_MagneticRack_250ul_Vb
diff --git a/pylabrobot/resources/sergi/plate_adapters.py b/pylabrobot/resources/sergi/plate_adapters.py
new file mode 100644
index 00000000000..55df7be7743
--- /dev/null
+++ b/pylabrobot/resources/sergi/plate_adapters.py
@@ -0,0 +1,29 @@
+"""Sergi Lab Supplies plate adapters"""
+
+from pylabrobot.resources.plate_adapter import PlateAdapter
+
+
+def SergiLabSupplies_96_MagneticRack_250ul_Vb(name: str) -> PlateAdapter:
+ """
+ Sergi Lab Supplies Magnetic Rack [cat. no. 1047]
+ - Holds a 96-well PCR plate for DNA/RNA purification
+ - SBS footprint: 127.76 x 85.48 mm
+ - Rack height: 22.0 mm
+ - Pulls magnetic beads ~1-2 mm above bottom
+ """
+
+ # measurements from technical drawing:
+ # https://sergilabsupplies.com/collections/magnetic-racks/products/96-wells-magnetic-rack-for-dna-rna-and-other-molecules-purification
+ return PlateAdapter(
+ name=name,
+ size_x=127.76, # from spec
+ size_y=85.48, # from spec
+ size_z=22.0, # from spec
+ dx=9.88, # measured (127.76 - 108) / 2 = 9.88
+ dy=4.74, # measured (85.48 - 76) / 2 = 4.74
+ dz=7.0, # measured
+ adapter_hole_size_x=7.0, # measured
+ adapter_hole_size_y=7.0, # measured
+ adapter_hole_size_z=16.0, # measured (22.0 - 6) = 16.0
+ model="SergiLabSupplies_96_MagneticRack_250ul_Vb",
+ )
diff --git a/pylabrobot/resources/vwr/__init__.py b/pylabrobot/resources/vwr/__init__.py
index 1d84afb05a5..fa3552c9330 100644
--- a/pylabrobot/resources/vwr/__init__.py
+++ b/pylabrobot/resources/vwr/__init__.py
@@ -1 +1,2 @@
+from .plates import VWR_1_troughplate_195000uL_Ub, VWR_96_wellplate_2mL_Vb
from .troughs import VWRReagentReservoirs25mL
diff --git a/pylabrobot/resources/vwr/plates.py b/pylabrobot/resources/vwr/plates.py
new file mode 100644
index 00000000000..0977439d67a
--- /dev/null
+++ b/pylabrobot/resources/vwr/plates.py
@@ -0,0 +1,76 @@
+from pylabrobot.resources.plate import Plate
+from pylabrobot.resources.utils import create_ordered_items_2d
+from pylabrobot.resources.well import (
+ CrossSectionType,
+ Well,
+ WellBottomType,
+)
+
+
+def VWR_1_troughplate_195000uL_Ub(name: str) -> Plate:
+ """VWR NA Cat. No. 77575-302"""
+ # technical drawing:
+ # https://github.com/PyLabRobot/pylabrobot/pull/574#issuecomment-2967988150
+
+ # product info
+ # https://us-prod2.vwr.com/store/product/47763965/vwr-multi-channel-polypropylene-reagent-reservoirs
+
+ return Plate(
+ name=name,
+ size_x=127.76, # from spec
+ size_y=85.48, # from spec
+ size_z=31.4, # from spec
+ lid=None,
+ model=VWR_1_troughplate_195000uL_Ub.__name__,
+ ordered_items=create_ordered_items_2d(
+ Well,
+ size_x=127.76 - (14.38 - 8.9 / 2) * 2, # from spec
+ size_y=85.48 - (11.24 - 8.9 / 2) * 2, # from spec
+ size_z=26.85, # from spec
+ dx=9.93, # 14.38 - (8.9/2) from spec
+ dy=6.79, # 11.24 - (8.9/2) from spec
+ dz=3.55, # from spec
+ material_z_thickness=1, # 31.4 - (26.85 + 3.55) from spec
+ item_dx=9.0, # from spec
+ item_dy=9.0, # from spec
+ num_items_x=1, # from spec
+ num_items_y=1, # from spec
+ cross_section_type=CrossSectionType.RECTANGLE,
+ bottom_type=WellBottomType.U,
+ max_volume=195000, # from spec 195 mL
+ ),
+ )
+
+
+def VWR_96_wellplate_2mL_Vb(name: str) -> Plate:
+ """VWR NA Cat. No. 76329-998"""
+ # product info
+ # https://us-prod2.vwr.com/store/product/26915641/vwr-96-well-deep-well-plates-with-automation-notches
+
+ # no technical drawing available
+
+ return Plate(
+ name=name,
+ size_x=127.76, # standard
+ size_y=85.48, # standard
+ size_z=44.0, # measured
+ lid=None,
+ model=VWR_96_wellplate_2mL_Vb.__name__,
+ ordered_items=create_ordered_items_2d(
+ Well,
+ size_x=10.0, # measured
+ size_y=10.0, # measured
+ size_z=43.5, # measured
+ dx=9.0, # measured
+ dy=5.5, # measured
+ dz=0.5, # 44.0 - 43.5 = 0.5
+ material_z_thickness=1, # estimate
+ item_dx=10.0, # measured
+ item_dy=10.0, # measured
+ num_items_x=12, # from spec
+ num_items_y=8, # from spec
+ cross_section_type=CrossSectionType.RECTANGLE,
+ bottom_type=WellBottomType.V,
+ max_volume=2200, # from spec 2.2 ml
+ ),
+ )