eVOLVER Forum

Peristaltic pumps not stopping with manual control

When I run the pumps manually through the evolver GUI, instead of a single pumping event, they pump for the interval I specified ( e.g 1-20 seconds), wait ~ 10 seconds, and then pump again for the specified interval.
This pattern repeats indefinitely.
If I flick the pump array on and off, the infinite pumping continues.
If I de-select the pumps on the GUI, and then click the pump buttons, the infinite pumping events stop.
If I start running an experiment (chemostat / turbidostat mode), the infinite pumping also stops.
If

Any suggestions on how this bug arose? The eVOLVER did not do this a week ago.
Also, any suggestions on the order of powering on the eVOLVER components? As in the order of 5V, 12V, and pump switches?
Thanks.

It seems like you’ve some how been sending it chemostat commands instead of turbidostat commands. The GUI should not be sending it these commands so I am not sure how/ why you are sending it.

In the command, I believe that if you send a 2|4 (e.g. in the first position on the code), you turn on the pump for 2 seconds and repeat every 4 seconds.

Again, this should not be accessible via the GUI. Did you try to run chemostat code via the DPU/ have this running in the background anywhere accidentally?

Any thoughts @heinsz ?

I had previously been running a chemostat experiment through the DPU. Only 4/16 vials ended up pumping successfully.
Now I can’t get the chemostat DPU code to run at all. I set the starting conditions to t=0 and the starting OD threshold to -1, and filled all the vials with water. The pumps don’t run at all, even when the starting conditions are passed. I set d = 1.15 with a 26 mL of fluid in the vial and .5 mL bolus rate. This should give me a bolus every minute, but nothing is happening.

I did not write the chemostat code, so I am not as familiar with it. Can you post what your custom script looks like here/ upload on github and link?

@cmancuso might know a bit more about the chemostat code.

I’ve been using basically the same example custom script that’s currently on github, I just added some print statements for debugging.

What is in your pump_cal.txt and what do you define in your rate config step?

For example:
rate_config = [0.5] * 16

OR
rate_config = [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5,1.6]

I use the first of those two options:
rate_config = [1.1538]*16

There could be some issue with my pump calibration file, here’s what it looks like:

If you are curious, a few days ago all the pumps worked in turbidostat mode, and only pumps 5,6,7 and 12 worked in chemostat mode.

Might help to print out your pump commands to debug. You can add some debug statements on this section of the code:

Maybe printing the message at the end before the command is sent out or emitted would be most useful.

Also, power cycling your machine might also be helpful. Turn OFF for 19 seconds and then turn back ON

EDIT: Also can you report what is on your config file in your eVOLVER? You can access it by the following steps:

  1. Go to Terminal and type in ssh pi@<evolver ip address> , for example, our evolver is 192.168.1.2 so we would put ssh pi@192.168.1.2 The password is DbLaoXDr
  2. Type the following: nano evolver/evolver/conf.yml
  3. Copy and paste what is listed there to this thread.

So for the issue with the pump pumping infinitely in a β€œchemostat” like mode when I manually click pump on the GUI: If the last experiment I ran was a chemostat, the infinite pump issue arises. If the last experiment I ran was a turbidostat, there is no infinite pumping issue.

Just to be clear, running indefinitely is the expected behavior when running chemostat, but when exiting the script, there should be a kill all command to stop the chemostat. When running a tstat command, it over writes the logged chemostat command and thus stops it from running indefinitely.

This issue is

  1. why is the stop pump command not being fired at the end of the experiment
  2. why did only a subset of the pumps fire as a chemostat

Yes, the infinitely running pump occurs after I stopped the dpu scripts, and go onto the eVOLVER GUI and click β€œpump” image
If the last dpu script was a chemostat, it runs indefinitely (i.e every 10 seconds). If it was a turbidostat, it only pumps for the specified time & then goes quiet.

Before we proceed more, can you please add the debug lines to your code to print the message and paste the config file, as requested earlier in the thread?

EDIT: Also, are you sure there are no scripts actively running in any terminal anywhere? It seems like if your scripts haven’t be exited properly (control + C) it might still be running and explain a lot of the issues?

try this command on terminal to see if anything is still running:

ps -ax | grep eVOLVER

Yes here is the config file, will show the debuggin / print statements in a moment

Will check if scripts are stopped in a moment. I’m using pycharm, so that could be an issue. Going to restart my computer and then run scripts through the terminal.
In the meantime, here’s the output of the debugging. I added a line shown in the photo image
e]0;eVOLVER EXPERIMENT: PRESS Ctrl-C TO PAUSEa
Connected to eVOLVER as client
Calibrate vials to blank? (y/n): y
Calibrations recieved
Test8_Feb_16_Chemo_expt: 0.0038 Hours
Message sent vial {β€˜fields_expected_incoming’: 49, β€˜fields_expected_outgoing’: 49, β€˜recurring’: True, β€˜immediate’: False, β€˜value’: [β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜0|0’, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™], β€˜param’: β€˜pump’}
Test8_Feb_16_Chemo_expt: 0.0095 Hours
Test8_Feb_16_Chemo_expt: 0.0152 Hours
Test8_Feb_16_Chemo_expt: 0.0206 Hours
Test8_Feb_16_Chemo_expt: 0.0262 Hours
Test8_Feb_16_Chemo_expt: 0.0318 Hours
Chemostat updated in vial 0
Chemostat updated in vial 1
Chemostat updated in vial 2
Chemostat updated in vial 3
Chemostat updated in vial 4
Chemostat updated in vial 5
Chemostat updated in vial 6
Chemostat updated in vial 7
Chemostat updated in vial 8
Chemostat updated in vial 9
Chemostat updated in vial 10
Chemostat updated in vial 11
Chemostat updated in vial 12
Chemostat updated in vial 13
Chemostat updated in vial 14
Chemostat updated in vial 15
Message sent vial {β€˜fields_expected_incoming’: 49, β€˜fields_expected_outgoing’: 49, β€˜recurring’: True, β€˜immediate’: False, β€˜value’: [β€˜0.64|60’, β€˜0.65|60’, β€˜0.66|60’, β€˜0.66|60’, β€˜0.64|60’, β€˜0.62|60’, β€˜0.64|60’, β€˜0.65|60’, β€˜0.65|60’, β€˜0.67|60’, β€˜0.66|60’, β€˜0.62|60’, β€˜0.65|60’, β€˜0.64|60’, β€˜0.64|60’, β€˜0.67|60’, β€˜1.28|60’, β€˜1.30|60’, β€˜1.32|60’, β€˜1.32|60’, β€˜1.29|60’, β€˜1.23|60’, β€˜1.27|60’, β€˜1.31|60’, β€˜1.30|60’, β€˜1.33|60’, β€˜1.32|60’, β€˜1.25|60’, β€˜1.29|60’, β€˜1.28|60’, β€˜1.27|60’, β€˜1.33|60’, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™, β€˜β€“β€™], β€˜param’: β€˜pump’}

Is that what you were looking for?

Regarding 2) - I was running a chemostat over the weekend. Another lab member exited my pycharm tab which had the DPU script running on it. When I can into the lab on Monday, the chemostat was still running, even though the pycharm IDE was closed. I thought this was pretty strange. What you are suggesting about scripts still running in the background could make sense.
I’ll try running experiments through the terminal and see if issues still arise.

great please keep us updated. Everything looks OK otherwise. Others have used the c-stat code more than I have so maybe others can chime in.

Will do. Just now I had done the following:

  1. run a chemostat experiment in pycharm
  2. pressed the stop button in pycharm
  3. closed pycharm
  4. restarted computer, powercycled all evolver components.
  5. powered on computer
  6. pressed pump 1 second on evolver GUI
    and the system went on the infinite pumping schedule again.