Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo that says

Flow Battery Research Collective

  1. Home
  2. General Discussion
  3. Following your documentation – feedback & questions

Following your documentation – feedback & questions

Scheduled Pinned Locked Moved General Discussion
43 Posts 5 Posters 1.2k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • G gus

    @sepi, @danielfp248 thanks :), @danielfp248, I have an exact electrolyte from the documentation https://fbrc.codeberg.page/rfb-dev-kit/electrolyte.html .

    D Offline
    D Offline
    danielfp248
    wrote last edited by
    #33

    @gus Great! As a first test please run the following:

    4d8b4a89-3774-4b76-ba0e-422ac47fc428-image.png

    This should take around 1 one hour per charge/discharge cycle, experiment should take around 5 hours total. If the cycle ends because the potential reaches the upper safety limit too quickly, reduce the currents to 10000 and try again. At first the cells can require some time cycling at low SOC at lower current, to build all the Zn nucleation sites. Do not cycle to a potential higher than 1.7V because you will start having nasty side reactions at this point.

    If this cycles successfully you can then increase the currents to 30000uA and repeat, see that it goes well.

    After that you can then start going to high SOC values at 40000uA. I would recommend first cycling to 100mAh (set Upper bound to 100000uAh). Enclose the battery when cycling to higher SOC - you can put it inside a plastic tub - because leaks due to any problem will spray highly charged electrolyte, which, even if the volume is low, can be dangerous.

    If you let me know how each test goes I can provide further feedback.

    G 1 Reply Last reply
    1
    • sepiS Online
      sepiS Online
      sepi
      wrote last edited by
      #34

      That sounds like even more exciting that I expected. @danielfp248 could you put this and a description of the wirering into the docs?

      D 1 Reply Last reply
      0
      • sepiS sepi

        That sounds like even more exciting that I expected. @danielfp248 could you put this and a description of the wirering into the docs?

        D Offline
        D Offline
        danielfp248
        wrote last edited by
        #35

        @sepi Glad to be of help! I'll ask @kirk who is currently in charge of the documentation to make the additions.

        1 Reply Last reply
        0
        • D danielfp248

          @gus Great! As a first test please run the following:

          4d8b4a89-3774-4b76-ba0e-422ac47fc428-image.png

          This should take around 1 one hour per charge/discharge cycle, experiment should take around 5 hours total. If the cycle ends because the potential reaches the upper safety limit too quickly, reduce the currents to 10000 and try again. At first the cells can require some time cycling at low SOC at lower current, to build all the Zn nucleation sites. Do not cycle to a potential higher than 1.7V because you will start having nasty side reactions at this point.

          If this cycles successfully you can then increase the currents to 30000uA and repeat, see that it goes well.

          After that you can then start going to high SOC values at 40000uA. I would recommend first cycling to 100mAh (set Upper bound to 100000uAh). Enclose the battery when cycling to higher SOC - you can put it inside a plastic tub - because leaks due to any problem will spray highly charged electrolyte, which, even if the volume is low, can be dangerous.

          If you let me know how each test goes I can provide further feedback.

          G Offline
          G Offline
          gus
          wrote last edited by gus
          #36

          @danielfp248 said in Following your documentation – feedback & questions:

          After that you can then start going to high SOC values at 40000uA. I would recommend first cycling to 100mAh (set Upper bound to 100000uAh). Enclose the battery when cycling to higher SOC - you can put it inside a plastic tub - because leaks due to any problem will spray highly charged electrolyte, which, even if the volume is low, can be dangerous.

          Thank you for this advice. To be honest, I’m a little bit afraid of leaks that could damage the Arduino, above all. Do you propose covering just the cell, or the whole system? I’ve placed the system in an IKEA Samla box, and I can cover it, just making some holes for the cables. Do you recommend extra covering for the cell as well?

          D 1 Reply Last reply
          0
          • G gus

            @danielfp248 said in Following your documentation – feedback & questions:

            After that you can then start going to high SOC values at 40000uA. I would recommend first cycling to 100mAh (set Upper bound to 100000uAh). Enclose the battery when cycling to higher SOC - you can put it inside a plastic tub - because leaks due to any problem will spray highly charged electrolyte, which, even if the volume is low, can be dangerous.

            Thank you for this advice. To be honest, I’m a little bit afraid of leaks that could damage the Arduino, above all. Do you propose covering just the cell, or the whole system? I’ve placed the system in an IKEA Samla box, and I can cover it, just making some holes for the cables. Do you recommend extra covering for the cell as well?

            D Offline
            D Offline
            danielfp248
            wrote last edited by
            #37

            @gus no, that should be fine. Since all the tubing is at the front, leaks are usually contained to the front of the cell, I've never had a leak splash back and damage the Arduino, even when we didn't have it inside a box but just bare.

            1 Reply Last reply
            0
            • G Offline
              G Offline
              gus
              wrote last edited by
              #38

              Another question before I start the test: I understand that I need to connect WE/SE to one electrode and CE/RE to the other. Does it matter which electrode is connected to which pair? Does the Mystat.py script differentiate between them?

              D 1 Reply Last reply
              1
              • G gus

                Another question before I start the test: I understand that I need to connect WE/SE to one electrode and CE/RE to the other. Does it matter which electrode is connected to which pair? Does the Mystat.py script differentiate between them?

                D Offline
                D Offline
                danielfp248
                wrote last edited by
                #39

                @gus It doesn't matter on your first run, because the cell is perfectly symmetrical on start, but remember how you connect it as you would want to always connect it the same, this way elemental iodine will be limited to only one side of the cell. I always mark one of the endplates with an X to remember which one I connect as an anode and which one as a cathode. Where you connect WE/SE is where you will generate triiodide (your cathode) and where you connect CE/RE will be you will deposit Zn (your anode).

                1 Reply Last reply
                0
                • G Offline
                  G Offline
                  gus
                  wrote last edited by gus
                  #40

                  @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.

                  D 1 Reply Last reply
                  0
                  • G gus

                    @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.

                    D Offline
                    D Offline
                    danielfp248
                    wrote last edited by
                    #41

                    @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.

                    1 Reply Last reply
                    0
                    • G Offline
                      G Offline
                      gus
                      wrote last edited by gus
                      #42

                      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 😊

                      D 1 Reply Last reply
                      1
                      • G gus

                        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 😊

                        D Offline
                        D Offline
                        danielfp248
                        wrote last edited by
                        #43

                        @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.

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        2

                        Online

                        38

                        Users

                        26

                        Topics

                        201

                        Posts
                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        Powered by NodeBB Contributors
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups