This plasma thawing device provides rapid and controlled temperature management for sensitive biological samples, ensuring efficient and safe preparation for laboratory procedures.<br><br><div style="margin-left: 20px; text-indent: -20px; padding-left: 20px; line-height: 1.4; margin-bottom: 0.1em;"><strong>Brand:</strong> Barkey</div><div style="margin-left: 20px; text-indent: -20px; padding-left: 20px; line-height: 1.4; margin-bottom: 0.1em;"><strong>Model:</strong> Plasmatherm TCP Blood / Plasma Thawing System</div><div style="margin-left: 20px; text-indent: -20px; padding-left: 20px; line-height: 1.4; margin-bottom: 0.1em;"><strong>Model Number/MPN:</strong> 00000460</div><div style="margin-left: 20px; text-indent: -20px; padding-left: 20px; line-height: 1.4; margin-bottom: 0.1em;"><strong>Power:</strong> 100-120 VAC, 50/60 Hz, 1350 W</div><div style="margin-left: 20px; text-indent: -20px; padding-left: 20px; line-height: 1.4; margin-bottom: 0.1em;"><strong>Country of Manufacture:</strong> Germany</div><div style="margin-left: 20px; text-indent: -20px; padding-left: 20px; line-height: 1.4; margin-bottom: 0.1em;"><strong>Power Supply:</strong> Included</div><div style="margin-left: 20px; text-indent: -20px; padding-left: 20px; line-height: 1.4; margin-bottom: 0.1em;"><strong>Functional Testing:</strong> Tested for power only</div><br>The unit displays signs of previous use, including some light scratches and handling marks on the housing. The transparent lid is intact with some scratching of varying depths. This unit has been tested for power only. It has not been tested in the field of use. Please review all photos for more details!<br><br>Hassle Free 30 day guarantee on our entire inventory!<br><br><hr><br><em>All photos are of the item(s) you will receive!</em>