Skip to content

MicroDrop v1.0 software architecture

Ryan Fobel edited this page Jan 5, 2017 · 2 revisions

Table of Contents generated with DocToc

See also: MicroDrop v2.0 software architecture

Key characteristics:

  • All code written in Python (version 2.7).
  • Single process executing GTK 2.0 main run loop.
  • All functionality added to main run loop through plugins.
    • Core plugins are included in microdrop package.
    • User plugins may optionally be installed to, for example, control hardware.
  • Each plugin:
    • is implemented as a Python class
    • optionally implements one or more callback methods corresponding to signals that may be emitted by any plugin
    • optionally specifies a set of application fields to persist across application launches (e.g., application window width and height).
    • optionally specifies a set of step fields to save for each step in a protocol (e.g., actuation voltage and frequency).
  • Note: All plugin callbacks are executed within the main run loop process.

TODO Add description (or link to description) to each core plugin; e.g., implemented methods

Core plugins

The following core plugins are included as part of the microdrop>=1.0,<2.0 Python package:

Featured plugin: dmf_control_board

While the core DmfDeviceController plugin keeps track of which electrode actuation channels are on/off during each protocol step, none of the core plugins interface with actuation control hardware.

The dmf_control_board plugin controls actuation parameters for the DropBot open-source Digital Microfluidic (DMF) control system (described in detail in "Fobel et al., Appl. Phys. Lett. 102, 193513 (2013); doi: 10.1063/1.4807118").

While not included as a core plugin in the microdrop>=1.0,<2.0 Python package, the dmf_control_board plugin may be installed using MicroDrop GUI.