Navigation

    IO Rodeo Forum

    • Register
    • Login

    I constantly get a "could not open port 'COM#' Access denied. Although there is not another program currently using the potentiostat

    Rodeostat
    2
    11
    8369
    Loading More Posts
    • 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.
    • J
      jonathankam last edited by

      Re: Connecting Issues using Python

      W 1 Reply Last reply Reply Quote 0
      • W
        Will Dickson @jonathankam last edited by

        @jonathankam

        Could send me a few more details on your setup and how you are trying to connect to the Rodeostat.

        1. What OS are you using? I'm guessing the OS is windows from the "COM" port reference above, but knowing the version of Windows e.g. 7, 10, etc may help me diagnose the issue.

        2. Are you using the Python API or the WebApp?

        1 Reply Last reply Reply Quote 0
        • J
          jonathankam last edited by

          Hi Will,
          I am using Spyder, installed through anaconda on Windows 10. I am currently running python version 3.7.3. I suppose I am using the Python API. The code I am running is the one made available through the iorodeo python library

          W 1 Reply Last reply Reply Quote 0
          • W
            Will Dickson @jonathankam last edited by

            @jonathankam

            Are you trying to run it from the Spyder ipython console? If so you may be creating multiple instances of the serial device object which would be why you are getting the access denied error. A few other users have hit this issue as well. The easiest way to check this is to run the python program in the standard fashion from the command line instead of from inside the ipython REPL. Do you still have this issue when running from the command line?

            1 Reply Last reply Reply Quote 0
            • J
              jonathankam last edited by

              I am running a .py file where I create a device object using the potentiostat module and assign it to the appropriate port. The error is returned through the iPython console. It has happened as well from the CLI

              W 1 Reply Last reply Reply Quote 0
              • W
                Will Dickson @jonathankam last edited by Will Dickson

                @jonathankam

                OK. But just as a check. Close Spyder and all ipython consoles that may be running, etc. Close anything the might have an open connection to the device. Then open a command line and run the python script. Do you still get the access denied response?

                1 Reply Last reply Reply Quote 0
                • J
                  jonathankam last edited by

                  Thanks! I get a different error now: 'Potentiostal' object has no attribute 'test running'

                  1 Reply Last reply Reply Quote 0
                  • J
                    jonathankam last edited by

                    Additionally I get other error messages such as:
                    File "test.py", line 2, in <module>
                    pstat = Potentiostat('COM8')

                    File "C:\Users\JFK's Thinkpad\AppData\Local\Programs\Python\Python37\Lib\site-packages\potentiostat\potentiostat.py", line 163, in init
                    self.hw_variant = self.get_hardware_variant()

                    File "C:\Users\JFK's Thinkpad\AppData\Local\Programs\Python\Python37\Lib\site-packages\potentiostat\potentiostat.py", line 173, in get_hardware_variant
                    msg_dict = self.send_cmd(cmd_dict)

                    File "C:\Users\JFK's Thinkpad\AppData\Local\Programs\Python\Python37\Lib\site-packages\potentiostat\potentiostat.py", line 612, in send_cmd
                    msg_dict = json.loads(msg_json.decode())

                    W 1 Reply Last reply Reply Quote 0
                    • W
                      Will Dickson @jonathankam last edited by

                      @jonathankam

                      The first thing the software does is send the potentiostat command to get the hardware variant from the device. It looks like this command is failing for some reason. The "json.loads" in the error message makes me think that it is not receiving a proper response to this command from the device. This generally happens when either the teensy has not been programmed with the firmware or if the firmware on the teensy has been overwritten for some reason.

                      Could you send me the complete set of error messages along with the commands you sent. This will help me diagnose this issue.

                      J 1 Reply Last reply Reply Quote 0
                      • J
                        jonathankam last edited by

                        i get these errors:

                        Traceback (most recent call last):
                        File "iorodeo.py", line 9, in <module>
                        dev = Potentiostat(port)
                        File "C:\Users\JFK's Thinkpad\AppData\Local\Programs\Python\Python37\Lib\site-packages\potentiostat\potentiostat.py", line 163, in init
                        self.hw_variant = self.get_hardware_variant()
                        File "C:\Users\JFK's Thinkpad\AppData\Local\Programs\Python\Python37\Lib\site-packages\potentiostat\potentiostat.py", line 173, in get_hardware_variant
                        msg_dict = self.send_cmd(cmd_dict)
                        File "C:\Users\JFK's Thinkpad\AppData\Local\Programs\Python\Python37\Lib\site-packages\potentiostat\potentiostat.py", line 612, in send_cmd
                        msg_dict = json.loads(msg_json.decode())
                        File "C:\Users\JFK's Thinkpad\AppData\Local\Programs\Python\Python37\lib\json_init_.py", line 348, in loads
                        return _default_decoder.decode(s)
                        File "C:\Users\JFK's Thinkpad\AppData\Local\Programs\Python\Python37\lib\json\decoder.py", line 337, in decode
                        obj, end = self.raw_decode(s, idx=_w(s, 0).end())
                        File "C:\Users\JFK's Thinkpad\AppData\Local\Programs\Python\Python37\lib\json\decoder.py", line 355, in raw_decode
                        raise JSONDecodeError("Expecting value", s, err.value) from None
                        json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
                        Error in atexit._run_exitfuncs:
                        Traceback (most recent call last):
                        File "C:\Users\JFK's Thinkpad\AppData\Local\Programs\Python\Python37\Lib\site-packages\potentiostat\potentiostat.py", line 649, in atexit_cleanup
                        if self.isOpen() and self.test_running:
                        AttributeError: 'Potentiostat' object has no attribute 'test_running'

                        1 Reply Last reply Reply Quote 0
                        • J
                          jonathankam @Will Dickson last edited by

                          @Will-Dickson using the following code:

                          from serial import Serial
                          from potentiostat import Potentiostat

                          pstat = Potentiostat('COM8')

                          dev = Potentiostat('COM8')
                          dev.set_curr_range('100uA')
                          dev.set_sample_period(10)

                          name = 'cyclic'
                          param = {
                          'quietValue' : 0.0,
                          'quietTime' : 1000,
                          'amplitude' : 2.0,
                          'offset' : 0.0,
                          'period' : 1000,
                          'numCycles' : 5,
                          'shift' : 0.0
                          }
                          dev.set_param(name,param)
                          t,volt,curr = dev.run_test(name,display ='pbar')

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post