High-voltage switching board

The High-voltage switching board controls the on/off state of the DMF electrodes. Each board controls 40-channels and multiple boards can be daisy-chained together to create a DropBot system with >120 channels. These boards communicate with the Control Board over the Communication Bus Ribbon Cable.

http://microfluidics.utoronto.ca/dropbot/media/hv_switching_board/small/HV_Switching_Board_v2.1(front).jpg http://microfluidics.utoronto.ca/dropbot/media/hv_switching_board/small/HV_Switching_Board_v2.1(back).jpg


Unlike the previous switching board designs, version 2.1 boards each have their own 8-bit microcontroller chip (an ATMega328P, which makes them Arduino compatible). This microcontroller chip replaces the previously used GPIO chips (which were tiny and difficult to solder). This new configuration is also slightly cheaper and provides opportunities to add new functionality through firmware updates. You can download the latest version of the firmware here.


  1. If you have not previously burned a bootloader to the ATMega328P chip, follow these instructions.
  2. To flash the firmware using the Arduino IDE, the firmware package needs to be extracted to a folder called "hv_switching_board" (the folder has to have the same name as the "*.ino" sketch file contained within it).
  3. Connect the HighVoltageSwitchingBoard to your computer using the FTDI cable making sure that you have the header in the right orientation (see photo below):

  1. If the HighVoltageSwitchingBoard is being powered by the DropBot's power supply (i.e., if you're updating the firmware in an assembled system and it is being powered over the communication bus ribbon cable), make sure that "USB_POWER" jumper is removed. If the board is not being powered (i.e., the power LED is off), you will need to connect the "USB_POWER" jumper to supply power from the FTDI cable.
  2. Open the sketch file ("hv_switching_board.ino") in the Arduino IDE (either 1.0.x or 1.5.x versions should work).
  3. Choose the port corresponding to the HighVoltageSwitchingBoard in the "Tools/Port" menu and select "Arduino Uno" from the "Tools/Board" menu. 7. Press the "Upload" button to compile and upload the firmware to the board.


You can download the KiCAD designs for the High-voltage switching board here.


The HighVoltageSwitchingBoard has 3 jumpers:

  1. The "USB_POWER" jumper powers the board from the +5V line of the FTDI programming headers. This should only be connected if the communication bus ribbon cable is disconnected or if the DropBot power supply is off.
  2. The "VCC-5V" jumper powers the board from the VCC line of the CommunicationBusRibbonCable. This makes it possible to power a single board without connecting the molex power connector (which provides power from the PSU). Note that this jumper should not be connected in the standard 120-channel system.
  3. The "ISP RESET" jumper will make it possible to reflash/update the microcontroller firmware over the CommunicationBusRibbonCable. This is not currently supported in firmware, so this jumper should remain in the open position.

Setting the board address

Because multiple switching boards can be daisy-chained together, each one must have a unique address. Previous versions of the board used mechanical dip switches to set the address, whereas for version 2.1, the address is stored in the microcontroller's EEPROM memory. To change the address of a board, connect an FTDI cable to the switching board and open a serial terminal in the Arduino IDE (make sure you choose the correct COM port and set the baud rate to 115,200). If you press the reset button on the switching board, you should see a debug message:

To change the i2c address of a board, type the command: set_i2c_address(x) , where x is the desired address, and press ENTER or click on the "Send" button. The default 120-channel setup uses addresses 32, 33, and 34 for channels 0-39, 40-79, and 80-119 respectively. You can choose any sequential addresses, but if you use an address other than these defaults, you will need to update control board configuration settings. With Microdrop open and connected, open the menu item "Tools/DMF control board/Edit configuration settings" and edit the "switching_board_i2c_address" parameter.

Test channels


When installing a new switching board (or if you suspect a problem with an existing board), Microdrop provides an automated Test channels diagnostic method. Basically, you connect a TestBoard to the switching board that you wish to test along with the BNC-to-alligator clip "feedback" cable. The system will apply a 10 V signal to each relay on the board in sequence while measuring the corresponding capacitance (using a low voltage helps to prevent catastrophic damage in the case of a short circuit). By examining the ratio of the measured-to-expected capacitance, you can quickly identify any switches that are not operating as expected.


  1. Launch the Microdrop application (make sure that the amplifier is off before you launch Microdrop, otherwise you may cause damage to the system).
  2. Select the menu item Tools/DMF control board/Test channels....


  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 the switching board you wish to test to the TestBoard.
    4. Clip the red alligator clip on the feedback cable to the TestBoard's ground pad.

http://microfluidics.utoronto.ca/dropbot/media/test_channels/images/2-connect hardware.jpg

  1. Select the channels corresponding to the switching board you wish to test.

http://microfluidics.utoronto.ca/dropbot/media/test_channels/images/3-select switching board.jpg

  1. The system will perform a measurement for each relay switch on the board. This should take < 1 min.

http://microfluidics.utoronto.ca/dropbot/media/test_channels/images/4-record measurements.jpg

  1. Verify that the Cmeasured/Cexpected ratio looks reasonable for all of the switches. Ideally, it should be exactly 1, but anywhere between ~0.5-1.5 is probably ok. Part of the reason that there is a large variation in this parameter is that we are using a low voltage to reduce the risk of damaging the system in the case of a short circuit. If things look ok, click Apply and the results will be appended to a log file in your Microdrop/calibrations directory. The following images show some typical results for a functional switching board.

http://microfluidics.utoronto.ca/dropbot/media/test_channels/images/5-view results.jpg


If your test results do not look similar to the ones above, there may be something wrong with your board or with one or more of the relay switches. Below is a image gallery showing some results in which a problem was later identified; hopefully, they can help to isolate the cause. If you find new examples of faults that you'd like to share, please send them to the dev list.

If you can narrow the problem down to a few "suspect" channels, here is a method for probing the switches to isolate the problem. If the inputs to the switch look ok, try removing the switch with a hot-air rework station.

Last modified 4 years ago Last modified on 02/23/16 22:06:37

Attachments (2)

Download all attachments as: .zip