Hi, everyone, I’m Nat, and I’m new to PLR and a noob at coding lol
I figured the best way to become familiar with PLR is to use it, and so I tried doing so to control my Hamilton HEPA fan on the Vantage, since the model I have is not compatible with being controlled via VoV. But I want to confirm something: the current backend code for the fan only supports the older model, right? Cause I have the one with the touchscreen, and I’m running into an issue that I suspect is the case.
I did a bit more troubleshooting to no avail, unfortunately
@cwehrhan You can control it via VENUS, but only on the STAR line for these hoods. Vantage refuses to connect to it, and I tried doing so through the library; hence is why my FSE said VANTAGE CAP is the only fan compatible with VoV Which is why I thought of using PLR as a way around that incompatibility.
@CamilloMoschner The error I am encountering when script my script is this:
After a bit more digging, I found that the FanBackend.py is searching under a specific VID and PID (see below), and according to the Device Manager, where my fan is COM12, the VID: PID is different (FTDIBUS\COMPORT&VID_0403&PID_6015) with a different serial number. I suspect that could be the issue or not, but I wanted to confirm with you.
# Make pylibftdi scan the Hamilton HEPA Fan VID:PID
# appears as ID 0856:ac11 B&B Electronics Model USOPTL4
from pylibftdi import driver
from pylabrobot.io.ftdi import FTDI
from .backend import FanBackend
driver.USB_VID_LIST.append(0x0856) # i.e. 2134
driver.USB_PID_LIST.append(0xAC11) # i.e. 44049
class HamiltonHepaFanBackend(FanBackend):
"""Backend for Hepa fan attachment on Hamilton Liquid Handler"""
def __init__(self, vid=0x0856, pid=0xAC11, serial_number=None, device_id=None):
self.vid = vid
self.pid = pid
self.serial_number = serial_number
self.io = FTDI(device_id=device_id)
does the hood plug into the star&vantage or into your computer directly?
if you edit the vidpid into the file in PLR does it work? (add a print to confirm the correct file is running)
ie
driver.USB_VID_LIST.append(0x0403)
driver.USB_PID_LIST.append(0x6015)
print("here")
class HamiltonHepaFanBackend(FanBackend):
"""Backend for Hepa fan attachment on Hamilton Liquid Handler"""
def __init__(self, vid=0x0403, pid=0x6015,
Hood is plugged into the computer via “USB cable (USB-B with at fan end; USB-A at control PC end)”
I did try that out before and again now (“here” was printed), but the same error still occurs. For some reason, I have three Hamilton Heater Coolers also connected to the PC, and they all share the same VIDPID as the fan. Even when I unplugged them, I still get the same error.
Also, to confirm, the fan should be listed under Ports (COM & LPT) for the script to normally work, right?
in that case we can definitely make it work with PLR
the problem is with VoV
fundamentally you just have to send the right bytes over the wire, no matter where the fan is.
the question right now is:
why can’t we connect? probably some easy problem with com port
once we connect, is the firmware interface the same as the older fan that this backend was made for? remains to be seen. (if it’s not the same, we can figure it out by looking at how star Venus talks to it, and then implement a plr interface. I’d be happy to do as much as I can)
I also did that where I replaced the driver libusbk on the Window PC and ran the script with the matching VIDPID with the only port plugged. No error, but it’s not reacting to the command. The setup command was definitely passed since I see the next line printed here:
Setting up the fan...
Turning on fan at 100% intensity for 60 seconds...
Press Enter to continue...
Turning off fan...
Done.
I also did the same on my Mac and got the same result as above. Even my mac was able to identify the connection (FTDI:FT230X Basic UART:D308VB1L). Therefore, it seems like the firmware interface is different then. In that case, it isn’t my highest priority, as this was meant as a test, but it is good to know that the compatibility is different for the newer model
if you are interested I can teach you how to intercept the firmware commands. I can analyze them and figure out how to get it to work (I don’t have this fan myself)