Skip to content

Sonicator

Description

Represents a Qsonica Sonicator tool integrated with the Jubilee system. Controls ultrasonic sonication operations through either a Raspberry Pi Pico (via serial) or a Raspberry Pi Hat (via GPIO + DAC).

Supports precision-controlled sonication at specified power levels, duty cycles, and pulse intervals, including well-based targeting and cleaning protocols.

Constructor

python
Sonicator(index, name, mode, port=None)
ParameterTypeDescription
indexintTool index for the sonicator.
namestrTool name.
modestr'Pico' or 'Hat' depending on control hardware.
portstr, optionalRequired for 'Pico' mode: serial port path to connect to microcontroller.

Assertion: mode must be 'Pico' or 'Hat'. Assertion: port must be specified if using 'Pico'.

Key Properties

PropertyTypeDescription
interface_modestrHardware mode for sonicator control ('Pico' or 'Hat').
serial_interfaceSerialSerial interface for Pico communication (if applicable).
plunge_depthfloatLast used plunge depth into well.
cleaningdictCleaning protocol settings.

Important Methods

MethodReturnsDescription
_raspberrypi_hat()NoneInitializes DAC and GPIO for Raspberry Pi Hat control.
_raspberrypi_pico(port)NoneSets up serial connection to Pico microcontroller.
_set_sonication_power(power)NoneSet sonication power level (0.4–1.0).
_sonication_on()NoneStart sonication.
_sonication_off()NoneStop sonication.
_sonicate(exposure_time, power, pulse_duty_cycle, pulse_interval, verbose)NoneExecute a complete sonication sequence.
sonicate_well(location, plunge_depth, sonication_time, ...)NoneSonicate a specific well at controlled depth and timing.
set_cleaning_protocol(wells, power, time, plunge_depth=None)NoneDefine a reusable cleaning sequence.
perform_cleanining_protocol(plunge_depth=None)NoneRun the defined cleaning sequence across multiple wells.

Method Details

Set Sonication Power

python
_set_sonication_power(power)

Set the sonication amplitude. Valid range: 0.4 (minimum effective) to 1.0 (maximum).

Perform Sonication

python
_sonicate(exposure_time, power, pulse_duty_cycle, pulse_interval, verbose)

Perform sonication with defined exposure time, pulse frequency, and power level. Handles both continuous and pulsed sonication modes.

Sonicate a Specific Well

python
sonicate_well(location, plunge_depth, sonication_time, ...)

Move to a target well and sonicate at a controlled depth for a specified time.

  • Checks if plunge depth is valid.
  • Supports autocleaning after sonication.

Set Cleaning Protocol

python
set_cleaning_protocol(wells, power, time, plunge_depth=None)

Define a sequence of cleaning sonications across multiple wells.

Perform Cleaning Protocol

python
perform_cleanining_protocol(plunge_depth=None)

Automatically sonicate across specified wells following the cleaning protocol.

  • If plunge_depth is not specified at call time, uses the preset depth.

Usage Flow Example

python
# Initialize Sonicator with Pico connection
sonicator = Sonicator(index=1, name="qsonica_tool", mode="Pico", port="/dev/ttyUSB0")

# Sonicate a well at 10 mm depth for 5 seconds
sonicator.sonicate_well(my_target_well, plunge_depth=10, sonication_time=5.0)

# Set a cleaning protocol
sonicator.set_cleaning_protocol(
    wells=[well1, well2],
    power=[0.5, 0.6],
    time=[5, 7],
    plunge_depth=10
)

# Run the cleaning sequence
sonicator.perform_cleanining_protocol()

Important Notes

  • Minimum effective power: 0.4. Below this, the sonicator will not engage.
  • Always validate that the plunge depth is appropriate for the target labware.
  • Communication latency may occur with serial-controlled sonicators (Pico mode); small wait times are built-in.
  • Autocleaning protocols are strongly recommended after heavy sonication use to prevent contamination.

Pre-release documentation · Internal research use only · Not authorized for redistribution.