Forum Replies Created
-
AuthorPosts
-
alicebooParticipant
Hello Harrison,
We were wondering if it would be much trouble to add a skirt to the gas lid. We’re finding that there is quite a bit of light leaking through from the sides and wondered what effect this has on the measurements. We were also investigating how to sample from the chamber using a robot but the holes are quite small, and it’s quite challenging to have an accurate aim. Do you know if it would be possible to make a slightly bigger hole at the top for the sampling?
alicebooParticipantdef PumpModulation(M,item):
#Responsible for turning pumps on/off with an appropriate duty cycle. They are turned on for a fraction of each ~1minute cycle to achieve low pump rates.
global sysData
global sysItems
global sysDevicesif int(M[1]) in [0, 1, 2 , 3]:
if item == ‘Pump1’ or item == ‘Pump2’:
MB = M
itemB = item
elif item == ‘Pump3’ or item == ‘Pump4’:
sysData[M][item][‘ON’] = 0
return
else:
if item == ‘Pump1’ or item == ‘Pump2’:
if int(M[1]) == 4:
MB = ‘M0’
elif int(M[1]) == 5:
MB = ‘M1’
elif int(M[1]) == 6:
MB = ‘M2’
elif int(M[1]) == 7:
MB = ‘M3’
itemB = ‘Pump’ + str(int(item[4])+2)
elif item == ‘Pump3’ or item == ‘Pump4’:
sysData[M][item][‘ON’] = 0
returnsysDevices[M][item][‘threadCount’]=(sysDevices[M][item][‘threadCount’]+1)%100 #Index of the particular thread running.
currentThread=sysDevices[M][item][‘threadCount’]while (sysDevices[M][item][‘active’]==1): #Idea is we will wait here if a previous thread on this pump is already running. Potentially all this ‘active’ business could be removed from this fuction.
time.sleep(0.02)if (abs(sysData[M][item][‘target’]*sysData[M][item][‘ON’])!=1 and currentThread==sysDevices[M][item][‘threadCount’]): #In all cases we turn things off to begin
sysDevices[M][item][‘active’]=1
# print(“MB: “+MB)
# print(“M: “+M)
# print(“itemB: “+itemB)
# print(“item: “+item)
setPWM(MB,’Pumps’,sysItems[itemB][‘In1’],0.0*float(sysData[M][item][‘ON’]),0)
setPWM(MB,’Pumps’,sysItems[itemB][‘In2’],0.0*float(sysData[M][item][‘ON’]),0)
setPWM(MB,’Pumps’,sysItems[itemB][‘In1’],0.0*float(sysData[M][item][‘ON’]),0)
setPWM(MB,’Pumps’,sysItems[itemB][‘In2’],0.0*float(sysData[M][item][‘ON’]),0)
sysDevices[M][item][‘active’]=0
if (sysData[M][item][‘ON’]==0):
returnTime1=datetime.now()
cycletime=sysData[M][‘Experiment’][‘cycleTime’]*1.05 #We make this marginally longer than the experiment cycle time to avoid too much chaos when you come back around to pumping again.Ontime=cycletime*abs(sysData[M][item][‘target’])
if (item==”Pump1” and abs(sysData[M][item][‘target’])<0.3): #Ensuring we run Pump1 after Pump2.
waittime=cycletime*abs(sysData[M][‘Pump2’][‘target’]) #We want to wait until the output pump has stopped, otherwise you are very inefficient with your media since it will be pumping out the fresh media fromthe top of the test tube right when it enters.
time.sleep(waittime+1.0)if (sysData[M][item][‘target’]>0 and currentThread==sysDevices[M][item][‘threadCount’]): #Turning on pumps in forward direction
sysDevices[M][item][‘active’]=1
setPWM(MB,’Pumps’,sysItems[itemB][‘In1’],1.0*float(sysData[M][item][‘ON’]),0)
setPWM(MB,’Pumps’,sysItems[itemB][‘In2’],0.0*float(sysData[M][item][‘ON’]),0)
sysDevices[M][item][‘active’]=0
elif (sysData[M][item][‘target’]<0 and currentThread==sysDevices[M][item][‘threadCount’]): #Or backward direction.
sysDevices[M][item][‘active’]=1
setPWM(MB,’Pumps’,sysItems[itemB][‘In1’],0.0*float(sysData[M][item][‘ON’]),0)
setPWM(MB,’Pumps’,sysItems[itemB][‘In2’],1.0*float(sysData[M][item][‘ON’]),0)
sysDevices[M][item][‘active’]=0time.sleep(Ontime)
if(abs(sysData[M][item][‘target’])!=1 and currentThread==sysDevices[M][item][‘threadCount’]): #Turning off pumps at appropriate time.
sysDevices[M][item][‘active’]=1
setPWM(MB,’Pumps’,sysItems[itemB][‘In1’],0.0*float(sysData[M][item][‘ON’]),0)
setPWM(MB,’Pumps’,sysItems[itemB][‘In2’],0.0*float(sysData[M][item][‘ON’]),0)
setPWM(MB,’Pumps’,sysItems[itemB][‘In1’],0.0*float(sysData[M][item][‘ON’]),0)
setPWM(MB,’Pumps’,sysItems[itemB][‘In2’],0.0*float(sysData[M][item][‘ON’]),0)
sysDevices[M][item][‘active’]=0Time2=datetime.now()
elapsedTime=Time2-Time1
elapsedTimeSeconds=round(elapsedTime.total_seconds(),2)
Offtime=cycletime-elapsedTimeSeconds
if (Offtime>0.0):
time.sleep(Offtime)if (sysData[M][item][‘ON’]==1 and sysDevices[M][item][‘threadCount’]==currentThread): #If pumps need to keep going, this starts a new pump thread.
sysDevices[M][item][‘thread’]=Thread(target = PumpModulation, args=(M,item))
sysDevices[M][item][‘thread’].setDaemon(True)
sysDevices[M][item][‘thread’].start();alicebooParticipantThe legs on the microUSB receptacle look the same as on the old pumping boards. You can’t see the legs emerging from the top side of the board (but the legs are very short). You can only see the solder on the top side of the board. I could’t take any decent picture, here’s one: . We never had any problem with the blue cables, they would “click” very nicely. However with the black cables we can’t hear a “click” and you really have to force them in and there is a lot of resistance to take them out too.
alicebooParticipantThe black and blue connectors look a little different. I tried to take a picture to show the difference: microUSB picture
November 8, 2019 at 1:59 pm in reply to: Setting up the Chi.Bio from scratch following the software manual online #854alicebooParticipantLooking at setup.sh, the problem comes from the fact that the file chibio1.zip is missing from /home/debian:
In setup.sh:
…
cd ~/../home/debian
unzip chibio1.zip -d ~/../root/chibio -> fails as chibio1.zip is not available in /home/debianNovember 8, 2019 at 12:33 pm in reply to: Setting up the Chi.Bio from scratch following the software manual online #849alicebooParticipantThank you Harry.
Is the operation directory meant to be /home/debian or /root/chibio?
By copying the files over into /root/chibio, we are running this as the operation directory currently.
November 8, 2019 at 10:07 am in reply to: Setting up the Chi.Bio from scratch following the software manual online #847alicebooParticipantDuring the run of setup.sh, the console output mentioned a problem with a zip file not found: chibio1.zip.
This could be the reason why the setup.sh script doesn’t finish the job properly and why /root/chiobio doesn’t contain any file after setup.sh completes.
-
AuthorPosts