Following your documentation – feedback & questions
-
@danielfp248 Ok, thank you. So there is no need to assign one peristaltic pump to WE/SE and the other to CE/RE? Because if the electrodes are connected arbitrarily, this information will not be passed to mystat.py, right?
Edit: I suppose that I should connect the WE/RE to the electrode associated with the positive (P) pump circuit, and the CE to the electrode associated with the negative (N) pump circuit.
-
@danielfp248 Ok, thank you. So there is no need to assign one peristaltic pump to WE/SE and the other to CE/RE? Because if the electrodes are connected arbitrarily, this information will not be passed to mystat.py, right?
Edit: I suppose that I should connect the WE/RE to the electrode associated with the positive (P) pump circuit, and the CE to the electrode associated with the negative (N) pump circuit.
@gus It doesn't matter what side you connect to WE/SE the first time you run the setup. The pumps aren't really associated with the electrodes at all on the program. In a new setup both sides are exactly identical.
The important thing is, whichever side (pump, reservoir, electrode) you use for WE/SE the first time, always use the same side for WE/SE, always same pump, same electrode side, same reservoir, etc.
-
Ok, thank you @danielfp248 ! I know I'm probably being a pain, but I just wanted to be absolutely sure:) So this part is already solved.
However, I have found out that mystat.py was not able to save results to a file.
On the Raspberry Pi that I am using right now, I was unable to install PyQt5 in a virtual environment following your readme.txt and requirements.txt file. The problem is known and I have not found a working solution for the venv setup. As a workaround, I was using the default version of Python and libraries. This was probably causing the file saving issue.
Happily, the script seems to be working on the Raspberry Pi's default system Python and libraries after changing the "choose_file" function to the following:
def choose_file(file_entry_field, questionstring):
"""Open a file dialog and write the path of the selected file to a given entry field."""
filedialog = QtWidgets.QFileDialog()
# Get the tuple (filename, filter) and take only the filename
filename, _ = filedialog.getSaveFileName(mainwidget, questionstring, "", "ASCII data (*.txt)",options=QtWidgets.QFileDialog.DontConfirmOverwrite)
file_entry_field.setText(filename)I hope there will be no more incompatibility issues during battery testing
-
Ok, thank you @danielfp248 ! I know I'm probably being a pain, but I just wanted to be absolutely sure:) So this part is already solved.
However, I have found out that mystat.py was not able to save results to a file.
On the Raspberry Pi that I am using right now, I was unable to install PyQt5 in a virtual environment following your readme.txt and requirements.txt file. The problem is known and I have not found a working solution for the venv setup. As a workaround, I was using the default version of Python and libraries. This was probably causing the file saving issue.
Happily, the script seems to be working on the Raspberry Pi's default system Python and libraries after changing the "choose_file" function to the following:
def choose_file(file_entry_field, questionstring):
"""Open a file dialog and write the path of the selected file to a given entry field."""
filedialog = QtWidgets.QFileDialog()
# Get the tuple (filename, filter) and take only the filename
filename, _ = filedialog.getSaveFileName(mainwidget, questionstring, "", "ASCII data (*.txt)",options=QtWidgets.QFileDialog.DontConfirmOverwrite)
file_entry_field.setText(filename)I hope there will be no more incompatibility issues during battery testing
@gus Awesome, feel free to post screenshots of your testing! You can also post some of your result files here if you need any help plotting the results.
-
I’ve finally completed the first tests of the battery.
@danielfp248, I used the parameters you suggested, but I had to enter one of the currents (either charge or discharge) with a negative sign. With each subsequent cycle, the efficiency improved (as shown below). Is this difference in capacity from cycle to cycle expected?
I expected the program to automatically adjust the pump RPMs, but it turned out I had to set them manually. I'm not sure if the values I chose were appropriate.
Now I understand why you mentioned that the connection combination didn’t make a difference
However, I still have some doubts about the resulting voltage value—doesn’t it seem too low?Before turning on the pumps, I zeroed Mystat. I’ve just realized that it should also be calibrated with a 1.000 kOhm resistor.
I used the tubing that came with the pumps. After completing five cycles, I emptied the electrolyte and rinsed the system several times with deionized water.
Now that I know the system works, I’ll look for proper electrolyte-resistant tubing and continue with further testing.
Here’s how the electrolyte’s color changed after just a few cycles:
-
I’ve finally completed the first tests of the battery.
@danielfp248, I used the parameters you suggested, but I had to enter one of the currents (either charge or discharge) with a negative sign. With each subsequent cycle, the efficiency improved (as shown below). Is this difference in capacity from cycle to cycle expected?
I expected the program to automatically adjust the pump RPMs, but it turned out I had to set them manually. I'm not sure if the values I chose were appropriate.
Now I understand why you mentioned that the connection combination didn’t make a difference
However, I still have some doubts about the resulting voltage value—doesn’t it seem too low?Before turning on the pumps, I zeroed Mystat. I’ve just realized that it should also be calibrated with a 1.000 kOhm resistor.
I used the tubing that came with the pumps. After completing five cycles, I emptied the electrolyte and rinsed the system several times with deionized water.
Now that I know the system works, I’ll look for proper electrolyte-resistant tubing and continue with further testing.
Here’s how the electrolyte’s color changed after just a few cycles:
@gus Awesome news! Congratulations on your first successful test. Your results are really nice. The potentials are normal, when you charge to high SOC the potential will likely be around ~50mV higher at start of discharge. The resistance of your cell is actually quite low, so you did a really good job building everything
What you observed is normal, when charging to very low SOC values (5-10%), the lack of full Zn stripping creates a metal film that continuously builds and increases the coulomb and energy efficiency of the device per cycle. Basically you have Zn that is not discharged that is more conductive and easier to plate onto and then strip from. If you continue you would see it stabilize somewhere around 80-85% CE and 70-75% EE. The color change you observe in the electrolytes is normal. The catholyte is normally red (gets black as you get more I3-) while the anolyte is normally transparent or slightly yellow due to the presence of I3- that leaks from the catholyte through the membrane (as the membrane is not selective).
Ideally on a fully discharged cell both electrolytes should go back to fully transparent, but since we have oxygen reacting with some iodide, this never happens.
About the pump speeds, I generally charge/discharge at around 30-35% of the total pump speed. When you cycle for a long time you will also notice fluid transfer from the anolyte to the catholyte. To avoid this, you can run the catholyte pump slower and the anolyte pump faster (see here https://www.sciencedirect.com/science/article/abs/pii/S138589472100098X). A ratio of 1:7 (catholyte:anolyte speed) was found in this paper to work best for this. I have never run it so fast, in my experience running the catholyte at 45% and the anolyte at 30% is usually enough of a difference to prevent most of the migration.
-
It is incredibly exciting to see you guys reproducing the kit! We are really excited about completely independent third parties being able to just build and run this thing.
-
@sepi , thanks for the kind words. @danielfp248, @kirk It is really cool that you have done and made this project available! Building and testing it personally is an experience much more valuable than just reading an article.
I'll be honest — before the first test, I was a bit worried that a leak might suddenly appear.
I'm also glad, @danielfp248 , that you confirmed the accuracy of my results.
I'm looking forward to seeing your project develop!