KC06 Posted March 15, 2016 Share Posted March 15, 2016 Hi guys, Is it possible to use two Analog Discovery 2 at the same time ? We would like to monitor up to 32 digital signals simultaneously in one Waveform. Best Regards ! Link to comment Share on other sites More sharing options...
attila Posted March 15, 2016 Share Posted March 15, 2016 Hello, Unfortunately no. The WaveForms application can connect to one device at a time. For each device separate instance of the application needs to be opened. These can be synchronized by common trigger source. Due to independent oscillators the analysis could have jitter. Link to comment Share on other sites More sharing options...
cephy Posted March 15, 2016 Share Posted March 15, 2016 Is it hard for digilent programmers to make waveforms to work with more than one analog discovery units? I have similar needs like kc06 Link to comment Share on other sites More sharing options...
attila Posted March 16, 2016 Share Posted March 16, 2016 It is not hard but impossible It would be nothing impossible for the software but the hardware sets the limitations. To properly synchronize most of the device features it would require a massive connection between these, to share the oscillator and many (100-200) internal signals. Having just two trigger signals would set too many limitations to list it here. For special use cases the devices can be controlled by separate applications and shared trigger. The data can be exported and imported or used in other application. Other possibility is using the WaveForms SDK to create custom application/script. Link to comment Share on other sites More sharing options...
gato_ Posted June 10, 2016 Share Posted June 10, 2016 I would like to learn about this too. I need to use 3 analog discovery, but the need not be sincronized. They are meant to control 3 different experiments, but somehow I need to start them and log at about the same time. Can this be done either with the javascript scripting, or with the SDK? Thank you Link to comment Share on other sites More sharing options...
attila Posted June 13, 2016 Share Posted June 13, 2016 Hello, For each device you can open and control it by separate WaveForms application instance. The acquisition and generation can be synchronized using the trigger IO pin, like: - wire the T1s of each device together - for one ("master") device set the Trigger 1 to output Manual trigger signal (under Settings/Options or rightmost button in status bar) - set the instruments to trigger on External 1 (also set scope and logic analyzer to Normal trigger) - for the "master" device press Manual Trigger under Settings (or leftmost button in status bar) Similar it can be done in python script too. In case millisecond level (~10ms) of synchronization is suffice you can rely on the script timing too. Like with the following Python script: from ctypes import * import sys import time if sys.platform.startswith("win"): dwf = cdll.dwf elif sys.platform.startswith("darwin"): dwf = cdll.LoadLibrary("/Library/Frameworks/dwf.framework/dwf") else: dwf = cdll.LoadLibrary("libdwf.so") # check library loading errors, like: Adept Runtime not found szerr = create_string_buffer(512) dwf.FDwfGetLastErrorMsg(szerr) print szerr.value # declare ctype variables IsInUse = c_bool() hdwf = c_int() rghdwf = [] cchannel = c_int() cdevices = c_int() voltage = c_double(); # declare string variables devicename = create_string_buffer(64) serialnum = create_string_buffer(16) # print DWF version version = create_string_buffer(16) dwf.FDwfGetVersion(version) print "DWF Version: "+version.value # enumerate connected devices dwf.FDwfEnum(c_int(0), byref(cdevices)) print "Number of Devices: "+str(cdevices.value) # open and configure devices for idevice in range(0, cdevices.value): dwf.FDwfEnumDeviceName(c_int(idevice), devicename) dwf.FDwfEnumSN(c_int(idevice), serialnum) print "------------------------------" print "Device "+str(idevice+1)+" : " print "\t" + devicename.value print "\t" + serialnum.value dwf.FDwfDeviceOpen(c_int(idevice), byref(hdwf)) if hdwf.value == 0: szerr = create_string_buffer(512) dwf.FDwfGetLastErrorMsg(szerr) print szerr.value dwf.FDwfDeviceCloseAll() sys.exit(0) rghdwf.append(hdwf.value) dwf.FDwfAnalogInChannelEnableSet(hdwf, c_int(-1), c_int(1)) dwf.FDwfAnalogInChannelOffsetSet(hdwf, c_int(-1), c_double(0)) dwf.FDwfAnalogInChannelRangeSet(hdwf, c_int(-1), c_double(5)) dwf.FDwfAnalogInConfigure(hdwf, c_int(0), c_int(0)) # log data from each device for isample in range(0, 10): time.sleep(1) print "Sample "+str(isample+1) for idevice in range(0, cdevices.value): print "Device " + str(idevice+1) hdwf.value = rghdwf[idevice] dwf.FDwfAnalogInStatus(hdwf, False, None) # 1-10ms dwf.FDwfAnalogInChannelCount(hdwf, byref(cchannel)) for ichannel in range(0, cchannel.value): dwf.FDwfAnalogInStatusSample(hdwf, c_int(ichannel), byref(voltage)) print "Channel " + str(ichannel+1)+" : "+ str(voltage.value)+"V" # ensure all devices are closed dwf.FDwfDeviceCloseAll() Link to comment Share on other sites More sharing options...
Question
KC06
Hi guys,
Is it possible to use two Analog Discovery 2 at the same time ? We would like to monitor up to 32 digital signals simultaneously in one Waveform.
Best Regards !
Link to comment
Share on other sites
5 answers to this question
Recommended Posts
Archived
This topic is now archived and is closed to further replies.