Trying to connect to a Tecan EVO

Hi All,
I’m trying to connect to a Tecan EVO for some PLR testing. I’ve got PLR installed and running with the Chatterbox backend & Visualizer. But I haven’t been able to connect to the actual instrument.

Here’s the setup I’m trying:

from pylabrobot.liquid_handling import LiquidHandler
from pylabrobot.visualizer.visualizer import Visualizer
from pylabrobot.resources.tecan import EVO150Deck
from pylabrobot.liquid_handling.backends import EVO

lh = LiquidHandler(backend=EVO(), deck=EVO150Deck())

#from pylabrobot.liquid_handling.backends import ChatterBoxBackend
#lh = LiquidHandler(backend=ChatterBoxBackend(), deck=EVO150Deck())
await lh.setup()

After 2 min 2.5s - the channels do something (I can hear them, but don’t see anything move) and the setup() line times out.

Error message is:
TecanError: (‘Initialization failed’, ‘C5’, 1) in EVO.py’s EVO.setup()

I believe I installed the USB driver correctly - I can see TECU in the libusbK USB Devices section of the Device Manager.

I do not have EVOware installed on this PC.

Any suggestions? Thought I’d ask before digging into an extended troubleshooting session.

Thanks - Rob

And yes, I did try power cycling it.

Im not as familiar with the Tecan (this was developed by Wilson) but happy to help.

In cases like these, looking at log files is usually the best approach. Could you initialize the robot using a computer that does have EVOware and share the corresponding log file?

Having a computer with Tecan software near you will be helpful during debugging as a source of truth.

Thanks Rick. I have another PC attached to the EVO w/ EVOware installed. It took me a minute to find the logs. Here’s the output (is there a good file attach mechanism?). The log is from power cycle → initialization.

Through EVOware I can see the USB connection (msg 7696) and then it polling the hardware.

Is PLR generating a log of sent/recieved messages?

Here’s the relevant section of the log

<Log MsgID="7695" TimeStamp="2024-03-06 11:21:17.60364" Channel="Tecan/EVOware/Log" Type="GeneralMessage" Severity="Normal" Message="     - M0,0,1" />
<Log MsgID="7696" TimeStamp="2024-03-06 11:21:17.60371" Channel="Tecan/EVOware/Log" Type="GeneralMessage" Severity="Normal" Message="A    Connected to instrument via USB" />
<Log MsgID="7697" TimeStamp="2024-03-06 11:21:17.60377" Channel="Tecan/EVOware/Log" Type="GeneralMessage" Severity="Normal" Message="     - M0,0," />
<Log MsgID="7698" TimeStamp="2024-03-06 11:21:17.60383" Channel="Tecan/EVOware/Log" Type="GeneralMessage" Severity="Normal" Message="F    &gt; C1,SRA" />
<Log MsgID="7699" TimeStamp="2024-03-06 11:21:17.60383" Channel="Tecan/Communication/Server" Type="GeneralMessage" Severity="Normal" Message="CommandObserver: Command: @RO; state of door lock observer: True"  />
<Log MsgID="7700" TimeStamp="2024-03-06 11:21:17.60389" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="@RO" ProtocolMsgID="0" DeviceID="M0" Response="1" ReturnCode="0" Duration="0" />
<Log MsgID="7701" TimeStamp="2024-03-06 11:21:17.60393" Channel="Tecan/Communication/Server" Type="GeneralMessage" Severity="Normal" Message="CommandObserver: Command: @SO1; door lock observation is activated"  />
<Log MsgID="7702" TimeStamp="2024-03-06 11:21:17.60396" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="@SO" ProtocolMsgID="0" DeviceID="M0" Parameters="1" Response="" ReturnCode="0" Duration="0" />
<Log MsgID="7703" TimeStamp="2024-03-06 11:21:17.60399" Channel="Tecan/Communication/Server" Type="GeneralMessage" Severity="Normal" Message="Connecting protocol &apos;RspUsbProtocol&apos; to port &apos;UsbPort&apos;"  />
<Log MsgID="7704" TimeStamp="2024-03-06 11:21:17.61815" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="SRA" ProtocolMsgID="555" DeviceID="C1" Parameters="" Response="" ReturnCode="0" Duration="67" />
<Log MsgID="7705" TimeStamp="2024-03-06 11:21:17.61818" Channel="Tecan/EVOware/Log" Type="GeneralMessage" Severity="Normal" Message="     - C1,0," />
<Log MsgID="7706" TimeStamp="2024-03-06 11:21:17.61925" Channel="Tecan/EVOware/Log" Type="GeneralMessage" Severity="Normal" Message="E    Scanning for and configuring ZaapMotionAxes ..." />
<Log MsgID="7707" TimeStamp="2024-03-06 11:21:17.63472" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="RFV" ProtocolMsgID="556" DeviceID="M1" Parameters="" Response="TECU-V1.40-12/2007" ReturnCode="0" Duration="6" />
<Log MsgID="7708" TimeStamp="2024-03-06 11:21:17.63480" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="RFV" ProtocolMsgID="557" DeviceID="C1" Parameters="" Response="ROMACU-V2.21-09/2007" ReturnCode="0" Duration="60" />
<Log MsgID="7709" TimeStamp="2024-03-06 11:21:17.63483" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="RFV" ProtocolMsgID="558" DeviceID="C3" Parameters="" Response="" ReturnCode="5" Duration="3" />
<Log MsgID="7710" TimeStamp="2024-03-06 11:21:17.65039" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="RFV" ProtocolMsgID="559" DeviceID="C5" Parameters="" Response="LIHACU-V1.80-02/2016" ReturnCode="0" Duration="59" />
<Log MsgID="7711" TimeStamp="2024-03-06 11:21:17.66518" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T20" ProtocolMsgID="560" DeviceID="C5" Parameters="RFV" Response="XP2-BOOT-V1.00-05/2011,1.0.0.9506,ZMB" ReturnCode="0" Duration="163" />
<Log MsgID="7712" TimeStamp="2024-03-06 11:21:17.66624" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="RFV" ProtocolMsgID="561" DeviceID="C7" Parameters="" Response="" ReturnCode="5" Duration="3" />
<Log MsgID="7713" TimeStamp="2024-03-06 11:21:17.68158" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T20" ProtocolMsgID="562" DeviceID="C5" Parameters="RFV" Response="XP2-BOOT-V1.00-05/2011,1.0.0.9506,ZMB" ReturnCode="0" Duration="164" />
<Log MsgID="7714" TimeStamp="2024-03-06 11:21:17.68180" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T20" ProtocolMsgID="563" DeviceID="C5" Parameters="X" Response="" ReturnCode="0" Duration="58" />
<Log MsgID="7715" TimeStamp="2024-03-06 11:21:18.71561" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T20" ProtocolMsgID="564" DeviceID="C5" Parameters="RFV" Response="XP2000-V1.20-02/2015,1.2.0.10946,ZMA" ReturnCode="0" Duration="163" />
<Log MsgID="7716" TimeStamp="2024-03-06 11:21:18.71569" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T20" ProtocolMsgID="565" DeviceID="C5" Parameters="RCS" Response="" ReturnCode="2" Duration="61" />
<Log MsgID="7717" TimeStamp="2024-03-06 11:21:18.73082" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T20" ProtocolMsgID="566" DeviceID="C5" Parameters="CFE 255,500" Re
1 Like

Small update:

  • stepping through the setup() method, I can see that it’s connecting via usb - send and recieve are working

  • the first command sent is C5PIA (initialize the LiHA) the response is bytearray(b’\x02C5\x81\x00’) - the 1 in x81 is the error code for Not Initialized. The hardware does move in respond to this though.

  • if I comment out the PLR code that raises an exception and just let the code continue, all of the rest of the initialization commands to the LiHa and RoMA continue just fine. They respond without error codes, the hardware moves to initialization positions, and position/offset data is being returned.

  • This behavoir repeats when I retry and powercycle. And when I move the LiHa away from the far left x rail position.

I’m trying to get the firmware command guide - the commands that I see from the EVOware logs don’t seem to quite match up with what PLR is sending. There are also a million logs, so maybe I’m just not looking in the right one. I can’t find a “PIA” command being sent in the EVOware log.

OK, now I see it in this log from EVOware. However, it seems to respond w/ 0 (ie No Error) on the first pass. One difference I see is the > C5,T23SDO11,1 command being sent first. No idea what that command is though.

Shall EVOware move the robotic arms to their home positions?
F 10:52:37    > O1,RSL1
              - O1,0,1
              > O1,SSL1,0
              - O1,0,
              > O1,SSL2,2
              - O1,0,
D 10:52:45    button Yes has been pressed
F 10:52:45    > O1,RSL2
              - O1,0,2
              > O1,SSL2,0
              - O1,0,
              > O1,SSL1,1
              - O1,0,
              > C5,T23SDO11,1
              - C5,0,
              > C5,PIA
F 10:52:58    - C5,0,
              > C5,BMX2
              - C5,0,
              > C1,PIA
F 10:53:54    - C1,0,
              > C1,PIX
F 10:53:55    - C1,0,
              > C1,RHW
              - C1,0,2
              > C2,RPX0
              - C2,0,1288
              > C2,RPY0
              - C2,0,-613
              > C2,RPZ0
              - C2,0,2554
              > C2,RPR0
              - C2,0,0
              > C2,RPG0
              - C2,0,560
              > C2,RPX0
              - C2,0,1288
              > C2,RPY0
              - C2,0,-613
              > C2,RPZ0
              - C2,0,2554
              > C2,RPR0
              - C2,0,0
              > C2,RPG0
              - C2,0,560
              > C5,PIX
F 10:53:56    - C5,0,

Is this just the PIA command / EVO.setup_arm?

if you can provide the content of logfile from C:/programdata/tecan/evoware/audittrail/log - these files are EVOware specific and are easier to review

the .log file with the date/timestamp after a power cycle + an initialization is most useful

i am curious if the original system for development was a different arm config, & the differences to yours throw the error

Yes - just the first PIA command is returning an error. I’ve commented out the PLR code to raise an exception so that it will continue with the setup. Subsequent commands (ie C1PIA and C5PIX) all are responded to without error.

1 Like

I am wondering the same thing. The EVO I’m using has an air LiHa. In the log file from EVOware, it sends C5,T23SDO11 before PIA (PIA = init X/Y/Z).

I’ll try a few more things today or tomorrow morning.

1 Like

Tried a few more things, seems to be something with the z-axis init. When I try the other multi-axis initialization commands, they fail. When I try just x (PIX), it works. PIY works. PIZ fails.

I’m reading up on the firmware commands and digging into the EVOware logs.

1 Like

Well, it’s something with the Air LiHa dilutors. In the main log (C:\ProgramData\Tecan\Evoware\AuditTrail) there are a couple of lines in the midst of a bunch of firmware commands:

              > M1,RMA
              * M1,2,
              > M1,RSD4,1
              - M1,0,0
E 10:43:29    Scanning for and configuring ZaapMotionAxes ...
E 10:44:03    Scan completed - 1 Air LiHa arms found on instrument.
F 10:44:03    > M1,RSD1,0
              - M1,0,51
              > C1,RFV
              - C1,0,ROMACU-V2.21-09/2007
              > C1,RFV

Some things to note:

  1. Some firmware command responses are strings - the repsonse parser in PLR expects ints and throws an error. I just changed the parser to cast to string instead of int.
  2. Sometimes a module will respond w/ an error - EVOware continues along, maybe expecting the error or doing something to remedy it.
  3. When that “Scanning for and configuring ZaapMotionAxes…” line runs, the air dilutors are doing something. Something that must be necessary for the Z axis init later.

I ran all of the commands (~250) from the EVOware startup log in PLR to see if there was some combination of commands that would allow the initialization. No luck. Most of the commands are RFV (request for verification) or other read parameter commands.

I then dug through some of the other log files and a long stream of commands that look to be targeting each of the air dilutors and correspond to the “Search for and configure…” main log time stamps (see below). I’m guessing that those are the dilutor setup steps that are necessary before z-axis int. I’m going to try sending all of those through PLR. Hopefully I can try that tomorrow.

="T27" ProtocolMsgID="280" DeviceID="C5" Parameters="RFV" Response="XP2-BOOT-V1.00-05/2011,1.0.0.9506,ZMB" ReturnCode="0" Duration="164" />
  <Log MsgID="503" TimeStamp="2024-03-11 10:29:56.10922" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="281" DeviceID="C5" Parameters="X" Response="" ReturnCode="0" Duration="58" />
  <Log MsgID="504" TimeStamp="2024-03-11 10:29:57.14230" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="282" DeviceID="C5" Parameters="RFV" Response="XP2000-V1.20-02/2015,1.2.0.10946,ZMA" ReturnCode="0" Duration="161" />
  <Log MsgID="505" TimeStamp="2024-03-11 10:29:57.14395" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="283" DeviceID="C5" Parameters="RCS" Response="" ReturnCode="2" Duration="61" />
  <Log MsgID="506" TimeStamp="2024-03-11 10:29:57.15884" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="284" DeviceID="C5" Parameters="CFE 255,500" Response="" ReturnCode="0" Duration="85" />
  <Log MsgID="507" TimeStamp="2024-03-11 10:29:57.17357" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="285" DeviceID="C5" Parameters="CAD ADCA,0,12.5" Response="" ReturnCode="0" Duration="96" />
  <Log MsgID="508" TimeStamp="2024-03-11 10:29:57.17364" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="286" DeviceID="C5" Parameters="CAD ADCB,1,12.5" Response="" ReturnCode="0" Duration="96" />
  <Log MsgID="509" TimeStamp="2024-03-11 10:29:58.25447" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="287" DeviceID="C5" Parameters="EDF1" Response="" ReturnCode="0" Duration="10828" />
  <Log MsgID="510" TimeStamp="2024-03-11 10:29:58.27085" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="288" DeviceID="C5" Parameters="EDF4" Response="" ReturnCode="0" Duration="62" />
  <Log MsgID="511" TimeStamp="2024-03-11 10:29:58.28550" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="289" DeviceID="C5" Parameters="CDO 11" Response="" ReturnCode="0" Duration="70" />
  <Log MsgID="512" TimeStamp="2024-03-11 10:29:58.28563" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="290" DeviceID="C5" Parameters="EDF5" Response="" ReturnCode="0" Duration="63" />
  <Log MsgID="513" TimeStamp="2024-03-11 10:29:58.30103" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="291" DeviceID="C5" Parameters="SIC 10,5" Response="" ReturnCode="0" Duration="74" />
  <Log MsgID="514" TimeStamp="2024-03-11 10:29:58.30110" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="292" DeviceID="C5" Parameters="SEA ADD,H,4,STOP,1,0,0" Response="1" ReturnCode="0" Duration="120" />
  <Log MsgID="515" TimeStamp="2024-03-11 10:29:58.31703" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="293" DeviceID="C5" Parameters="CMTBLDC,1" Response="" ReturnCode="0" Duration="81" />
  <Log MsgID="516" TimeStamp="2024-03-11 10:29:58.33224" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="294" DeviceID="C5" Parameters="CETQEP2,256,R" Response="" ReturnCode="0" Duration="87" />
  <Log MsgID="517" TimeStamp="2024-03-11 10:29:58.33231" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="295" DeviceID="C5" Parameters="CECPOS,QEP2" Response="" ReturnCode="0" Duration="84" />
  <Log MsgID="518" TimeStamp="2024-03-11 10:29:58.34888" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="296" DeviceID="C5" Parameters="CECCUR,QEP2" Response="" ReturnCode="0" Duration="84" />
  <Log MsgID="519" TimeStamp="2024-03-11 10:29:58.36420" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="297" DeviceID="C5" Parameters="CEE OFF" Response="" ReturnCode="0" Duration="70" />
  <Log MsgID="520" TimeStamp="2024-03-11 10:29:58.36426" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="298" DeviceID="C5" Parameters="STL80" Response="" ReturnCode="0" Duration="64" />
  <Log MsgID="521" TimeStamp="2024-03-11 10:29:58.37910" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="299" DeviceID="C5" Parameters="SVL12,8,16" Response="" ReturnCode="0" Duration="82" />
  <Log MsgID="522" TimeStamp="2024-03-11 10:29:58.37917" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="300" DeviceID="C5" Parameters="SVL24,20,28" Response="" ReturnCode="0" Duration="84" />
  <Log MsgID="523" TimeStamp="2024-03-11 10:29:58.39512" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="301" DeviceID="C5" Parameters="SCL1,900,3.5" Response="" ReturnCode="0" Duration="86" />
  <Log MsgID="524" TimeStamp="2024-03-11 10:29:58.41174" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="302" DeviceID="C5" Parameters="SCE HOLD,500" Response="" ReturnCode="0" Duration="86" />
  <Log MsgID="525" TimeStamp="2024-03-11 10:29:58.41181" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="303" DeviceID="C5" Parameters="SCE MOVE,500" Response="" ReturnCode="0" Duration="86" />
  <Log MsgID="526" TimeStamp="2024-03-11 10:29:58.42639" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="304" DeviceID="C5" Parameters="CIR0" Response="" ReturnCode="0" Duration="63" />
  <Log MsgID="527" TimeStamp="2024-03-11 10:29:58.44290" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="305" DeviceID="C5" Parameters="PIDHOLD,D,1.2,1,-1,0.003,0,0,OFF" Response="" ReturnCode="0" Duration="146" />
  <Log MsgID="528" TimeStamp="2024-03-11 10:29:58.45882" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="306" DeviceID="C5" Parameters="PIDMOVE,D,0.8,1,-1,0.004,0,0,OFF" Response="" ReturnCode="0" Duration="147" />
  <Log MsgID="529" TimeStamp="2024-03-11 10:29:58.47324" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="307" DeviceID="C5" Parameters="PIDHOLD,Q,1.2,1,-1,0.003,0,0,OFF" Response="" ReturnCode="0" Duration="147" />
  <Log MsgID="530" TimeStamp="2024-03-11 10:29:58.48988" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="308" DeviceID="C5" Parameters="PIDMOVE,Q,0.8,1,-1,0.004,0,0,OFF" Response="" ReturnCode="0" Duration="146" />
  <Log MsgID="531" TimeStamp="2024-03-11 10:29:58.50446" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="309" DeviceID="C5" Parameters="PIDHOLD,POS,0.2,1,-1,0.02,4,0,OFF" Response="" ReturnCode="0" Duration="153" />
  <Log MsgID="532" TimeStamp="2024-03-11 10:29:58.52005" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="310" DeviceID="C5" Parameters="PIDMOVE,POS,0.35,1,-1,0.1,3,0,OFF" Response="" ReturnCode="0" Duration="153" />
  <Log MsgID="533" TimeStamp="2024-03-11 10:29:58.53673" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="311" DeviceID="C5" Parameters="PIDSPDELAY,0" Response="" ReturnCode="0" Duration="86" />
  <Log MsgID="534" TimeStamp="2024-03-11 10:29:58.55148" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="312" DeviceID="C5" Parameters="SFF 0.045,0.4,0.041" Response="" ReturnCode="0" Duration="108" />
  <Log MsgID="535" TimeStamp="2024-03-11 10:29:58.55281" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="313" DeviceID="C5" Parameters="SES 0" Response="" ReturnCode="0" Duration="65" />
  <Log MsgID="536" TimeStamp="2024-03-11 10:29:58.56666" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="314" DeviceID="C5" Parameters="SPO0" Response="" ReturnCode="0" Duration="62" />
  <Log MsgID="537" TimeStamp="2024-03-11 10:29:58.56773" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="315" DeviceID="C5" Parameters="SIA 0.01, 0.28, 0.0" Response="" ReturnCode="0" Duration="110" />
  <Log MsgID="538" TimeStamp="2024-03-11 10:29:59.96001" Channel="Tecan/EVOware/Log" Type="GeneralMessage" Severity="Normal" Message="E    Scan completed - 1 Air LiHa arms found on instrument." />
  <Log MsgID="539" TimeStamp="2024-03-11 10:29:59.96003" Channel="Tecan/Communication/RspLibrary/Commands" Type="RspLogMessage" Severity="Normal" Command="T27" ProtocolMsgID="316" DeviceID="C5" Parameters="WRP" Response="RPR R,0" ReturnCode="0" Duration="13875" />
  <Log MsgID="540" TimeStamp="2024-03-11 10:29:59.96010" Channel="Tecan/EVOware/Log" Type="GeneralMessage" Severity="Normal" Message="F    &gt; M1,RSD1,0" />
1 Like

Super exciting to see this progress!

Do you want to make a PR for this? :slight_smile:

As a data point, Hamilton also does this. We probably run just 10% of their commands on PLR setup.

Looking forward to this!


Some unrequested advice: I find that for interactive debugging like this, a Jupyter notebook significantly reduces iteration time and speeds up development by a lot.

1 Like

I added in all of the air dilutor initialization commands - but it’s still not enabling the z-axis initialization.

One thing that I have noticed - when I call PIZ255 (init z axis w/ all 8 channels) - they move up then down, but tip 4 (4th from the front) dips down a few mm below the rest.

I’ve installed wireshark on the EVOware PC to see if there are any commands I’m missing. I’ve tried adding in all of the EVOware log file command to the PLR setup() - but it continues to fail on any z-axis initialization command. Works fine from EVOware and I don’t see any differences in the commands I’m sending via PLR vs the EVOware commands.

So I finally got the z-axis to initialize, but it’s still a bit of a mystery.

This sequence of steps works:

  1. Use EVOware to initialize and home the arms
  2. Disconnect the USB cable from the EVOware PC and plug it into my dev PC
  3. Run the PLR setup methods - PIA and any z-axis init commands complete successfully

If I powercycle the hardware, it fails. For this system, it looks like PLR’s startup commands are unable to get the hardware from power-on not-initialized state to initialized. I’ve been digging through the log files pretty deeply and have tried to emulate EVOware startup command, but am still missing some critical setup step.

1 Like

If you just simulate all the commands sent by EVOware in PLR, this should work. This means only running the PLR setup for establishing the USB connection but no Tecan-specific commands after that. This will require a little commenting-out code in EVO.setup. Can you confirm this works? From there we can see what commands PLR is currently sending. If this does not work for some reason, that is worrisome and we need to figure out what else EVOware is doing that it’s not showing.

1 Like

If you just simulate all the commands sent by EVOware in PLR, this should work.

I’m still missing something. Or there’s some crucial timing or context-specific-acknowledgement that I haven’t replicated. But I haven’t been able to fully init through PLR. Only when I connect via EVOware and then switch to PLR will the initialization complete successfully. tenkuroh on the other thread seems to be confirming this.

This means only running the PLR setup for establishing the USB connection but no Tecan-specific commands after that. This will require a little commenting-out code in EVO.setup. Can you confirm this works?

Yes, I am able to establish USB connection and I know that commands are being sent/received correctly. Most commands complete successfully and return the expected values, except the initialize z-axis ones.

As a work-around, I’m connecting via EVOware then switching to PLR. But I’m also planning to use wireshark to see if there is anything else EVOware is doing on instrument connection that might be missing in PLR.

1 Like

let me know how that goes or if I can help!