Forum Replies Created
-
AuthorPosts
-
harrison
KeymasterHi Wilson
This is something I have been interested in, but have not yet got around to building. I think the major question is the probe – what probe and how does it fit into the test tube. Do you have one that you want to use? I am happy to help on the software/hardware front.
Harrisonharrison
KeymasterHi Nobuhiro,
I’m trying to understand – so you set the target OD to something (say, 0.5), then when cells eventually reached this level it kept pumping continuously, even though their OD was below the target level?And, when you tried setting the pump to slow rates manually (e.g. 0.01) it actually pumped a lot more than this? (for reference, 0.01 rate means the pump should be on for approximately 0.01*60=0.6 seconds)
If so – are there any messages in the Putty window from the system with errors etc?
This sounds like a strange problem, and should not have anything to do with the tubing – if the system is set at a low pump rate (0.01) and pumps a lot more than this then it is likely a software/electronics issue. Have you made any modifications to either?
Would it be possible for you to upload (e.g. via dropbox or something) a video of the problem so I can see?
Harrison
harrison
KeymasterI see, it looks like you may have downloaded the incorrect OS image. It should be the one named “bone-eMMC-flasher-debian-10.4-lxqt-armhf-2020-05-18-4gb.img.xz” which is in the row labelled “eMMC Flasher” on the site here: https://elinux.org/Beagleboard:BeagleBoneBlack_Debian#Debian_10_.28Buster.29_-_Weekly.
It is directly below a different file (labelled microSD), which looks like what you have been using. So, if you change to the eMMC flasher file then I hope it will work straight away!Harrison
harrison
KeymasterHi Seth,
There are a few groups using Chi.Bio for exactly that – engineering single strains, or multiple-strain communities, to support plant growth. In some cases they have worked on integrating the Chi.Bios with other equipment e.g. Anoxic chambers in order to simulate different environmental conditions. It is very capable for this, and obviously much more accessible/customisable than industrial equivalents. But, ultimately Chi.Bio’s appropriateness will depend on your specific application – have you any more details about what you are trying to do?
harrison
KeymasterHi David,
This is a very peculiar problem, and I am at a loss for how to explain it. Have you edited the Chi.Bio software in any way? It sounds like you are doing everything exactly correctly, so I am not sure how the numbers can get mixed up in the softrware. The 100,000 value arises because this is the maximum value you are meant to be allowed to set in that value – which seems consistent with your observation that any thing except very low inputs at “Measured” cause it to output very large values.One way to diagnose would be to add extra print statements in app.py. Could you go into the function CalibrateOD and add the following just before the line that currently reads “sysData[M][item][‘target’]=OD0” (so, around line 1480)
print(‘ODActual = ‘ + str(ODActual))
print(‘raw = ‘ + str(raw))And see what these numbers are showing you? (When you do the OD calibration it should display these lines in the Putty window).
harrison
KeymasterHi Pablo,
From the file you attached it looks like the issues stem back to this issue with the nameserver.
I have heard of several others having issues in the past whereby they could not get the internet on the Beaglebone to work due to firewalls on their internet connection blocking access from the Beaglebone.Are you able to connect via a different network? For instance, share internet from a phone to your PC, then connect through that to the internet? That way it would ideally bypass any institutional firewall you have that might be obstructing.
I will try replicating your error later today on one of my devices, and will try to see whether when I flash the system it has the correct resolv.conf in there.Could you confirm to me what the complete filename of the operating system image you downloaded from this site was? https://elinux.org/Beagleboard:BeagleBoneBlack_Debian#Debian_10_.28Buster.29_-_Weekly
harrison
KeymasterHey Pablo,
Filezilla should be independent of the nameserver issue. When you open Filezilla it should look something like this: https://upload.wikimedia.org/wikipedia/commons/9/95/FileZilla_3.7.3.png
Along the top are the fields for host (192.168.7.2) username (debian) password(temppwd) and port (22). Does yours not show this?Regarding the file /etc/resolv.conf, what _is_ in the directory /etc/? There should be several files there, it is surprising that this one would be missing – I have never seen such an error. If you navigate to the root directory and then enter /etc/ and run command “ls” what does it show in that folder?
In practice you shouldnt even need to do the editing of resolv.conf yourself – it is done automatically by our script setup.sh (i.e. here https://github.com/HarrisonSteel/ChiBio/blob/master/setup.sh). So, maybe focus on getting Filezilla to work, then it should sort it out itself when you run this script.
harrison
KeymasterHi Pablo,
When flashing correctly the lights should oscillate back and forward if I recall correctly. It should be obvious if it is working; it will only take 15 minutes then the device will reset itself. I think you are correct that yours did not work.
Did you:
1) Go into the Beaglebone and make the changes described in the “flashing eMMC” section on this page: https://elinux.org/Beagleboard:BeagleBoneBlack_Debian#Flashing_eMMC
2) Hold the S2 switch when you turn it on with the SD card (set up for flashing) installed?If you didnt do either of these that is a likely cause – potentially number 1 could be the primary issue.
When you say the setup “changed the files” on the Beaglebone does this mean you can no longer log into it using Putty?
I can try replicating the issue next week on one of my devices and see if there is any update or such that could be causing trouble.
harrison
KeymasterHi David,
Let me just confirm, what you are doing is the following:
1. Click measure.
2. Read a value of approximately 10000 from next to the word “Raw”
3. Copy this value (10000) into the box “New”
4. Put the actual OD (lets say 0) into “Actual”
5. Click “Set”
6. Current should now change to 10000.From what I understand is step 6 not working for you? If the description of this process in the manual did not make sense (it sounds like perhaps you didnt copy the RAW value into the NEW box), then I can update it!
Good luckJuly 7, 2020 at 10:29 pm in reply to: Morbidostat – for antibiotic resistance evolution experiments #959harrison
KeymasterHi both, apologies for the lack of documentation thus far; I need to work on a readme for the Github! I recently went through and added comments throughout as a first step, and at some point soon will work on a full-on readme, ideally as a precursor to a more fully-fledged API. If you have any specific questions about implementing your custom programs in the mean-time please let me know!
Harrisonharrison
KeymasterHi Constant,
These sound like interesting software goals, and I’d be glad to help!
Writing an API for the software is on my to-do list for this summer, since I figured this would be useful for people developing custom experiments like you describe.Many of your ideas are good ones, and I think you will find it isn’t that hard to implement most of them once you are familiar with the code. Changing between different modes/actuators is generally pretty straightforward, even with complex control calculations going on. As to the pumps, while lower PWM voltage may help slow down the rotor in the pump, in my past experience I found that this may also increase the pump-to-pump in variability (i.e. the rates are more variable at lower voltages). So, there is some trade-off there between reducing on time, and reducing rate while the pump is on.
As to the threads – you are probably right. Potentially many of these could be removed. That said, for most cases there should only be 2-3 threads running per reactor at any given time, unless I am mistaken. I basically implemented the control like this since it seemed conceptually the most straightforward, and since I had not seen the software put a massive burden on the Beaglebone CPU I never felt the need to make it significantly more efficient. If you can think of benefits to implementing this in a different way I’d be happy to hear, and to help!
Best wishes,
HarrisonJune 16, 2020 at 10:54 am in reply to: Morbidostat – for antibiotic resistance evolution experiments #953harrison
KeymasterHi Oscar,
Yes, the system can very easily be re-programmed to do that. In fact, in the past we have tested it on control of microbial communities in which multiple species grow together, and two different media are mixed dynamically to regulate their relative growth rate.
Such a control system can easily be implemented in the software (with the “custom program” feature), and enables protocols like the one in the paper you linked to be run.
Typically I would use a setup with one jar of normal media, and one jar of media + antibiotic, and mix the relative inflow fraction from each. This way you avoid having to dispense very small and precise volumes (e.g. as would be required if you had a jar of just concentrated antibiotic not mixed with media).harrison
KeymasterHi Doron, it looks like there may be an issue with the control board PCB making a poor electrical connection with the digital multiplexer. Have you contacted to Labmaker to ask about this? If it was a faulty batch of manufacturing they should be able to quickly replace it for you.
harrison
KeymasterExcellent, great to hear this!
harrison
KeymasterHi Alex,
I do not think they always make a perfect seal, so I wouldn’t use them to try to e.g. create a permanent vacuum. However, I think that they would work for the application you outlined: I expect that by running the output pump continuously you would generate some amount of suction (it doesn’t sound like you need much for your application), which would draw in air from another pipe.
I come to this conclusion because I have observed that if you block the input end of the pipe with your finger you can observe the motor struggle, implying that it is able to create a fairly good seal and generate suction.
-
AuthorPosts