Muticlamp NoResultError

22 views
Skip to first unread message

Kyle Wedgwood

unread,
Dec 18, 2018, 5:42:35 AM12/18/18
to ACQ4
Hi all,

I'm trying to get my config for my MultiClamp700A sorted.

When I try to run the program, I get a NoResultError() exception. I guess the program is getting no response from the hardware, though I'm not exactly sure what it is expecting.

The MultiClamp and the MultiClampCommander 700A are both running before I start ACQ4. I have also installed both python 2.7 64bit and 32bit and have pointed the device configuration to the 32bit bit as suggested here: https://groups.google.com/forum/?fromgroups#!searchin/acq4/multiclamp$20193%7Csort:date/acq4/JuMsU2dBjYA/27DH8G2sCQAJ

Here is the Traceback:

NoResultError
  File "C:\Users\micuser\Anaconda2\lib\runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "C:\Users\micuser\Anaconda2\lib\runpy.py", line 72, in _run_code
    exec code in run_globals
  File "C:\Users\micuser\acq4\acq4\__main__.py", line 58, in <module>
    man = Manager(argv=sys.argv[1:])
  File "acq4\Manager.py", line 153, in __init__
    self.readConfig(configFile)
  File "acq4\Manager.py", line 231, in readConfig
    self.configure(cfg)
  File "acq4\Manager.py", line 299, in configure
    printExc("Error configuring device %s:" % k)
  File "acq4\util\debug.py", line 43, in printExc
    acq4.Manager.logExc(msg=msg, msgType=msgType)
------- exception caught ---------->
  File "acq4\Manager.py", line 297, in configure
    self.loadDevice(driverName, conf, k)
  File "acq4\Manager.py", line 440, in loadDevice
    dev = devclass(self, conf, name)
  File "acq4\devices\MultiClamp\multiclamp.py", line 86, in __init__
    mc = mcmod.MultiClamp.instance()
  File "acq4\pyqtgraph\multiprocess\remoteproxy.py", line 919, in __call__
    return self._handler.callObj(obj=self, args=args, kwds=kwds, **opts)
  File "acq4\pyqtgraph\multiprocess\remoteproxy.py", line 564, in callObj
    return self.send(request='callObj', opts=dict(obj=obj, args=args, kwds=kwds), byteData=byteMsgs, **opts)
  File "acq4\pyqtgraph\multiprocess\remoteproxy.py", line 469, in send
    return req.result()
  File "acq4\pyqtgraph\multiprocess\remoteproxy.py", line 645, in result
    raise NoResultError()

___________________________________________________________________________________

and here is the relevant portion of my config file:

# NiDaQ 6363
DAQ:
    driver: 'NiDAQ'

    # Default mode for AI channels. Options are 'NRSE', 'RSE', and 'DIFF'
    # This may be overridden for individual channels.
    defaultAIMode: 'NRSE'

    # Default input/output voltage ranges
    defaultAIRange: [-10, 10]
    defaultAORange: [-10, 10]

# Multiclamp 700A amplifier
Clamp1:
    driver: 'MultiClamp'
    channelID: 'model:MC700A,com:4,dev:2'
    pythonExecutable: "C:\\Users\\micuser\\Anaconda2_32bit\\python.exe"

    # Define two connections to the DAQ:
    Command:
        device: 'DAQ'
        channel: '/Dev1/ao0'
        type: 'ao'
    ScaledSignal:
        device: 'DAQ'
        channel: '/Dev1/ai1'
        mode: 'NRSE'
        type: 'ai'

    # Default holding values.
    icHolding: 0.0
    vcHolding: -65e-3

_____________________________________________________________

Any help would be much appreciated!

Best wishes,

Kyle

Luke Campagnola

unread,
Dec 18, 2018, 6:38:50 PM12/18/18
to ac...@googlegroups.com

The best answer to this would be to switch to a 64-bit commander, but unfortunately it looks like the 700A commander is still 32-bit (and might never have an update). Since I don't have a 700A to test with, I can only guess what might be going on, but here are a couple of things you can try:


In acq4\devices\MultiClamp\multiclamp.py line 86, try extending the timeout:


    mc = mcmod.MultiClamp.instance(_timeout=20)


The default timeout is 10 seconds, which I assume would be plenty, but it's worth a shot.

Another thing you can try is running the multiclamp test script from your 32-bit python:


- Pull the latest version of acq4 from the github develop branch (I can provide more help here if you're not familiar with git)

- Make sure acq4 is installed for your 32-bit python by running `python setup.py develop` from the acq4 directory, using the anaconda prompt for your 32-bit installation.

- Run `python acq4\drivers\MultiClamp\test.py` and see whether your multiclamps are properly detected.


Let me know how far that gets you..

Luke


From: 'Kyle Wedgwood' via ACQ4 <ac...@googlegroups.com>
Sent: Tuesday, December 18, 2018 2:42:35 AM
To: ACQ4
Subject: [acq4] Muticlamp NoResultError
 
--
You received this message because you are subscribed to the Google Groups "ACQ4" group.
To unsubscribe from this group and stop receiving emails from it, send an email to acq4+uns...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/acq4/cd15ea88-d943-40e2-90b1-5cb1e5265f06%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

1024kyz

unread,
Dec 19, 2018, 7:09:25 AM12/19/18
to ac...@googlegroups.com
Hi Luke,

Changing the timeout did not seem to help.

However, it seems that running the suggested steps in the 32bit python was successful as my Multiclamps have been detected. Output:

(base) C:\Users\micuser\acq4>python acq4\drivers\MultiClamp\test.py
Using MultiClamp DLL at  C:\Program Files\MultiClamp 700A Commander_installed\3rd Party Support\AxMultiClampMsg\AxMultiClampMsg.dll
Available channels: ['model:MC700A,com:4,dev:2,chan:1', 'model:MC700A,com:4,dev:2,chan:2']

========= model:MC700A,com:4,dev:2,chan:1 ========
membraneCapacitance : 0.0
secondaryGain : 1.0
primarySignal : Membrane Current
primaryUnits : A
secondaryUnits : V
primaryGain : 10.0
extCmdScale : 0.02
secondaryScaleFactor : 0.1
primaryScaleFactor : 2e-10
mode : VC
LPFCutoff : 2800.0
secondarySignal : Membrane plus Offset Potential
OutputZeroEnable : 0
PipetteOffset : -0.00620000017807
Holding : -0.0600003190339
PrimarySignalHPF : 0.0
BridgeBalResist : 8.41339597981e-42
PrimarySignalLPF : 2800.0
RsCompBandwidth : 1020.47998047
WholeCellCompResist : 25912518.0
WholeCellCompEnable : 0
LeakSubResist : 10000000.0
HoldingEnable : 0
FastCompTau : 9.27007306473e-07
SlowCompCap : 2.14285707234e-12
WholeCellCompCap : 5.73056489414e-12
LeakSubEnable : 0
NeutralizationCap : 8.41339597981e-42
BridgeBalEnable : 6004
RsCompCorrection : 50.0
NeutralizationEnable : 6004
RsCompEnable : 0
OutputZeroAmplitude : 0.0
FastCompCap : 7.87916433487e-12
SlowCompTau : 8.82352906046e-05

========= model:MC700A,com:4,dev:2,chan:2 ========
membraneCapacitance : 0.0
secondaryGain : 1.0
primarySignal : Membrane Current
primaryUnits : A
secondaryUnits : V
primaryGain : 10.0
extCmdScale : 0.02
secondaryScaleFactor : 0.1
primaryScaleFactor : 2e-10
mode : VC
LPFCutoff : 2800.0
secondarySignal : Membrane plus Offset Potential
OutputZeroEnable : 0
PipetteOffset : -0.000793999992311
Holding : -0.0599871985614
PrimarySignalHPF : 0.0
BridgeBalResist : 8.41339597981e-42
PrimarySignalLPF : 2800.0
RsCompBandwidth : 1020.47998047
WholeCellCompResist : 12803416.0
WholeCellCompEnable : 0
LeakSubResist : 10000000.0
HoldingEnable : 1
FastCompTau : 9.36885271585e-07
SlowCompCap : 1.90476193845e-12
WholeCellCompCap : 4.9363503736e-12
LeakSubEnable : 0
NeutralizationCap : 8.41339597981e-42
BridgeBalEnable : 6004
RsCompCorrection : 50.0
NeutralizationEnable : 6004
RsCompEnable : 0
OutputZeroAmplitude : 0.0
FastCompCap : 7.59356553331e-12
SlowCompTau : 0.000102564103145

Any suggestions on how I can get this working in the main program?

Best wishes,

Kyle

1024kyz

unread,
Jan 15, 2019, 5:36:23 AM1/15/19
to ac...@googlegroups.com
Hi Luke,

Happy New Year! Hope you had a good festive season.

I was wondering if you'd had any more thoughts about this issue?

Best wishes,

Kyle

Luke Campagnola

unread,
Jan 15, 2019, 2:30:28 PM1/15/19
to ac...@googlegroups.com

Hi Kyle!

Sorry for the delay. Next thing I would try is just connecting to the multiclamp from a 64- to a 32-bit process. The code below is a stripped-down version of the first ~90 lines in acq4/devices/multiclamp/multiclamp.py.


Start an interactive python session from your 64-bit environment and paste in these lines (you'll have to change the path to the 32-bit python executable, though):


>>> from acq4.pyqtgraph import multiprocess
>>> proc = multiprocess.Process(executable="C:\\anaconda2-32\\python.exe", copySysPath=False)
>>> mcmod = proc._import('acq4.drivers.MultiClamp')
>>> mc = mcmod.MultiClamp.instance()
>>> print(mc.listChannels())
[ .... ]


Hopefully this will have the same behavior as you saw in acq4, and from there the problem should be much simpler to diagnose.


Another workaround you could consider is to do everything in 32-bit. Depending on your requirements, this might work out just fine..



Luke



From: '1024kyz' via ACQ4 <ac...@googlegroups.com>
Sent: Tuesday, January 15, 2019 2:36:11 AM
To: ac...@googlegroups.com
Subject: Re: [acq4] Muticlamp NoResultError
 

Luke Campagnola

unread,
Jan 15, 2019, 2:35:06 PM1/15/19
to acq4
One addendum: you can also add `debug=True` as an argument to the multiprocess.Process() call and it should provide a bit more information about what's going on between the two processes.


1024kyz

unread,
Jan 15, 2019, 3:29:27 PM1/15/19
to ac...@googlegroups.com
Hi Luke,

Thanks for this - I will give this a go next time I am in the lab.

Best wishes,

Kyle

Kyle Wedgwood

unread,
Jan 28, 2019, 7:45:54 AM1/28/19
to ACQ4
Hi Luke,

So, following those steps, it seems like I can see both channels on the MultiClamp, as in the previous case.

So now is the idea to replace the relevant parts of the core code with this pointer to the 32-Bit python executable?

Best wishes,

Kyle
To unsubscribe from this group and stop receiving emails from it, send an email to acq4+unsubscribe@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "ACQ4" group.
To unsubscribe from this group and stop receiving emails from it, send an email to acq4+unsubscribe@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "ACQ4" group.
To unsubscribe from this group and stop receiving emails from it, send an email to acq4+unsubscribe@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "ACQ4" group.
To unsubscribe from this group and stop receiving emails from it, send an email to acq4+unsubscribe@googlegroups.com.

Luke Campagnola

unread,
Feb 5, 2019, 12:42:42 AM2/5/19
to acq4
This code is already present in the existing MultiClamp device code, so I think we're ok there.. we know we can connect to the MC commander, and we know that this works even across 64->32-bit processes; question is why this doesn't work when acq4 tries to do it.

Next thing to try: pull from acq4/develop (I just pushed one bugfix that might help, but it's a long shot). If that doesn't fix it, then add debug=True to acq4/devices/MultiClamp/multiclamp.py line 54
    MultiClamp.proc = multiprocess.Process(executable=executable, copySysPath=False, debug=True)
..and attach the complete transcript.

Luke

   


To unsubscribe from this group and stop receiving emails from it, send an email to acq4+uns...@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "ACQ4" group.
To unsubscribe from this group and stop receiving emails from it, send an email to acq4+uns...@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "ACQ4" group.
To unsubscribe from this group and stop receiving emails from it, send an email to acq4+uns...@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "ACQ4" group.
To unsubscribe from this group and stop receiving emails from it, send an email to acq4+uns...@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "ACQ4" group.
To unsubscribe from this group and stop receiving emails from it, send an email to acq4+uns...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/acq4/f0db649c-8c40-4911-93e3-299e4c482b17%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages