Control Board

The control board is a shield for an Arduino Mega 2560. It is responsible for:

To improve the accuracy of impedance/capacitance measurements, we recommend installing an AntiAliasingFilterShield.


The control board software consists of 2 components:

  • Arduino firmware
  • C++ software that runs on a computer (accessible through a Python API) for communicating with the Arduino

In addition, there is a plugin which provides an interface to the ControlBoard for the Microdrop application. You can install the latest version of the plugin within Microdrop by selecting the menu item File/Manage plugins. Click on the Download plugin... button and choose it from the list. This will automatically trigger installation of the appropriate firmware (see what's new in the latest version).


You can download the KiCAD designs for the control board here.


The control board has 9 jumpers which allow it to be operate in different system configurations (e.g., no power supply, Arduino Due as a replacement for the Arduino Mega 2560). By default (i.e., using a power supply and Arduino Mega 2560), you should set the jumpers to match the image above. Details for each of the jumpers are given below.

Jumpers JP1 and JP2 set the power source for the +5V and the +3.3V power that is supplied over the power bus (e.g., to the SignalGeneratorBoard). These voltages can be connected to either the Arduino's voltage regulators or the DropBot's power supply. In most cases, these jumpers should be set to supply voltages from the PSU, but it is possible to make a minimal system that doesn't require a power supply.

Jumpers JP3-JP9 set the voltage level on the communication bus (VCC, i2c, and SPI). By default, these signals operate at +5V; however, these jumpers make it possible to use the Arduino Due (which operates at +3.3V) in place of the Arduino Mega 2560.


In order to compile the C++ code, it is recommended that you first setup the Microdrop development environment as described here. In addition, you will also need to install some dependencies by following the instructions for Windows or Linux.

Getting the source code

All of the development files are tracked in a git repository. Assuming that you have git installed on your computer, you can download the latest version of the source code by going to a command line and typing the command:

    git clone --recursive

Assuming that everything is setup correctly, you should be able to build the software by running the command scons.

Calibrate high-voltage reference load


The ControlBoard implements closed-loop control of the electrode actuation voltage. This is achieved by measuring the voltage output by the amplifier, and using the measured value to dynamically adjust the low-voltage output of the SignalGeneratorBoard until the desired high-voltage output is reached.

To measure the high-voltage signal from the amplifier, the ControlBoard includes attenuation circuitry to reduce the high-voltage signal to a level that is within the input range of the ADC of the Arduino (0-5 V). The attenuation circuit includes a bank of several reference resistors, where a particular resistor is selected based on (1) the amplitude, and (2) the frequency, of the high-voltage signal. The higher the output-voltage of the amplifier, the lower the required resistor impedance necessary to attenuate the high-voltage signal to within the range of the ADC. While a sufficiently small resistor could be used to attenuate any high-voltage signal, selecting the largest reference resistor that does not saturate the ADC maximizes the signal-to-noise ratio.

Between DropBot builds, there are several components that may cause slight variations in system characteristics. In the case of the high-voltage attenuation circuitry on the control board, the most significant sources of variation are the reference resistor values and the associated parasitic capacitance of each resistor. To compensate for these variations, it is necessary to calibrate the ControlBoard to match the actual resistance and parasitic capacitance values of the attenuation circuitry.


  1. Launch the Microdrop application.
  2. (optional) If this is not the first time calibrating the DropBot, you may want to reset the calibration values to ensure appropriate initial conditions for the fitting process used during calibration. To reset the calibration to defaults, select the menu item Tools/DMF control board/Configuration/Reset to default values.
  3. Select the menu item Tools/DMF control board/Calibration/Calibrate reference load.

  1. Connect an oscilloscope to the output of the amplifier following the wizard's instructions. hardware.jpg

  1. Select the calibration frequencies (or accept the defaults). frequencies.jpg

  1. Follow the prompts of the calibration wizard, entering the AC RMS voltage measured by the oscilloscope at each step. measurements.jpg

  1. Verify that the calibration fits look reasonable. If so, click Apply. results.jpg

  1. (optional) Now that you've calibrated the reference load, you may wish to enable auto-amplifier-gain adjustment. From the menu, select Tools/DMF control board/Configuration/Edit settings, and click on the Auto_adjust_amplifier_gain check box.

Calibrate device load


The device load circuit measures the impedance between all actuated electrodes and the top plate. These measurements are used to estimate the location of drops on the devices and to determine their velocity. Impedance is inversely proportional to the volume of liquid between the actuated electrodes and the top plate.


  1. Launch the Microdrop application.
  2. (optional) Install the AntiAliasingFilterShield and verify that it is enabled.
  3. Select the menu item Tools/DMF control board/Calibration/Calibrate device load.

  1. Connect the TestBoard to the DropBot following the wizard's instructions, i.e.,
    1. Connect the DropBot Out to Amp to the amplifier input.
    2. Connect the amplifier output to DropBot In from Amp.
    3. Connect the HV signal cable for DropBot channels 0-39 to the TestBoard.
    4. Clip the red alligator clip on the feedback cable to the TestBoard's ground pad. hardware.jpg

  1. Select the calibration frequencies (or accept the defaults). frequencies.jpg

  1. The system will perform a series of measurements across a range of frequencies and capacitance values. This can take several minutes. measurements.jpg

  1. Verify that the RMSE, CV and bias look reasonable. If so, click Apply. The following images show some typical results with and without the AntiAliasingFilterShield, respectively. results.jpg results (filter off).jpg

Last modified 14 months ago Last modified on 01/20/16 18:53:25

Attachments (1)

Download all attachments as: .zip