Difference between revisions of "Team:Madrid-OLM/HardwareElectronics"

Line 100: Line 100:
 
Although is essential to correctly choose the programming language for the different platforms, it is mandatory to keep an eye choosing the communication protocols between all of the device’s platforms.
 
Although is essential to correctly choose the programming language for the different platforms, it is mandatory to keep an eye choosing the communication protocols between all of the device’s platforms.
 
</p>
 
</p>
<img class= "figureimage mg--2" alt="Figure1" src="https://static.igem.org/mediawiki/2018/9/96/T--Madrid-OLM--Device--FinalPrototype--SoftwareProto.png" style="width:90%;"/>
+
<img class= "figureimage mt--1" alt="Figure1" src="https://static.igem.org/mediawiki/2018/9/96/T--Madrid-OLM--Device--FinalPrototype--SoftwareProto.png" style="width:90%;"/>
 
<p class="lead" style="margin-left:5%; margin-right:5%;">Figure 3: The platform’s programming languages employed and the communication protocols between all of them.</p>
 
<p class="lead" style="margin-left:5%; margin-right:5%;">Figure 3: The platform’s programming languages employed and the communication protocols between all of them.</p>
 
</br>
 
</br>
 
 
<p class="lead mt--2"><b>In our circuit there are five platforms liable to be programmed: </b></p>
+
<p class="lead mt--1"><b>In our circuit there are five platforms liable to be programmed: </b></p>
  
 
<ol class="ourlist">
 
<ol class="ourlist">
Line 114: Line 114:
 
</ol>
 
</ol>
 
</br>
 
</br>
<div class="slider box--shadow-wide border--round mt--2">
+
<div class="slider box--shadow-wide border--round mt--1">
 
<ul class="slides">
 
<ul class="slides">
 
<li>
 
<li>
Line 128: Line 128:
 
</div>
 
</div>
 
<div class="row justify-content-around">
 
<div class="row justify-content-around">
<div class="col-md-6 col-lg-5 mt--2">
+
<div class="col-md-6 col-lg-5 mt--1">
 
<span class="h5">Codes</span>
 
<span class="h5">Codes</span>
 
<p class="lead">You can find the code for the PC app, the Arduino control and the Rodeostat’s modified firmware in <a href="http://github.com/OpenLabMadrid/iGEM-Madrid-OLM">our GitHub.</a> </p>
 
<p class="lead">You can find the code for the PC app, the Arduino control and the Rodeostat’s modified firmware in <a href="http://github.com/OpenLabMadrid/iGEM-Madrid-OLM">our GitHub.</a> </p>
 
</div>
 
</div>
<div class="col-lg-6 col-md-6 mt--2">
+
<div class="col-lg-6 col-md-6 mt--1">
 
<span class="h5">Acknowledgements</span>
 
<span class="h5">Acknowledgements</span>
 
<p class="lead">
 
<p class="lead">

Revision as of 15:30, 17 October 2018

Madrid-OLM

Electronic part of the device

Electronics

The final version of the device integrates multiples features. Each one of these characteristics come with its own platform and its own firmware.

We have chosen each one of them with the essential characteristic of being Arduino compatible. The final device looks like a patchwork, with all the different platforms working together to accomplish the main objective: automate the measurement of the electrode.

Hardware

The hardware is mainly composed of different modules, interconnected for two main purposes: distributing the powers rails through all the modules and communicating each module with the main controller.

The hardware is mainly composed of different modules, interconnected for two main purposes: distributing the powers rails through all the modules and communicating each module with the main controller.

Figure1

Figure 1: Diagram of the different platforms that run the system.

Broadly the system is composed of four main sections:

  1. A pump system on a microlitre scale. Composed of eight stepper motors, controlling the syringe’s pumps. It is in charge of injecting and removing the fluid from the chips. This system is directly connected to a 12V power supply and controlled through the digital pins from the main controller, Arduino Mega.

  2. A potentiostatic measurement system, the Rodeostat, directly connected to the microfluidic chip. It connects directly to the Arduino (Which governs the device) through Serial communication. For that purpose, the pins 26 and 31 of the P14 connector in the RodeoStat have been connected to the RX2 and TX2 pins on the Arduino Mega. The system is supplied by the 5V pin of the Arduino Mega power converter. For a more detailed description of the system, connection checks this threat where we have explained to the RodeoStat community our set up.

  3. A WiFi module, designed and developed by ourselves. The system is based on the board ESP8266, broadly extended in IoT applications. It communicates to Arduino through Serial protocol through its RX3 and TX3 pins. The purpose of this module is to uploads the data sent by Arduino to an external cloud server on FireBase. You could go over all the schematic and board designs on our GitHub.

Figure1

The main controller which operates the rest of the components, Arduino Mega 2560.

CAUTION: The controllers has several modifications that allow it to work in the device. Trying to replicate it without the modifications is dangerous and can imply the universe destruction:

  1. Arduino’s M7 diode, which job is to avoid an eventual situation of reverse current, has been removed. This is because of his inability to stand the 4 amperes that go through the system when the 8 motors are at their full capacity. In its position, we have solder a IRLZ44N transistor, able to stand up to 50 A. To do it, the pins of the source and drain were connected in a similar way as the pins of the diode and the gate pin was connected to the 12V power supply. A heat sink was also put in the upper side.

  2. Figure1
  3. An Arduino Shield was mounted to increase the total of pins to 8 Vin an 8 GND, to connects the power of the motor drivers.

Figure1
Software

As we have introduced in the previous section, our system is like a patchwork, with several different platforms including actuators, sensors and control elements.

Although is essential to correctly choose the programming language for the different platforms, it is mandatory to keep an eye choosing the communication protocols between all of the device’s platforms.

Figure1

Figure 3: The platform’s programming languages employed and the communication protocols between all of them.


In our circuit there are five platforms liable to be programmed:

  1. The ESP8266, module in charge of all the wifi communications. We have kept the original firmware because we didn’t have time to reprogramme it during this call.

  2. In the Rodeostat, potentiostat responsible of the electrochemical measurements of the sensor, we modify the original firmware so it could be controlled through the Arduino Mega, instead of a computer.

  3. The Arduino Mega controls all the device, handling the motors, receiving the Rodeostat measurements and sending them to the cloud through the WiFi module or the serial communication with the PC.

  4. Outside the device, the data go to Firebase server. The server, on one hand, gets all the data and send them to an iOS design app, where the final user can watch the development of the data in real time.

  5. Finally, a PC program, written in python with Qt creator, is able to communicate through the serial protocol with the device. The application let you configure 8 different motors, run protocols sequentially or inject liquid in the microfluidic chips.


  • img
  • img
  • img
Codes

You can find the code for the PC app, the Arduino control and the Rodeostat’s modified firmware in our GitHub.

Acknowledgements

Both the iOS app and the firebase server was set up thanks to the help of Marcos Hernández Cifuentes.