Stirring speed with different stir bar / Lost stirring

Hello! :slight_smile:

I have been running our pioreactors with a magnetic stirrer bar of 20mm long, instead of the 10mm originally provided with the reactors, and I have realized that stirring does not work when it is set to values < 500 rpm. Is this normal and just due to the fact that this bar is heavier/bigger than the “recommended” one? Specifications say stirring can go down to 100 rpm, but if i put any value < 500 rpm sometimes it starts stirring but it does not keep going.

Another issue related to the stirring… I started my experiment in my pioreactors and started the stirring, OD measurements, growth rate and temperature automation. Then I went to change the stirring speed to test how low it could go. I tried from 100 to 500 rpm and as mentioned above the fan did not turn constantly when i put < 500. But after changing it some times to test different rpm, it said “Lost” on the stirring (this happened on the leader, P01). I refreshed the page and still said Lost so i just stopped all the other settings (stopped and restarted, several times) and waited some time and it worked in the end. Then the same happened in one of the workers (P02) but also managed to fix it. After 2h I came back to the pioreactors and saw that the stirring of this P02 had stopped, and that the growth rate measurement was not started in the settings (the OD measurements was started and temperature as well). I forced the stirring to start and it worked fine, but the problem was that there was no OD data of P02 and P04 being plotted, but the leader P01 and P04’s OD measurements were in the plot. I extracted the OD readings files and there is no OD data for P02 and P03, although in the settings the OD measurements are “Started”.

Could this “Lost stirring” error be due to changing the rpm too many times? Should the other settings (OD readings, growth rate, temperature automation) not be started until the stirring is set and started? Any idea why the OD is not being recorded eventhough it says Started on the UI?

I probably could have just stopped the experiment and start it again, easiest solution, but the problem was that I realized it was not recording OD measurements 2h later… So just to know for future experiments, if there are steps we can do/avoid to avoid getting this Lost error.

Thanks a lot for any feedback!

Hi @aiseor, welcome!

but if i put any value < 500 rpm sometimes it starts stirring but it does not keep going.

To confirm, is it your stir bar that stops stirring, or the fan that stops spinning?


Your other problems are a bit concerning. Can you tell me what version of the software you are using (Look at the top of the “Updates” page)?

Generally, it sounds like you did everything right, but our software didn’t want to play nice.

Can you also share your logs (Export Data → select Experiment Logs and the experiment name where you had issues, and click Export)? You can email them to me cam@pioreactor.com.

Hi Cameron, thanks for the reply! :smiley:

It was the fan itself stopping.

We have version 24.2.26 installed now, will update to 24.3.4 later.

I also saw in the event logs yesterday the message “Database hasn’t been backed up in over 30 days”. How do we manage this?

I will send you the exported data to your email! Thanks! :slight_smile:

It was the fan itself stopping.

That’s surprising! There should be a feedback loop that will detect if the RPM is too low - even 0 RPM - and internally try to adjust itself. Do you see messages like “RPM is 0 - kicking stirring?” (Actually I’ll look into the logs, too)

20mm stirbars should be okay, even at low-ish RPMs (maybe not 100). Can you achieve <500 RPM if there is no vial & stirbar present?

Can you tell me about the power-supply you are using?


“Database hasn’t been backed up in over 30 days”

You can choose to ignore this message, but I would suggest running the following after an experiment, when no activities are running.

SSH into your leader Pioreactor, and run: pio run backup_database

Normally, we have an internal script that checks every few days if a backup can be run, but if there is an ongoing experiment, it will wait. If its been more than 30 days, we produce that warning for the user.

When there is no stir bar and no vial, if I put 200 rpm it starts to stir but then fan stops and shows this message. This happens after I start stirring and directly change from the default 500 rpm to 200 rpm.


If I put 300 rpm it showed the same error message and it stopped a couple of times, but then eventually it kept stirring constantly (for some minutes that i was testing).

If I change directly from 500 rpm to 100 rpm it starts and stops all the time, and shows same error message. However, if i change the speed from 100 to 200 rpm then it seems to stay stirring at 200 rpm. So it doesnt seem very stable for 100 rpm but 200 rpm generally looks ok.

I tested the same with the vial and the 20 mm stir bar in and now it seems to work fine. Looks like what works best (in our setup) is to not change speed directly from 500 rpm to low values, but going from 500 to 400 to 300 to 200 rpm to have constant stirring. But still 100 rpm does not seem to keep stirring constantly, it tries to start and stirs for a bit but then stops again.

We are using the default transformer provided by Pioreactors 1V 2.5 A, and then the plug itself is 230V.

When I run this line on my leader, I get this message. Does it mean it is not backing up any database? Is there another solution?

We haven’t had any experiment ongoing for more than 30 days so not sure why it was not able to do the internal check before. When I was testing a dosing automation that I developed i might have deleted some cache file or modified something internally, could this be the reason? If it is too complicated to discuss in the forum I can also book a videocall, or if it is not such big of a problem to “not fix” then it is also fine.

Thanks a lot for the help!!

It sounds like the PID controller, which controls how the Pioreactor changes the applied voltage to the stirring fan in response to it’s current RPM, is just overreacting to sudden target RPM changes. Can I suggest trying the following change in your config.ini:

[stirring.pid]
Kp=0.005
Ki=0.0
Kd=0.0

I think that should fix it.


This might sound silly, but try pio run backup_database after turning off all Pioreactor jobs on all Pioreactors and leaving them still for a few minutes. If you’re still seeing that response, try:

pio run backup_database --force