Close
0%
0%

Microplate Reader

A High School project

Public Chat
Similar projects worth following
Micro Plate Reader Build

Here, three high school students will report the full process of creating their own low-cost micro plate reader. 

JPEG Image - 136.28 kB - 12/25/2020 at 02:52

Preview
Download

JPEG Image - 3.61 MB - 11/21/2020 at 06:50

Preview
Download

  • Follow-up of the project

    steven zhang09/28/2021 at 12:36 0 comments

    We received financial support for our micro plate reader built project, and in order to test the ability for tardigrades in adapting extreme environments, we enhanced the function of our micro-plate reader to meet our goals. we modified the micro plate reader built based on the open source into an application-specific micro-plate reader that can simulate the atmospheric environment of Mars. The instrument enables us to test the stress resistance of Cyanobacteria in an environment to be as close as possible to the actual scene of Martian immigration. 

    Images below shows the final product of our augmented micro-plate reader. 

    on the top of the micro-plate reader, we added an incubation light that's suitable for Cyanobacteria growth, whenever we're testing the samples(the device is running), the light will be turned off automatically and turned back on when the reader is not running a program. 

    On each side of the device, we annexed two tubes for the instillation of nitrogen gas and the extraction of oxygen as we are creating a vacuum space for the samples. ( this is a big part of our project since there's no oxygen on the mars)

    Another major adjustment we made is the change of the micro-plate carrier, the new steel capsule allows the samples being protected from outer space as well as keeping it inside a vacuum space. 

  • Week 25

    steven zhang07/04/2021 at 06:47 0 comments

    Our focus of the day(week) is to fix minor mistakes in our code, which includes the Python program and Arduino program. The first major obstacle that came into our way is that the micro plate holder will incessantly bump the bumper without stoping and the second issue is that the position of the calibration point on the micro plate does not match the system's calibration coordinate. 

    Thin image shows our current progress with the Arduino code,

  • week 18-24

    steven zhang07/03/2021 at 04:06 0 comments

    (Sorry for the late update) In the past few weeks, we've been working on adjusting the LED light and to implement the calibration of our micro-plate reader. We made an aluminum layer to shelter from external light source and augment the intensity of light inside the optical instrument. After we successfully achieved it,  we moved our attention to the testing section( still working on it). 

    The image above documents the making process of the aluminum sheer, we used a double layer aluminum to conceal the inside and outside of optical instrument and attached both side to a double face adhesive tape.

    These two picture shows how our wires are connected, and each serves a specific function to the main board. 

  • Week 17

    steven zhang05/22/2021 at 10:05 0 comments

    We've been working on the LED light over the past few weeks and we finally made progress this time! 

    The LED light successfully turned bright after we tried multiple times. (In the first trial, the original ultra-violet light bulb  broke, In the second trial, we made a mistake in assembling the light. )

    In the process of Debugging, we learned that seemingly inconsequential things can lead to great failures, hence, we should always be careful in learning。               

    This image shows 2 types of LED with different light color. 

  • Week 16

    liugodric05/01/2021 at 07:07 0 comments

    We finished the manufacturing parts and moved to the programming section. The program to run the visual section of the spectrometer was developed by kpszym and mpatte on GitHub (https://github.com/brianchowlab/OSP). It is used to transfer the commend on the laptop to the spectrometer using python 2.7. We faced major challenges in restructuring the program because we are using a spectrometer of a different brand. Since we cannot reference the original library, we developed our own. After that, we run the code for the first time and start debugging. We had to use notepad++ to mass substitute predefined values in the original code. 

  • Week 15

    wwang03/13/2021 at 10:06 0 comments

    Today was one of those grand assemble days, and one of the last ones. I believe we used all the different machines provided to us in the lab today to create, mold, drill, and transform different parts and pieces of our microplate. 3D printing, hole drilling, laser cutting, and fitting screws were all the fun we had today. Since we have finally assembled our final microplate reader, and only need to make a few changes and adjustments here and there, the next step will be more coding based rather than mechanical based. This piecemeal we are creating and assembling step by step every week is really helping us to learn more about the science world, mainly mechanically, but later we expect to be also chemistry and biology related too!

  • Week 14

    liugodric03/06/2021 at 11:09 0 comments

    This week, we start to finish up the Optical assembly part of the microplate reader. While adding the LED to its stand, we designed a new way to fasten the belt to itself. After that, we managed to mount the optical part to the reader. 

  • Week 13

    steven zhang02/27/2021 at 09:28 0 comments

    This week is the first week after the Chinese new year break, we continued with the construction of the x/y axis of the plate reader. we redesigned the joint that connects the belt and reprinted the 3D model of the bumper. 

  • Week12 Day 3

    wwang01/23/2021 at 08:45 0 comments

    Today we mainly worked on fitting all the final versions of our models that we created, for instance, tightening our belts that control our X and Y axis again. Adding on, we continued working on our code that control the X and Y axis movements of the plate holder. For example, stopping when it hits the switch on the end of the track, and moving to the (0,0) position when activated. Along the way, we met quite a few difficulties such as short-circuiting, connecting the wrong wires with the Arduino board, and not finding the bugs in our codes. However, we were able to solve most of our issues in our code and looking forward to coding the LED lights next week!

    Our Code:

    // System Inialization Setup
    String protocolString = "";
    boolean protocolWait = false;
    String parsedString = "";
    int startIndex = 0;
    String totalString = "";
    String ledString = "";
    unsigned long Timecount1;
    unsigned long Durationcount1;
    unsigned long Time1;
    unsigned long Duration1;
    unsigned long Timecount2;
    unsigned long Durationcount2;
    unsigned long Time2;
    unsigned long Duration2;
    unsigned Direction1;
    unsigned Direction2;
    int DIRCount1 = 0;
    int DIRCount2 = 1;
    const int DIRPin1 = 2;
    const int STEPPin1 = 3;
    const int ENNPin1 = 8;
    const int DIRPin2 = 4;
    const int STEPPin2 = 7; 
    const int ES1 = 12;
    const int ES2 = 13;
    int STEPState1 = LOW;
    int DIRState1 = HIGH;
    int STEPState2 = LOW;
    int DIRState2 = HIGH;
    unsigned int XPosition;
    unsigned int YPosition;

    void initOutput() {
      //digitalWrite(ENNpin,HIGH);   // Disable motors
      //We are going to overwrite the Timer1 to use the stepper motors
      // STEPPER MOTORS INITIALIZATION
      // TIMER1 CTC MODE
      TCCR1B &= ~(1<<WGM13);
      TCCR1B |=  (1<<WGM12);
      TCCR1A &= ~(1<<WGM11); 
      TCCR1A &= ~(1<<WGM10);

      // output mode = 00 (disconnected)
      TCCR1A &= ~(3<<COM1A0); 
      TCCR1A &= ~(3<<COM1B0); 

      // Set the timer pre-scaler
      // Generally we use a divider of 8, resulting in a 2MHz timer on 16MHz CPU
      TCCR1B = (TCCR1B & ~(0x07<<CS10)) | (2<<CS10);

      //OCR1A = 125;  // 16Khz
      //OCR1A = 100;  // 20Khz
      OCR1A = 250;   // 8Khz
      TCNT1 = 0;

      TIMSK1 |= (1<<OCIE1A);  // Enable Timer1 interrupt
      //digitalWrite(ENNpin, LOW);   // Enable stepper drivers
    }
    void setup() {
      // put your setup code here, to run once:
      Serial.begin(115200);
      while (!Serial) {
        ; // wait for serial port to connect. Needed for native USB
      }
      pinMode(DIRPin1, OUTPUT);
      pinMode(STEPPin1, OUTPUT);
      pinMode(DIRPin2, OUTPUT);
      pinMode(STEPPin2, OUTPUT);
      pinMode(ENNPin1, OUTPUT);
      pinMode(ES1, INPUT);
      pinMode(ES2, INPUT);
      digitalWrite(DIRPin1, HIGH);
      digitalWrite(STEPPin1, LOW);
      digitalWrite(DIRPin2, LOW);
      digitalWrite(STEPPin2, HIGH);
      digitalWrite(ENNPin1, LOW);
      XPosition = 1;
      YPosition = 1;
      initOutput();
        while (HIGH != digitalRead(ES1) && HIGH != digitalRead(ES2)) {
        digitalWrite (DIRPin1, LOW);
        if (STEPState1 == LOW) {
          STEPState1 = HIGH;
          delayMicroseconds(100);
        } else {
          STEPState1 = LOW;
          delayMicroseconds(100);
        }
        digitalWrite (DIRPin2, LOW);
        if (STEPState1 == LOW) {
          STEPState2 = HIGH;
          delayMicroseconds(100);
        } else {
          STEPState2 = LOW;
          delayMicroseconds(100);
        }
        XPosition = 0;
        YPosition = 0;
      }
    }

    void loop() {
    //  Serial.println("pass");
      if (Serial.available() > 0) {
        protocolString = Serial.readString();
        Serial.println(protocolString);
        for (int i = 0; i <= protocolString.length(); i++){ // Analyze command string one character at a time
          parsedString...

    Read more »

  • Week 12

    wwang01/20/2021 at 08:53 0 comments

    As Spring Break begins, we have again several consistent days where we can come everyday to the lab. Yesterday and today are two quite busy ones, as we worked on several different aspects of this project, the 3D model parts, opto-mechanical parts, and also parts that needs to be laser cutted and fitted together for the optical areas of the microplate reader. We also designed and 3D printed several appropriate models used to place the switches along the X and Y axis, these are used to make the plate holder stop when it hits the extremes of the axes. 

    Adding on, we also used CNC to drill holes that are missing in the kits we purchased for the opto-mechanical parts. 

    Last but not least, we also worked drawing a few figures on Inkscape in order to laser cut them and fit all the optical components together. We kept redesigning these components since we had to constantly test out new ones, to see whether they worked better than the failed prototypes we designed earlier.

View all 22 project logs

Enjoy this project?

Share

Discussions

steven zhang wrote 12/12/2020 at 04:14 point

http://labmedical.en.hisupplier.com/product-1196543-Microplate-Culture-Plate.html

Hi,  here is a link to the image of a "Micro Plate". 

They are used as small test tubes in modern enzyme-linked immunosorbent assay (ELISA).It is a fundamental tool in modern medical testing. 

  Are you sure? yes | no

Bharbour wrote 12/24/2020 at 11:08 point

Thanks! Interesting stuff

  Are you sure? yes | no

Bharbour wrote 10/31/2020 at 13:13 point

What is a "Micro Plate" ? What are they used for?

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates