📖
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
  • 0. Design questions before you start
  • Does the new experimental parameter require sensing, actuation, or both?
  • Additional Questions
  • Low Level (Hardware/Arduino)
  • 1. Add appropriate boards (PWM/ADC) to SA slots in eVOLVER Motherboard.
  • 2. Program Arduino to collect serial data and/or regulate actuators.
  • 3. Add new hardware components to Smart Sleeve
  • High Level (Server/DPU)
  • 4. Add experimental parameter to eVOLVER server configuration file (conf.yml) with relevant configurations
  • 5. Adjust DPU software to take advantage of new experimental parameter in continuous culture algorithms

Was this helpful?

Edit on GitHub
Export as PDF
  1. Extensions

Adding A New Experimental Parameter

PreviousKnown IssuesNextPower Supply

Last updated 1 year ago

Was this helpful?

0. Design questions before you start

Does the new experimental parameter require sensing, actuation, or both?

Examples

  • Sensing only: optical sensor (photodiode, phototransistor) for new spectra, pH sensor

  • Actuation only: optical stimulation w/ new LED

  • Both: fluorescence measurements (LED/optical sensor pair), feedback driven optical stimulation

Additional Questions

  • Can new hardware be fitted onto vial?

    • Hardware CAD files can be found .

  • Can the eVOLVER provide necessary power to control actuator?

    • The base eVOLVER can provide 5V or 12V signal to the vials.

    • Otherwise, look into changing the .

  • Is the signal you are sensing strong enough to be sensed using the components you will use?

The best way to answer these questions is to go through the datasheets of components you are interested in integrating and breadboarding with the eVOLVER Motherboard. This will help you also establish and tune dynamic ranges for new sensing capabilities. Additionally, you can explore swapping in new power supplies for components with higher power consumption specs. Once you've established compatibility and feasibility, you can begin integrating a new experimental parameter for eVOLVER.

Low Level (Hardware/Arduino)

1. Add appropriate boards (PWM/ADC) to SA slots in eVOLVER Motherboard.

  • Each Arduino is connected to 2 SA slots so that culture parameters that require sensing/actuation can share data, but Arduino is still capable of controlling each SA slot individually.

  • If parameter requires only sensing or actuation, then its best to pair with parameters that also require sensing or actuation (i.e. stir) for efficient usage of Arduinos

  • If the experimental parameter is sensing a culture condition, plug in a ADC Board

  • If the experimental parameter is applying a stimulus to the culture, plug in a PWM Board

2. Program Arduino to collect serial data and/or regulate actuators.

  • All Arduinos communicate with Raspberry Pi along same serial line and either look for tags/add tags associated with the parameter they’re responsible for controlling

3. Add new hardware components to Smart Sleeve

  • Smart Sleeve 3D printed housing may need to be redesigned to fit components

  • Solder component leads to correct Component Mount Board (CMB) pins, which is set by slot position of SA slot(s)

    • E.g. If using SA slot 8, make sure that components leads are wired to position 8 on CMB

High Level (Server/DPU)

4. Add experimental parameter to eVOLVER server configuration file (conf.yml) with relevant configurations

  • If parameter is for actuating, 'fields_outgoing' set to 17 (see example below):

  temp:
    recurring: true
    fields_expected_outgoing: 17
    fields_expected_incoming: 17
    value: ['4095', '4095', '4095', '4095', '4095', '4095', '4095', '4095', '4095', '4095', '4095', '4095', '4095', '4095', '4095', '4095']
  • If parameter is for sensing, fields_outgoing set to 2 (see example below):

experimental_params:
  od_90:
    recurring: true
    fields_expected_outgoing: 2
    fields_expected_incoming: 17
    value: '1000'

5. Adjust DPU software to take advantage of new experimental parameter in continuous culture algorithms

  • Basically, you need to create a new method in the EvolverNamespace class, which can be called in your custom control code

  • Example below using default stir parameter:

def update_stir_rate(self, stir_rates, immediate = False):    
    data = {'param': 'stir', 'value': stir_rates, 
    'immediate': immediate, 'recurring': True}    
    logger.debug('stir rate command: %s' % data)    
    self.emit('command', data, namespace = '/dpu-evolver')

Make sure that the name you are using for the experimental parameter is consistent throughout this process. eVOLVER will pull a list of experimental parameters from the conf.yml to sort through incoming serial data and tag outgoing serial commands. Inconsistencies with naming will lead to issues later on!

GitHub and wiki more information regarding how to program Arduinos

of wiki goes in more depth on how to create culture control algorthms

here
PWM
power supply
repo
docs
DPU section