# Readme # Basic Instructions of Repository **This is the main repository of your project, please consider to follow the next rules to work in a collaborative way with other fellows.** ## Readme and Wiki Use `Readme.md` file to let others know how to use, connect (circuits) or implement the repository elements in a basic and simple way. For detailed information, remark notes, tutorials, or documentation (reports and thesis) of the repository use the **Wiki** Tab in the same repository. *Considers that the Wiki page is not considered by the git system*. ## Projects and Issues tab To organize your progress, use the issues and projects tabs. In this way, it is possible to schedule your tasks and set milestones. Thus, each week can start by reviewing the pending tasks, organize your week tasks, and at the end of the week check and mark your progress. ### Issues and Labels Let us start by setting some milestones (proposal, prototype, software function, etc.), set a Due Date, and its description. With your milestones, it will be easy to organize issues and track your progress. After defining a milestone, - **task** - **bug** - **improve** - ** The `git-template` includes 9 basic labels to use each time you create an issue. These labels are detailed next: - bug: Somethign is not working as expected or getting wrong results - duplicated: This issue or pull request already exists - further work: General advices to be considered in future elements, projects or submodules - help wanted: Some help is required by supervisors; directions, raw material, material, review results, or laboratory assistance - improve: Something has to be improved or rebuiled to improve expected results - question: Something needs a fast review or guidance to focus the aim of the project - submodules: The project should considers to create a submodule element to integrate in this project - task: Assigned task to complete a milestone or project element; the assigned collaborators have to complete the task - wiki: Elements or information to be included in the Wiki page ### Projects (Tab) **Considers that this is the main repository. Thus, create projects (in the tab menu) for main elements (circuit stage, specific behaivior, component, document, simulation, or submodule, etc.) to manage components or submodules related with the main repository**. In the project always create three main boards: Todo, In Progress and Done. **Note: the next sections are only examples about readme files and typical files included in the repository** # Examples of Readme and files included # Example of code projects # Introduction This reposity includes the basic information to mount a server using **Node-RED** as a Dashboard and also working as a MQTT server using **Mosquitto**. The MQTT server is tested with a ESP32 client to publish random numbers every two seconds. The general scheme is shown below, the complete environment requires a client, mqtt server or broker, and a mqtt client that works like a user interface (dashboard). The basic communication scheme could work like: 1. The ESP32 starts the communication chain by sending a text message to the broker, the broker can be public or local. 2. Depending on the code, the sending message can be replicated to all the connected clients in the *topic*. 3. Finally, a web server based on *Node-RED* will read the publicated data in the broker to be displayed in the *UI*. ![mqttesp32](./mqttesp32.PNG) The client code to test the environment is hosted in the [mqtt-client-esp32-v2](https://github.com/ss-jade/mqtt-client-esp32-v2). *Thanks to Andrés Perez for the first version.* # MQTT Server ## Installing Mosquitto For the Raspberry pi, based on Debian's distribution, we can use: ```bash sudo apt update sudo apt upgrade sudo apt install mosquitto ``` To execute *mosquitto* and enable every time the system starts: ``` sudo systemctl enable mosquitto.service ``` ## Configuring the Mosquitto server First replace the default configuration file by the file providing in this repository: ``` sudo cp ./mosquitto.conf /etc/mosquitto/mosquitto.conf ``` then, create the password file instanced on the `mosquitto.conf` file ``` sudo touch /etc/mosquitto/passwd ``` finally, restart the service: sudo systemctl restart mosquitto ## Node-RED installation To install **nodejs** write in terminal: ``` sudo apt update sudo apt install nodejs sudo apt install npm ``` Then, let us install the *Node-RED* app and the *Dashboard* complement by using the *Node Package Manager*: ``` sudo npm install -g --unsafe-perm node-red node-red-stop npm install node-red-dashboard ``` now, we require to run in background the app and verify that *node-RED* is running: ``` node-red & sudo netstat -plnt ``` then, to get access to *node-RED* go to your web browser at `rasp-hostname.local:1880` or `rasp-ip:18080`. ----- # Example of circuits and PCBs # Potentiostat-device Version 3 of the electronic basic potentiostat to measure electrochemical activity. The project is under development by: - Diana Elena Barcenas Acho - Sofía Cristina Suárez Campos # Desing The desing is under develpoment on Upverter, the best (at this moment) desing is: - [Diana's desing](https://upverter.com/eda/#tool=schematic,designId=04414c53a7fb9dbe) The following image shows the schematic circuit diagram design. ![Schematic diagram](Schematic-diagram_v3.png) The aim of this project is to design a potentiostat at a lower cost. In the following link you can find the design with which it has been working and the tests have been done: [Potentiostat v3](https://upverter.com/eda/#tool=schematic,designId=04414c53a7fb9dbe) # Bill of Material ### Integrated circuits - 3 OPC07CP - 2 OPA544T - 1 TLE2061CP ### Resistors - 7 100kΩ - 1 1kΩ - 1 120kΩ - 1 18kΩ - 1 1.5kΩ - 4 10kΩ ### Electrodes - 2 Electrode with silver coating - 1 Electrode with silver and calomel coating ### Other devices - 3 Test point - 1 3-Way Screw Terminal Block - 2 CUI PJ-202A Below is the more detailed bill of material, downloaded from upverter. [Bill of material](Bill-of-material_v3.csv) # Connection and calibration ### Schematic diagram design For this design, two more amplifiers were added to modify the signal obtained at the output, an amplifier and an adder were added. ### PCB layout For the design of the PCB, it was verified that the encapsulations of the design coincided with the physical components, then the circuit was routed leaving the width of most tracks of 1.5 mm (especially the tracks connected to the power supply). After routing the entire circuit, the packages were verified to match the schematic circuit and the data sheets for each component. It was observed that the encapsulation in the platform, of the OPA544 did not coincide with that of the data sheet, therefore, an adjustment was made in the routing, which was marked as an error because the correct numbering could not be corrected of the terminals on the platform. Due to this, in the image of the PCB layout some paths were observed with red. ![PCB Layout](PCB_v3.png) ### Circuit printing Gerber files are necessary to print the circuit, in these files are the different layers of the PCB. These files will be opened in the program that is connected to the machine to mill printed circuits, in this program the material that will be used in the printing of the circuit will be selected, the types of bits that will be used, in addition, using the gerber files will be selected the layers to be printed. [Gerber files](Gerber_files_v3) Upon verifying that the PCB design matched the schematic circuit and that the packages were correct, we proceeded to print the PCB. Thanks to the S43 machine, this process was very simple, since the machine only had to be properly programmed according to the materials and needs that were required, then the machine was in charge of drilling and roughing the baquela. After printing the circuit, it must be verified that the perforations are suitable for the components that will later be soldered, if any perforation is smaller, another perforation can be made with the help of a bench drill. The next thing is to sand the baquela so that it is clean. ### Calibration In tests with this design, we used tri-distilled water. Below is the voltmeter and ammeter connection diagram. ![Electrode connection diagram](Electrode-connection-diagram.png) First, the open loop circuit was connected, taking into account only the connections with the electrodes (as shown in the previous figure). To perform the test, the complete circuit was connected for 20 minutes so that the measurement values stabilized. The measurement must be carried out taking care that the electrodes are more or less the same distance and must be vertical. In the design, the terminal block to measure voltage (WR-Voltage) is badly connected, so a cable was soldered to pin 6 of the integrated circuit U3 to connect it to the beagle and to take the measurement properly. The complete connection of the circuit is observed in the following diagram: ![Electrode connection diagram](Connection-diagram_v3.png) # Basic measurements ## Prueba 1: - Potencial: -0.3283 V - Corriente: -0.5198 uA ## Prueba 2: - Potencial: - Corriente: ## Prueba 3: - Potencial: - Corriente: ======= ## Test 1: - Potential: -0.411V ## Test 2: - Potential: -0.4165V ## Test 3: - Potential: -0.4168V Open loop testing ## Test 1: - Potential: -0.32519V - Current: -0.0109uA ## Test 2: - Potential: -0.3319V - Current: -0.0160uA ## Test 3: - Potential: -0.3342V - Current: -0.0.017uA The values obtained in the three tests are shown graphically below. In the first graph, the scale is from (0, 0) and it can be seen that there is a very small variation between the values of the 3 measurements. In the second graph there is a scale with values closer to those obtained in the measurements and the variation of the values obtained in the measurements is better observed.