Mar 15, 2024

Public workspaceBuilding a phenotype-o-mat: A low-cost DIY plate reader for high-throughput phenotype measurements

  • 1Arcadia Science
  • Ben Braverman: This device was made by biologists, not electrical engineers. If anything is unclear please let us know!
Open access
Protocol CitationBen Braverman 2024. Building a phenotype-o-mat: A low-cost DIY plate reader for high-throughput phenotype measurements. protocols.io https://dx.doi.org/10.17504/protocols.io.yxmvm3r3ol3p/v1
Manuscript citation:
Braverman B, Mets DG, York R. (2024). The phenotype-o-mat: A flexible tool for collecting visual phenotypes.
License: This is an open access protocol distributed under the terms of the Creative Commons Attribution License,  which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited
Protocol status: Working
We use this protocol and it's working
Created: February 13, 2024
Last Modified: March 15, 2024
Protocol Integer ID: 95184
Keywords: diy, phenotype, measurement, plate reader, imaging, imager, phenotype-o-mat, low-cost, cheap, assemble, assembly, high-throughput, high throughput, cell biology, cell bio, organism, 96-well, single-cell, bulk
Abstract

The phenotype-o-mat with labeled parts and approximate costs

We've developed a DIY, low-cost, 96-well plate imager called the phenotype-o-mat. This protocol outlines the steps to assemble it yourself. We cover:
1) 3D-printing components
2) Adding threaded inserts
3) Soldering LEDs
4) Setting up the Arduino Nano Every
5) Connecting the BlackFly camera
6) Running an assay

While you can 3D-print a few of the components, the rest are commercially available. Check out the "Materials" tab to see what you'll need before beginning assembly. The necessary 3D-printing files and code are available in our phenotype-o-mat GitHub repo.

If you have any questions or suggestions about assembly, please feel free to reach out at ben.braverman@arcadiascience.com or comment on our forthcoming phenotype-o-mat pub at research.arcadiascience.com.
Image Attribution
Arcadia Science
Materials
LEDs

Camera

Hardware

Tools
Safety warnings
Attention
Use caution when working with a hot soldering iron
Overview
Overview
This protocol describes how to make a phenotype-o-mat in a step-by-step fashion. We've also included an overview figure below as an additional guide. It could be useful to print out as a reference as you work.

Assembling a phenotype-o-mat



3D-printing components
3D-printing components
The phenotype-o-mat has the following 3D-printed components:
  • Plate-holder base
  • Camera arm
  • Camera mount
  • Circular filter slider
  • LED ring and diffuser mount clip
  • LED diffuser ring
  • Arduino Nano Every case (credit: leondl on Thingiverse)


Note
We used a Bambu Labs X1E 3D printer for the plate-holder base and a Prusa i3 MK3s for the rest of the pieces. The following steps outline how we printed these parts, but many different printing methods/slicers/materials would also work.

Plate-holder base

Place the model flat on the print bed and manually place supports under the LED slot. Print with PLA filament using a 15% grid infill.

Printing the plate-holder base (time-lapse)

Other attachments
You can print all other phenotype-o-mat attachments except the diffuser in black PLA using a 20% grid infill and auto-generated supports. You must print the diffuser using a clear filament.

The other phenotype-o-mat attachments on a 3D printer bed

Adding threaded inserts
Adding threaded inserts
The heat-set threaded inserts allow you to add threaded metal screws to both the plate-holder base and the camera arm.

A thumb screw attached to the plate-holder base

An example of adding a heat-set threaded insert to a 3D print (credit: orias on Lulzbot)

Place the 8 mm M3 threaded insert into the side hole on the plate-holder base, perpendicular to the surface. Heat a soldering iron to 200 °C and place it on the threaded insert. As the insert heats up, apply light pressure. Allow the insert to melt the plastic around it and push it into place. Make sure not to press the threaded insert too far, as it will obstruct the aluminum extrusion.

Add threaded inserts to the camera arm in the same way. Add 8 mm M3 inserts at the neck attachment point and 4 mm M3 brass inserts at the camera holder.

Adding a 4 mm M3 threaded insert to the camera holder

Once you've added the threaded insert, you can add an M3 thumb screw to fasten it to the aluminum extrusion.

Soldering LEDs
Soldering LEDs
The phenotype-o-mat uses transillumination LED panels to illuminate plates from below and a custom LED ring to illuminate plates with blue, green, yellow, and red LEDs. This section covers how to assemble the LED ring and LED panels. You'll need the following materials:
  • Soldering iron
  • Soldering iron helping hands
  • Solder wire
  • Three white LED backlight modules (Large, 45 mm × 86 mm)
  • Five super bright blue 5 mm LEDs
  • Five super bright red 5 mm LEDs
  • Five super bright yellow 5 mm LEDs
  • Five super bright green 5 mm LEDs
  • 18 100-ohm resistors (used for green, blue, and yellow LEDs)
  • Five 150-ohm resistors (used for red LEDs)

For an introduction to soldering resistors to LEDs, check out this video:

Soldering resistors to LEDs

Note
It’s important not to mix up the colors, so keep LEDs in their respective bags until working with them.

The green, blue, and yellow LEDs need 100-ohm resistors and the red LEDs need 150-ohm resistors.

  1. Snip the longer wire off the LED at the notch near the bulb.
  2. Cut one side of the resistor wire so it is about the same length as the nub of wire left on the LED.
  3. Using grippers, align the short end of the resistor with the short wire on the LED.
  4. Carefully solder these two together.
  5. Set the LED/resistor combo aside, making sure to keep note of the LED’s color.
  6. Test the LEDs with a breadboard to make sure they're working.

Lining up the resistor with LED before soldering

Testing the LED using a breadboard and an UNO R3 board

Soldering LEDs with resistors to the PCB ring

After all of the LEDs have a resistor, begin soldering them to the custom-printed circuit board (PCB ring) in the following positions:
ColorPositions
BlueD1–D5
GreenD6–D10
YellowD11–D15
RedD16–D20

A diagram of the PCB ring with LED positions labeled

  1. Hold the PCB ring in place with grippers.
  2. Place the LED into the appropriate PCB holes with the resistor side going through the circular hole and the other side going through the square hole. Make sure the PCB is oriented with the labels facing up. Get the resistor as close to the board as possible and try to make all the LEDs about the same height.
  3. Solder these wires to the PCB by carefully heating the metal pads next to the wire, being mindful not to melt the board or accidentally solder the wires together.
  4. Snip the excess wire off and continue soldering until all LEDs are attached.

Soldering an LED to the LED PCB ring

Soldering wires to the PCB

Once the LEDs with resistors are all attached to the PCB ring, wire the entire PCB to the Arduino Nano Every. Get two pieces of black wire and one piece each of white, green, blue, yellow, and red wire. Each piece needs to be about a third of a meter long.

  1. Remove about 2.5 cm of insulation from the ends of each wire using wire strippers.
  2. On the PCB, place the wires in the following positions and solder them carefully to the board. The arrow printed on the left indicates the "ground" position. Wrap the bundle of wires with heat shrink to keep them in place.

WirePosition
Black (ground)1 (arrow)
Green2
Blue3
Yellow4
Red5


Attaching the wires to the PCB ring


Soldering transillumination LED panels

Each LED panel requires a 100-ohm resistor. You can solder them to the wires of the LED panel in the same way as the other LEDs:
  1. Snip the longer wire (anode) off the LED at the notch near the panel.
  2. Cut one side of the resistor wire so it is about the same length as the nub of wire left on the LED.
  3. Using grippers, align the short end of the resistor with the short wire on the LED.
  4. Carefully solder these two together.
  5. Do this for all three LED panels.

Snipping the anode to place a resistor

Measuring how much wire to cut from the resistor before attaching it to the transillumination LED

Connecting transillumination LED panels in parallel

Using ~10 cm pieces of white wire, solder together each anode (now with resistors), and each cathode. Hold them in place using shrink wrap.

Schematic of the transillumination LEDs connected to the Arduino Nano Every


Transillumination LEDs wired together in parallel

Cut pieces of black wire and white wire about 0.3 meters long. Strip the ends of each. Solder the black wire to the cathode of the rightmost LED panel and solder the white wire to the anode of the same LED panel.

Setting up the Arduino
Setting up the Arduino
The phenotype-o-mat uses an Arduino Nano Every to control its LEDs. This section covers how to set up the Arduino Nano Every and how to connect it to the LEDs.

If you haven't already, install the Arduino IDE.
Loading the firmware

  1. Connect the Arduino Nano Every to your computer via USB.
  2. From our GitHub repo, download "arduino_control_through_serial.ino" and "serial_io.ino."
  3. Open both of these files in the Arduino IDE and upload them to your device.

Arduino IDE with the firmware scripts open


Connecting LEDs to the Arduino

Bundle the wires together with heat shrink to keep them in place. Solder the wires from the LEDs to the Arduino in the following positions:

Wire colorArduino position
GreenD9
RedD10
BlueD11
YellowD12
WhiteD13
Black GND
BlackGND

The Arduino Nano Every and its labeled positions

Place the Arduino Nano Every in the 3D-printed case and carefully feed the wires through. Connect the Arduino Nano Every to your computer via USB.

Arduino Nano Every wired together in its case

Installing Spinnaker SDK
Installing Spinnaker SDK
To use the FLIR BlackFly camera, you need to make a free account and download the Spinnaker Software Development Kit.

Note
We've only tested using Linux Ubuntu 22.04, specifically the "64-bit AMD" and "Python 3.10 for 64-bit AMD" downloads.


Screenshot of the Spinnaker SDK website



Attaching hardware and 3D-printed components
Attaching hardware and 3D-printed components
Add the aluminum extrusion to the base

Now that your LEDs are wired together, you can assemble the phenotype-o-mat. Start by inserting the aluminum extrusion and fastening it to the plate-holder base with M3 thumbscrews.

Attaching the aluminum extrusion to the plate-holder base

Attaching the transillumination LEDs to the plate-holder base

Carefully insert the LED panels face up, making sure not to scrape them on the edge on the way in.

Note
You can tape LEDs together from the bottom with lab tape to keep them together as a unit.


Sliding the transillumination LEDs into the plate-holder base


Attaching the camera arm

  1. Slide the safety stop into place about 1/4 of the way from the base of the aluminum extrusion. Fasten it in place with the thumb screws.
  2. Slide the camera arm into place and fasten it to the aluminum extrusion. You'll adjust it to the exact height once you attach the camera.

Attaching both the safety stop and the camera arm

Attaching the wired PCB ring and diffuser with the mount clip

  1. Separate the mount clip and snap it in place on the microscope stand.
  2. Feed the PCB ring (now wired with LEDs) into the upper clip slot from the bottom, making sure there's room for the connected wires.
  3. Feed the LED diffuser ring into the lower clip slot from the bottom.

Attaching the LED ring and diffuser mount clip to the camera arm

Attaching the LED ring and diffuser to the mount clip — it's helpful to hold them together, open the clip up, and secure both pieces into their respective slots at the same time

Note
Consider adding a rubber band around the mount clip for extra security.

Attaching the camera mount and securing the camera

  1. Loosen the knobs on the camera holder and place the camera mount with the gap facing toward the neck of the stand.
  2. Make sure the camera is plugged into your computer via USB. Turn on the live view of the camera using the SpinView Software. Put a test plate on the base to note the camera's orientation and focus. Turn the camera so the USB cable is on the right or left side. This will give a "landscape" view of the plate. Adjust the height of the camera arm as needed.
  3. Once you have the right focus and orientation, tighten the screws around the camera hole to keep the BlackFly camera in place. Make sure there's enough loose wire above the camera to prevent tension from moving the camera out of position.

Note
Add a rubber band around the camera mount to provide extra security. Coil excess USB cable and zip-tie it to the neck as needed.


Attaching the camera mount to the camera arm and then attaching the camera to the mount

Attaching the filter slider

Insert the filter slider into the camera mount and use the visual indicators on the top to ensure the filter is directly underneath the camera lens.

Attaching the filter slider to the camera mount

Building a dark box

Using black duct tape and black corrugated plastic sheets, create a dark box to house the phenotype-o-mat while assays run. Create a door using either a blackout curtain or by folding corrugated plastic.

A phenotype-o-mat dark box made with duct tape

We've also designed 3D-printable brackets if you'd like to give your box more structure, but they only fit 4 mm thick pieces of corrugated plastic, and duct tape is still required to fill in the gaps. You can use a piece of blackout curtain and velcro to make a door and magnets to secure the curtain to the sides of the box.

A phenotype-o-mat dark box made with 3D-printed brackets

If you decide to print the dark box brackets, you'll need to print:
  • 2× bottom_back_mag_bracket.stl
  • 2× bottom_front_mag_bracket.stl
  • 2× top_back_brackets.stl
  • 1× top_left_bracket.stl
  • 1× top_right_bracket.stl

Running an assay
Running an assay
To run an assay on the phenotype-o-mat, clone our GitHub repo onto your computer, then run the script from your command line. Create a new directory to save the output files into.

To write your own assays, refer to the instructions posted in our GitHub.

An example of what running an assay from the command line looks like