Edit page History How do I edit this website?

Elveflow

Summary:

Adapter for Elveflow devices

Author:

Miles Chaillié

License:

BSD

Platforms:

Windows

Since version:

Nightly build 2025-01-31

Currently available devices:

Ob1 MK4, Mux Wire, Mux Distribution

Elveflow - Micro-Manager

Elveflow Microfluidic Devices

This document describes the configuration and operation of the OB1 MK4, MUX Wire, and MUX Distribution devices for Micro-Manager.

1️⃣ General UART Configuration and Communication Workflow

All devices communicate via UART with the following settings:

Parameter OB1 MK4 MUX Wire MUX Distribution
Baudrate 115200 115200 9600
Byte Size 8 8 8
Parity N N N
Stop Bits 1 1 1

If you want to communicate with the device without using an already implemented method :

  1. Command Header
    • Commands starts with this character <
  2. Command Type
    • Using the device’s UART documentation as a reference, select one of the 5 character long key words that corresponds to a specific command.
  3. Command Formatting
    • The command type is always accompanied by a following character, either ? (GET) or ! (SET) suffixes.
  4. Parameters
    • Some commands need parameters following the command formatting.
    • Written as :1:2:3:, each number corresponds to a parameter.
    • Refer to UART documentation delivered with your device.
  5. Sending Commands
    • Sent via UART with a newline (\n) termination.
  6. Receiving Responses
    • Reads serial input and updates the Response property.
    • The response should start with a >.

For example, you coud send the following command to an OB1 MK4 pressure controller : <PRESS!:0:100\n. It would change the pressure of the first channel to 100 mbar.


2️⃣ OB1 MK4 Pressure Controller

OB1 MK4

📝 Overview

The OB1 MK4 Pressure Controller by Elveflow is the most advanced pressure controller for microfluidics. It provides ultra-fast, high-precision pressure control, making it ideal for droplet generation, cell biology research, and other microfluidic applications.

✨ Key Features

  • Fast Response Time: Pressure is adjusted in milliseconds.
  • Multi-Channel Configuration: Up to four independent pressure channels.
  • Vacuum & Pressure Control: Supports positive and negative pressure.
  • Customizable: Various pressure ranges and modules available.

⚙️ Technical Specifications

Specification Details
Number of Pressure Channels Up to 4
Pressure Stability Depends on the pressure range of each selected channel. See table of specifications.
Max Pressure 8000 mbar (configurable)
Vacuum Support Yes
Flow Rate Stability Optimized for ultra-low flow rates

The OB1 MK4 can be configured with different pressure modules, depending on your needs:

Module Pressure Range
0-200 mbar 0 to 2.9 psi
0-2000 mbar 0 to 29 psi
0-8000 mbar 0 to 116 psi
-900 to 1000 mbar -13 to 14.5 psi
-900 to 6000 mbar -13 to 87 psi

🔄 Firmware Compatibility

Parameter Value
OLDEST_COMPATIBILITY 1.4.1

🔬 Applications

The OB1 MK4 is widely used in:

  • Microfluidic flow control
  • Droplet generation
  • Lab-on-a-chip experiments
  • Cell sorting and manipulation
  • Biomedical research

🔗 Associated Products

✔️ Advantages

  • Precise pressure and flow control
  • Ultra-fast response, ideal for droplet generation
  • Compatible with other Elveflow instruments

📌 Notes: For more details, visit 🌐Elveflow – Microfluidic Products.

🛠 Micro-Manager Properties

Property Description
IsGet Boolean to send a command in set or get mode
Command Key word defining the type of command
Parameters Parameter(s) set in the command
Response Stored response from the device after a command has been sent
RegulatorValue0 Pressure read by regulator of 1st channel
RegulatorValue1 Pressure read by regulator of 2nd channel
RegulatorValue2 Pressure read by regulator of 3rd channel
RegulatorValue3 Pressure read by regulator of 4th channel
SensorValue0 Sensor measurement on 1st channel
SensorValue1 Sensor measurement on 2nd channel
SensorValue2 Sensor measurement on 3rd channel
SensorValue3 Sensor measurement on 4th channel
PressureSetpoint0 Target pressure of regulator of 1st channel
PressureSetpoint1 Target pressure of regulator of 2nd channel
PressureSetpoint2 Target pressure of regulator of 3rd channel
PressureSetpoint3 Target pressure of regulator of 4th channel
TriggerIn Current value of input trigger (logical state 0-1)
TriggerOut Current value of output trigger (logical state 0-1)
TimerOn Flag to enable or disable timer looping on every value

🛠 Micro-Manager Available Method

Available method Trigger Description
OnIsGet IsGet (bool) Set next command sent to set or get
OnCommand Command (str) Construct and send UART cmd
OnPressureSetpoint0 PressureSetpoint0 (int) Set target pressure of 1st channel
OnPressureSetpoint1 PressureSetpoint1 (int) Set target pressure of 2nd channel
OnPressureSetpoint2 PressureSetpoint2 (int) Set target pressure of 3rd channel
OnPressureSetpoint3 PressureSetpoint3 (int) Set target pressure of 4th channel
OnTrigger TriggerOut (bool) Set value of output trigger
OnStart TimerOn (bool) Enable timer to start

🛠 Micro-Manager Script Example

// Get list of devices 
mmcorej.StrVector devices = mmc.getLoadedDevices();

// Display list
print("");
for (int i = 0; i < devices.size(); i++) {
    String device = devices.get(i);
    print("Device : " + device);
}

// Setup UART command
int is_get_cmd = 1; //"To set : 0 / To get : 1"
String device_name = "OB1_MK4";
String command = "<PINGA";
String parameters = ""; // "" if no parameter needed

// Send UART command
// -- First set IsGet and Parameters
mmc.setProperty(device_name, "IsGet", is_get_cmd);
mmc.setProperty(device_name, "Parameters", parameters);
// -- Then specify the command
mmc.setProperty(device_name, "Command", command); // It will send the completed UART command right after

// Display answer
String response = mmc.getProperty(device_name, "Response");
print("Device answer : " + response);

3️⃣ MUX Wire - Microfluidic Valve Control System

MUX Wire

📝 Overview

The Valve Controller by Elveflow is a high-speed microfluidic valve control system designed for precise and automated fluid control in microfluidic experiments. It enables fast switching between fluidic pathways, making it an essential tool for dynamic fluid regulation.

✨ Key Features

  • High-Speed Valve Switching: Optimized for rapid and precise fluid control.
  • Multiple Valve Control: Can operate multiple microfluidic valves simultaneously.
  • Software-Controlled Operation: Integrates with Elveflow Smart Interface and third-party software.
  • Compact & Modular Design: Easily integrates into microfluidic setups.

⚙️ Technical Specifications

Specification Details
Number of Valves 8
Valve Actuation Electrical (solenoid-based)
Control Options Software-controlled
Power Supply External power adapter

🔬 Applications

The Valve Controller is widely used in:

  • Microfluidic routing and sample injection
  • Lab-on-a-chip experiments
  • Droplet microfluidics
  • Automated fluidic assays

🔗 Associated Products

✔️ Advantages

  • Individual or simultaneous valve control
  • No cross-contamination due to low internal volume and no dead volume
  • Easy control via computer for automation
  • Works with advanced microfluidic setups

📌 Notes: For more details, visit 🌐Elveflow – Microfluidic Products.

🛠 Micro-Manager Properties

Property Description
IsGet Boolean to send a command in set or get mode
Command Key word defining the type of command
Parameters Parameter(s) set in the command
Response Stored response from the device after a command has been sent
Type0 Type of valve on 1st channel
Type1 Type of valve on 2nd channel
Type2 Type of valve on 3rd channel
Type3 Type of valve on 4th channel
Type4 Type of valve on 5th channel
Type5 Type of valve on 6th channel
Type6 Type of valve on 7th channel
Type7 Type of valve on 8th channel
Status0 Status of valve on 1st channel
Status1 Status of valve on 2nd channel
Status2 Status of valve on 3rd channel
Status3 Status of valve on 4th channel
Status4 Status of valve on 5th channel
Status5 Status of valve on 6th channel
Status6 Status of valve on 7th channel
Status7 Status of valve on 8th channel
Master0 Control mode of valve on 1st channel
Master1 Control mode of valve on 2nd channel
Master2 Control mode of valve on 3rd channel
Master3 Control mode of valve on 4th channel
Master4 Control mode of valve on 5th channel
Master5 Control mode of valve on 6th channel
Master6 Control mode of valve on 7th channel
Master7 Control mode of valve on 8th channel
TriggerIn Current value of input trigger (logical state 0-1)
TriggerOut Current value of output trigger (logical state 0-1)
TimerOn Flag to enable or disable timer looping on every value

📌 Notes: Master variabes provide information about the valve’s usage mode:

  • Master = 0 : valve state to 0, not activated and not blocked
  • Master = 1 : valve manually activated with push button
  • Master = 2 : valve activated with ESI

🛠 Micro-Manager Available Method

Available method Trigger Description
OnIsGet IsGet (bool) Set next command sent to set or get
OnCommand Command (str) Construct and send UART cmd
OnTrigger TriggerOut (bool) Set value of output trigger
OnStart TimerOn (bool) Enable timer to start

🛠 Micro-Manager Script Example

// Get list of devices 
mmcorej.StrVector devices = mmc.getLoadedDevices();

// Display list
print("");
for (int i = 0; i < devices.size(); i++) {
    String device = devices.get(i);
    print("Device : " + device);
}

// Setup UART command
int is_get_cmd = 1; //"To set : 0 / To get : 1"
String device_name = "MUX_WIRE";
String command = "<PING_";
String parameters = ""; // "" if no parameter needed

// Send UART command
// -- First set IsGet and Parameters
mmc.setProperty(device_name, "IsGet", is_get_cmd);
mmc.setProperty(device_name, "Parameters", parameters);
// -- Then specify the command
mmc.setProperty(device_name, "Command", command); // It will send the completed UART command right after

// Display answer
String response = mmc.getProperty(device_name, "Response");
print("Device answer : " + response);

4️⃣ MUX Distribution - Microfluidic Multiplexer

MUX Distribution

📝 Overview

The MUX Distribution by Elveflow is a microfluidic multiplexer that allows precise and automated fluid switching. It is used to distribute multiple fluids into a single outlet or direct a single fluid to multiple outlets, making it essential for automated microfluidic experiments.

✨ Key Features

  • Automated Fluid Distribution: Switching between multiple fluid sources.
  • High Precision & No Dead Volume: Designed for microfluidic applications.
  • Remote Control via Software: Compatible with Elveflow Smart Interface and third-party software.
  • Compatible with OB1 & Other Controllers: Works with the OB1 MK4 Pressure Controller and other fluidic devices.

⚙️ Technical Specifications

Specification Details
Number of Channels 13 (1 to 12)
Actuation Rotary Valve
Internal Volume 3.5 µL at minimal
Control Options Software-controlled
Power Supply External power adapter

🔬 Applications

The MUX Distribution is widely used in:

  • Automated fluid injections
  • Chemical and biological assays
  • Lab-on-a-chip experiments
  • Cell culture and drug testing
  • Sequential sample injections

🔗 Associated Products

✔️ Advantages

  • Can operate in both directions for maximum flexibility
  • Compatible with continuous or pulsed flow rates
  • Minimal internal volume and no dead volume

📌 Notes: For more details, visit 🌐Elveflow – Microfluidic Products.

🛠 Micro-Manager Properties

Property Description
Pos Store target position
Response Store response from the device after a command has been sent

🛠 Micro-Manager Available Method

Available method Trigger Description
GoToPos Direction (str) Construct and send UART cmd

🛠 Micro-Manager Script Example

// Get list of devices 
mmcorej.StrVector devices = mmc.getLoadedDevices();

// Display list
print("");
for (int i = 0; i < devices.size(); i++) {
    String device = devices.get(i);
    print("Device : " + device);
}

// Setup UART command
String device_name = "MUX_DISTRIB";
int target_pos = 10; //[1 to 12]

// Send UART command
mmc.setProperty(device_name, "Pos", target_pos); // It will trigger the function (GoToPos) to send completed UART command that move device to the target position using the shortest path

For more details, visit 🌐Elveflow – Microfluidic Products.