📖
eVOLVER
  • eVOLVER Documentation Wiki
  • General
    • About Us
    • eVOLVER Community
      • Code of Conduct
  • Getting Started
    • Buying eVOLVER
    • Part Sourcing
    • Unboxing and Setting Up
    • Software Installation
      • DPU Installation
      • Electron App (GUI) Installation
    • Configuring Computer and Networking
      • Router Setup
    • Calibrations
      • Temperature Calibration
      • Optical Density Calibration
      • Pump Calibration
      • Manual Calibration - calibrate.py
  • Upgrade Base eVOLVER Hardware
  • Experiments
    • Starting an Experiment
      • Carboy Media Prep
      • Preparing Vials
      • Setup Waste Carboy
      • Sterilizing Lines
      • Loading Vials and Setting Initial Conditions
      • OD Blank
      • GUI Start Guide
      • Command Line Start Guide
      • Cleaning Up After Experiment
    • Growth Curve
    • Chemostat
    • Turbidostat
    • FAQs
    • Tips and Tricks
  • Guides
    • Use the GUI to Control Parameters
    • Building a Smart Sleeve
    • Making media bottles and splitters
    • Emergency Efflux
    • View the Server Log and Restart Server
    • Updating the eVOLVER Server
    • Change Your conf.yml File
    • Arduino Software Installation
    • Raspberry Pi Configuration
    • Command Line Usage
    • Millifluidics Guides
      • Designing Millifluidics Using Eagle
      • Constructing Laser Cut Millifluidics
      • Constructing Millifluidics via SLA Printing
      • Calibrating IPPs
      • Operating Millifluidics
  • Troubleshooting
    • Troubleshooting Overview
    • Experiment Troubleshooting
      • Contamination
      • Vial Overflow, Pump Failure, and Spills
      • Tubing and Connector Blockage and Bursting
    • Optical Density (OD) Readings
    • Vial Troubleshooting
      • Replacing Photodiodes and LEDs
      • Heating Element
      • Stirring
    • Server Troubleshooting
    • Vial Platform Troubleshooting
      • Motherboard Troubleshooting/Replacement
      • 12V Power Supply Troubleshooting/Replacement
    • GUI Troubleshooting
    • eVOLVER Maintenance
  • Hardware
    • Overview of Hardware Architecture
    • Overview of Fluidics
      • Tubing and connectors
      • Peristaltic Pumps
      • Fluidics box
    • Overview of Millifluidics
      • IPPs (Integrated Peristaltic Pumps)
      • Pressure Regulator
    • Vial Caps
      • Universal Vial Cap Construction Guide (Luer Connectors Only)
      • 5 and 7 Port Nylon Tubing Caps Construction Protocol
    • Smart Sleeve
      • Vial Board
      • 🌪️Stirring
      • Temperature
      • Optical Density
        • OD90 vs OD135
    • Motherboard Layout and Circuitry
      • 🌡️Arduino
      • Sensor/Actuator Board Slots
      • Pulse Width Modulation (PWM) Boards
      • Analog-to-Digital Converter (ADC) Boards
    • Raspberry Pi
    • Chassis
    • Light Blocker / Splash Guard
    • Known Issues
  • Software
    • Overview of Software Architecture
    • DPU
      • Calibration
      • custom_script.py
      • Experiment Data Files
      • eVOLVER.py
    • Arduino
    • Server (Raspberry Pi)
      • Calibration Files
      • Configuration Files (conf.yml)
    • Known Issues
  • Extensions
    • Adding A New Experimental Parameter
      • Power Supply
      • Specific Applications
      • Custom Calibration Code
    • Custom Experiments
      • ePACE
        • ATTiny1634 Writing
        • LUX Board Troubleshooting
      • Morbidostat
      • Extractor Column
        • Extractor Volume Maintenance
        • Experiment Start
          • Sterilizing Extractor Fluidics
          • Setting up your experiment
          • Using the extractor script
        • Extractor Analysis
        • Troubleshooting
        • Example protocols
      • Phototroph Growth
        • Setup Phototroph eVOLVER
        • Photo-eVOLVER Smart Sleeves
          • Photo-eVOLVER Smart Sleeve Construction Guide
        • Experiment Guide
    • Custom Fluidics
      • Adding a Third Pump Rack
      • Bubblers / In-Vial Aeration
        • Bubbler Construction Protocol
        • Bubbler Cleaning Protocol
      • Running the slow pumps
    • min-eVOLVER
      • About
      • min-eVOLVER Construction
        • Parts
        • Construction Protocol
      • Fluidics Setup
      • Software Installation and Startup
      • send_command.py
      • Calibrations
      • Starting an Experiment
      • ePACE with min-eVOLVER
        • [v1.1] ePACE with min-eVOLVER
      • Troubleshooting
    • Interfacing with Other Systems
  • Contributing
    • Guidelines for Contribution
    • Reporting a Bug / Hardware Failure
    • Documentation
      • Making a Forum Post
      • How to Edit the Wiki
    • Software Development
    • Hardware Development
Powered by GitBook
On this page
  • Arduino (SAMD21)
  • Raspberry Pi
  • Lab Computer

Was this helpful?

Edit on GitHub
Export as PDF
  1. Software

Overview of Software Architecture

High-level description of software architecture

PreviousKnown IssuesNextDPU

Last updated 1 year ago

Was this helpful?

All code is located in our :

  1. (Raspberry Pi, Python)

  2. (C/C++)

  3. (Python)

  4. (Node, JS, Electron, React)

Arduino (SAMD21)

All code is in C/C++.

Raspberry Pi

The server is written in python.

Lab Computer

This is where the logic for experiments happens. Users can program culture routines in python (DPU) that are carried out as commands sent to the RPi via websockets typically over a local network (router).

Additionally, users can use the electron GUI interface to send immediate one-off commands and see the current data being collected on the eVOLVER. The GUI is also used to carry out calibrations of connected components, mapping the currents and voltages that the sensors generate to real-world representation of what they are measuring like OD or temperature.

Lastly, the GUI is also capable of customizing and managing eVOLVER culture routine experiments, and can be used to view the data from current and past experiments.

Responsible for collecting data from sensors and actuating culture vial components. A single is typically responsible for a single culture parameter. All of the SAMD21 boards are connected in parallel to a . They listen for commands from the Raspberry Pi and communicate only when the RPi asks them specifically for information.

The Raspberry Pi orchestrates the control of all connected components, keeps track of calibration data for those components, and serves as the interface between the hardware and any lab computers or users wanting to interact with the eVOLVER. It can communicate via a network and also interface with low-level hardware. It communicates with the connected Arduino's via Serial RS-485, and with users via a lab computer with , typically over a local network (router).

The DPU code is all in python, and the GUI is written in Javascript using and .

SAMD21 mini-breakout board
Serial RS-485 bus
websockets
Electron
React
Github Repositories
eVOLVER Code
Arduino/Microcontroller Code
Data Processing Unit
eVOLVER GUI