Return volume after method abort

Hello all!

Does anyone know a way how to return a volume back in a plate where the last aspirate is done if you abort the method? Usually the “main dialog” says - only drop tips. Reading manula I don’t really find it.

And one more question about the door. During running a method the door is closed and when you open it, the method immediately aborts. Is there a way to change this function for example for the “pause”?

Thanks for any help

Even if it was possible, it’s almost certainly a Bad IdeaTM to modify the default OnAbort instrument behavior - it’s a well worn predictable routine that minimizes opportunity for hardware collisions and is widely familiar to almost any Hamilton user…

Instead, a better option is to handle potential Abort inducing errors immediately and in the context which they occur.

In the Instrument Step: Select Error Settings in your Tip Pickup / Aspirate / Dispense / Tip Eject / Transport command

Define the behavior you would like to occur upon the various possible scenarios.

Some errors have potential recovery options like Empty tip into source and exclude the channel but channel exclusion is typically not a desirable outcome as far as sequence handling is concerned for the non-excluded channels.

Error Handling by the User steps

Error Handling by the User Help Documentation:

Example:

The HSLErrLib gives you access to error codes and descriptions in the Error Handler in an Error Handling by the User command if you want to provide an option for proceeding in different scenarios.

Some errors are going to be more or less unrecoverable in an error handler - typically any hardware error should be immediately sent to the STAR recovery Abort routine which is a reliable way to return the instrument to a collision free and tip-less state.

I would suggest getting familiar with error handling and recovery behavior with a test method. You can kick a method into the error handler during an Aspiration relatively easily …

  • Insufficient Liquid Error: Aspirate with LLD and Liquid Following enabled with a large volume that is more than available in a test plate.

  • Liquid Level Error: Aspirate with LLD enabled with an empty test plate.

Testing a few errors will give you an idea of what is returned by the HSLErrLib commands if you want to handle different errors with options such as “Return to source and continue” and “Abort Immediately”

I see. You’re explaining errors only connects to single steps. I don’t use them yet. Today I was looking through errors in Smart Steps and didn’t see the same.

Usually people at my job work with files such as .csv and .xls and for this task we use Smart Steps + Import Worklist. The reason why I asked this question is a human factor + some technical issues (defective tip, the well goes up with a tip… could de different).

In our lab we have different devices like Biomek i5\i7, Agilent Bravo, Tecan, LynX… and all of them have Manual Control how to return volume, just for two clicks. Hamilton is new for us and we try to figure out all its functionality. It happens hardly ever, but if it DID I just want to know the answer.

1 Like

I’d like to reopen this discussion. Hamilton is a very versatile system but to my knowledge, if the abort state is active, there is NO WAY to recovery any solution in the tips. This is a big problem if sample is aspirated and a crash occurs.

The only solution I found was to use Star Service software to manually command the pipette actions. Hamilton does not offer this solution to their clients though - as using the software improperly could run risk of serious damage.

Hi Jay,

There are other options to add in custom error handling steps or program recovery steps in the OnAbort tab. While there is risk that Will alluded to earlier in this thread, it really depends on the type of error that is generated after an aspirate step in which the tips are still holding liquid. For example, you can use error handling and step returns to dispense back liquids, but not if channels crash or experience some other hardware error.

If you could provide use cases where this occurs, we can develop some recovery examples.

Thanks,

Eric

Hi @JayLeone ,

As Eric mentioned, it highly depends on the scenario on whether you can make it back to the source to dispense.

This being said, you can set up custom Abort Handlers that will take place before the standard OnAbort. For specific transfers you can set up custom handling using the “RegisterAbortHandler” and making the return value task local/global so that it can be passed into the registered abort handler. See example below:

Below is the submethod logic:

Here is the logic triggering when the “error” occurs after aspiration:

2025-07-31 17:34:00.940 Microlab STAR : 1000ul Channel Tip Pick Up (Single Step) - start;
2025-07-31 17:34:01.229 Microlab STAR : 1000ul Channel Tip Pick Up (Single Step) - complete;  > channel 1: ST_L_0001, 1 > channel 2: ST_L_0001, 2 > channel 3: ST_L_0001, 3 > channel 4: ST_L_0001, 4
2025-07-31 17:34:01.248 Microlab STAR : 1000ul Channel Aspirate (Single Step) - start;
2025-07-31 17:34:01.404 Microlab STAR : 1000ul Channel Aspirate (Single Step) - complete;  > channel 1: SMP_CAR_24_15x75_A00_0001, 1, 100 uL > channel 2: SMP_CAR_24_15x75_A00_0001, 2, 100 uL > channel 3: SMP_CAR_24_15x75_A00_0001, 3, 100 uL > channel 4: SMP_CAR_24_15x75_A00_0001, 4, 100 uL
2025-07-31 17:34:01.405 SYSTEM : Execute method - error; An error occurred while running Vector.  The error description is: ERROR! (0x0 - 0x0 - 0x65) , 
2025-07-31 17:34:01.405 SYSTEM : Method has been aborted by the system - complete; 
2025-07-31 17:34:01.405 SYSTEM : Abort method - start; 
2025-07-31 17:34:01.419 Microlab STAR : Abort requested command - start;
2025-07-31 17:34:01.420 Microlab STAR : Abort requested command - complete;
2025-07-31 17:34:01.420 Microlab STAR : Start Method Abort Handler command - start;
2025-07-31 17:34:01.429 Microlab STAR : Clean up instrument - progress; Move up 1000ul channels
2025-07-31 17:34:01.432 Microlab STAR : Clean up instrument - progress; Move up CO-RE 96 Head
2025-07-31 17:34:01.435 Microlab STAR : Clean up instrument - progress; Move down auto load Y drive
2025-07-31 17:34:01.449 Microlab STAR : Start Method Abort Handler command - complete;
2025-07-31 17:34:01.450 USER : Trace - complete; Asp Return Value:  0[01,00,00,0,100.0,SMP_CAR_24_15x75_A00_0001,1[02,00,00,0,100.0,SMP_CAR_24_15x75_A00_0001,2[03,00,00,0,100.0,SMP_CAR_24_15x75_A00_0001,3[04,00,00,0,100.0,SMP_CAR_24_15x75_A00_0001,4[05,00,00,0,,,[06,00,00,0,,,[07,00,00,0,,,[08,00,00,0,,,
2025-07-31 17:34:01.463 TRACELEVEL : Trace_02 - complete; ===========================================================================
2025-07-31 17:34:01.464 TRACELEVEL : Trace_02 - complete; QUERY_GetTipPresentState - START
2025-07-31 17:34:01.464 TRACELEVEL : Trace_02 - complete; 
2025-07-31 17:34:01.507 Microlab STAR : Firmware Command (Single Step) - start;
2025-07-31 17:34:01.513 Microlab STAR : Firmware Command (Single Step) - complete;  > RU: er00/00ru01000 12250 01400 13375
2025-07-31 17:34:01.759 LiquidClassLibrary : SetTracelevel - start; 
2025-07-31 17:34:01.760 Tracelevel : Trace_02 - complete; Library Version: 1.2.0
2025-07-31 17:34:01.760 USER : Trace - complete; Trace level set to Tracelevel_None
2025-07-31 17:34:01.876 Microlab STAR : Firmware Command (Single Step) - start;
2025-07-31 17:34:01.879 Microlab STAR : Firmware Command (Single Step) - complete;  > RA: er01/00
2025-07-31 17:34:01.917 Microlab STAR : Firmware Command (Single Step) - start;
2025-07-31 17:34:01.920 Microlab STAR : Firmware Command (Single Step) - complete;  > RA: er01/00
2025-07-31 17:34:01.953 Microlab STAR : Firmware Command (Single Step) - start;
2025-07-31 17:34:01.955 Microlab STAR : Firmware Command (Single Step) - complete;  > RA: er01/00
2025-07-31 17:34:01.985 TRACELEVEL : Trace_02 - complete; 
2025-07-31 17:34:01.985 TRACELEVEL : Trace_02 - complete; QUERY_GetTipPresentState - FINISH
2025-07-31 17:34:01.986 TRACELEVEL : Trace_02 - complete; ===========================================================================
2025-07-31 17:34:01.987 TRACELEVEL : Trace_02 - complete; ===========================================================================
2025-07-31 17:34:01.988 TRACELEVEL : Trace_02 - complete; QUERY_GetTipVolume - START
2025-07-31 17:34:01.988 TRACELEVEL : Trace_02 - complete; 
2025-07-31 17:34:01.991 TRACELEVEL : Trace_02 - complete; 
2025-07-31 17:34:01.991 TRACELEVEL : Trace_02 - complete; QUERY_GetTipVolume - FINISH
2025-07-31 17:34:01.992 TRACELEVEL : Trace_02 - complete; ===========================================================================
2025-07-31 17:34:02.000 TRACELEVEL : Trace_02 - complete; ===========================================================================
2025-07-31 17:34:02.000 TRACELEVEL : Trace_02 - complete; QUERY_GetTipPresentState - START
2025-07-31 17:34:02.000 TRACELEVEL : Trace_02 - complete; 
2025-07-31 17:34:02.004 TRACELEVEL : Trace_02 - complete; 
2025-07-31 17:34:02.004 TRACELEVEL : Trace_02 - complete; QUERY_GetTipPresentState - FINISH
2025-07-31 17:34:02.004 TRACELEVEL : Trace_02 - complete; ===========================================================================
2025-07-31 17:34:02.006 TRACELEVEL : Trace_02 - complete; ===========================================================================
2025-07-31 17:34:02.006 TRACELEVEL : Trace_02 - complete; QUERY_GetTipVolume - START
2025-07-31 17:34:02.006 TRACELEVEL : Trace_02 - complete; 
2025-07-31 17:34:02.009 TRACELEVEL : Trace_02 - complete; 
2025-07-31 17:34:02.009 TRACELEVEL : Trace_02 - complete; QUERY_GetTipVolume - FINISH
2025-07-31 17:34:02.010 TRACELEVEL : Trace_02 - complete; ===========================================================================
2025-07-31 17:34:02.019 TRACELEVEL : Trace_02 - complete; ===========================================================================
2025-07-31 17:34:02.020 TRACELEVEL : Trace_02 - complete; QUERY_GetTipPresentState - START
2025-07-31 17:34:02.020 TRACELEVEL : Trace_02 - complete; 
2025-07-31 17:34:02.024 TRACELEVEL : Trace_02 - complete; 
2025-07-31 17:34:02.024 TRACELEVEL : Trace_02 - complete; QUERY_GetTipPresentState - FINISH
2025-07-31 17:34:02.024 TRACELEVEL : Trace_02 - complete; ===========================================================================
2025-07-31 17:34:02.026 TRACELEVEL : Trace_02 - complete; ===========================================================================
2025-07-31 17:34:02.026 TRACELEVEL : Trace_02 - complete; QUERY_GetTipVolume - START
2025-07-31 17:34:02.026 TRACELEVEL : Trace_02 - complete; 
2025-07-31 17:34:02.030 TRACELEVEL : Trace_02 - complete; 
2025-07-31 17:34:02.030 TRACELEVEL : Trace_02 - complete; QUERY_GetTipVolume - FINISH
2025-07-31 17:34:02.031 TRACELEVEL : Trace_02 - complete; ===========================================================================
2025-07-31 17:34:02.042 TRACELEVEL : Trace_02 - complete; ===========================================================================
2025-07-31 17:34:02.042 TRACELEVEL : Trace_02 - complete; QUERY_GetTipPresentState - START
2025-07-31 17:34:02.043 TRACELEVEL : Trace_02 - complete; 
2025-07-31 17:34:02.047 TRACELEVEL : Trace_02 - complete; 
2025-07-31 17:34:02.048 TRACELEVEL : Trace_02 - complete; QUERY_GetTipPresentState - FINISH
2025-07-31 17:34:02.048 TRACELEVEL : Trace_02 - complete; ===========================================================================
2025-07-31 17:34:02.050 TRACELEVEL : Trace_02 - complete; ===========================================================================
2025-07-31 17:34:02.050 TRACELEVEL : Trace_02 - complete; QUERY_GetTipVolume - START
2025-07-31 17:34:02.050 TRACELEVEL : Trace_02 - complete; 
2025-07-31 17:34:02.054 TRACELEVEL : Trace_02 - complete; 
2025-07-31 17:34:02.054 TRACELEVEL : Trace_02 - complete; QUERY_GetTipVolume - FINISH
2025-07-31 17:34:02.055 TRACELEVEL : Trace_02 - complete; ===========================================================================
2025-07-31 17:34:02.112 TRACELEVEL : Trace_04 - complete; Dispense Back Pattern:  "11110000"
2025-07-31 17:34:02.114 TRACELEVEL : TraceSequence - start;    ----------------------------------------------------
2025-07-31 17:34:02.114 TRACELEVEL : TraceSequence - progress; Name:    l_seqReturn
2025-07-31 17:34:02.114 TRACELEVEL : TraceSequence - progress; Current: 1
2025-07-31 17:34:02.114 TRACELEVEL : TraceSequence - progress; Count:   8
2025-07-31 17:34:02.114 TRACELEVEL : TraceSequence - progress; Total:   8
2025-07-31 17:34:02.114 TRACELEVEL : TraceSequence - progress; Max:     8
2025-07-31 17:34:02.114 TRACELEVEL : TraceSequence - progress; Used:    0
2025-07-31 17:34:02.114 TRACELEVEL : TraceSequence - progress; LabwareID: SMP_CAR_24_15x75_A00_0001, PositionID : 1
2025-07-31 17:34:02.114 TRACELEVEL : TraceSequence - progress; LabwareID: SMP_CAR_24_15x75_A00_0001, PositionID : 2
2025-07-31 17:34:02.114 TRACELEVEL : TraceSequence - progress; LabwareID: SMP_CAR_24_15x75_A00_0001, PositionID : 3
2025-07-31 17:34:02.114 TRACELEVEL : TraceSequence - progress; LabwareID: SMP_CAR_24_15x75_A00_0001, PositionID : 4
2025-07-31 17:34:02.115 TRACELEVEL : TraceSequence - progress; LabwareID: , PositionID : 
2025-07-31 17:34:02.115 TRACELEVEL : TraceSequence - progress; LabwareID: , PositionID : 
2025-07-31 17:34:02.115 TRACELEVEL : TraceSequence - progress; LabwareID: , PositionID : 
2025-07-31 17:34:02.115 TRACELEVEL : TraceSequence - progress; LabwareID: , PositionID : 
2025-07-31 17:34:02.116 TRACELEVEL : TraceSequence - complete; ----------------------------------------------------
2025-07-31 17:34:02.133 Microlab STAR : 1000ul Channel Dispense (Single Step) - start;
2025-07-31 17:34:02.162 Microlab STAR : 1000ul Channel Dispense (Single Step) - complete;  > channel 1: SMP_CAR_24_15x75_A00_0001, 1, 0 uL > channel 2: SMP_CAR_24_15x75_A00_0001, 2, 0 uL > channel 3: SMP_CAR_24_15x75_A00_0001, 3, 0 uL > channel 4: SMP_CAR_24_15x75_A00_0001, 4, 0 uL
2025-07-31 17:34:02.173 Microlab STAR : 1000ul Channel Tip Eject (Single Step) - start;
2025-07-31 17:34:02.228 Microlab STAR : 1000ul Channel Tip Eject (Single Step) - complete;  > channel 1: Waste,  > channel 2: Waste,  > channel 3: Waste,  > channel 4: Waste,  > channel 5: Waste,  > channel 6: Waste,  > channel 7: Waste,  > channel 8: Waste, 
2025-07-31 17:34:02.228 Microlab STAR : Abort command - start;
2025-07-31 17:34:02.234 Microlab STAR : Abort command - complete;
2025-07-31 17:34:02.345 SYSTEM : Abort method - complete; 
2025-07-31 17:34:02.345 SYSTEM : Execute method - complete with error; 
2025-07-31 17:34:02.349 SYSTEM : End method - start; 
2025-07-31 17:34:02.506 Microlab STAR : End method command - start;
2025-07-31 17:34:02.531 Microlab STAR : Clean up instrument - progress; Move up 1000ul channels
2025-07-31 17:34:02.533 Microlab STAR : Clean up instrument - progress; Move up CO-RE 96 Head
2025-07-31 17:34:02.537 Microlab STAR : Clean up instrument - progress; Move down auto load Y drive
2025-07-31 17:34:02.539 Microlab STAR : Clean up instrument - progress; Spreading channels
2025-07-31 17:34:02.542 Microlab STAR : Clean up instrument - progress; Switch off loading lights
2025-07-31 17:34:02.562 Microlab STAR : End method command - complete;
2025-07-31 17:34:02.612 SYSTEM : End method - complete; 
2 Likes