Search the Community

Showing results for tags 'analog discovery 2'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • News
    • New Users Introduction
    • Announcements
  • Digilent Technical Forums
    • FPGA
    • Digilent Microcontroller Boards
    • Non-Digilent Microcontrollers
    • Add-on Boards
    • Scopes & Instruments
    • LabVIEW
    • Other
  • General Discussion
    • Project Vault
    • Learn
    • Suggestions & Feedback
    • Buy, Sell, Trade
    • Sales Questions
    • Off Topic
    • Educators
    • Technical Based Off-Topic Discussions

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start





Website URL







Found 106 results

  1. Hello, Learning to create/manage custom scope measurements in Waveforms for the AD2. So far I have created a couple of custom measurements but do not understand how/what is actually going on regarding how they are managed. Any help would be appreciated. Here are the steps I took to create a custom measurement: Added the "stock" Custom Channel measurement Modified it Changed its name to Capacitor Value Saved the script in a directory as a txt file Subsequently: Modified the measurement script (Capacitor Value) some more Changed its name to CapVal Saved the updated script txt file Here is where I am confused: When I go to the Custom Measurement drop down menu is see BOTH custom measurement scripts listed. I had assumed that when I changed the measurement name and saved the modified script by overwriting the script text file that there would be no trace of the original script - but this is not the case. QUESTIONS: How/where are custom measurements saved? Are custom measurement scripts they stored internal to Waveforms based on their name in the measurement editor window? What does the script->save menu do - let you save for off-line editing only? How do you remove custom measurement scripts from the "add measurement" menu? What is the correct way for creating and managing custom measurement scripts? Is there documentation/resources that already exist that can be referred to? Again, any help would be appreciated. Thanks. TerryF
  2. Hello, I am trying to send oscilloscope data from the Analog Discovery 2 to the Arduino Uno. Would there be a way I could do this so that the Arduino could read it in live time? Miranda
  3. I was wondering whether it is possible to use the second function generator while the first one is being used for the network analyzer tool. Here is the use case: I'm testing part of a class-D amplifier, in which the triangle wave to the comparator is generated by the second function generator of the Analog Discovery 2. I'd like to use the network analyzer interface to characterize the amplifier, while keeping a fixed triangle wave on channel 2. I realize that there is probably some way to write a script to do this, but it would be nice to have all the GUI of the network analyzer and export.
  4. Hello, I’m trying to generate the data whose length is over 1000bits by using the pattern generator in Analog discovery 2. I use Microsoft Excel VBA or Python and command FDwfDigitalOutDataSet. But the VBA cannot treat the int data whose length is over 1000bit in binary. Is there any way to transmit the large data to the pattern generator by using VBA or Python? Thanks.
  5. Hi, I'm trying to measure the capacitance of a sensor, and am using the impedance analyzer tool to do so. If I do not connect anything I notice it sees a 22pF parallel capacitance. Is this because the program does not automatically compensate for the internal 24pF capacitance? EDIT: I am using the Analog Discovery 2 with Waveforms 3.8.2
  6. I encountered a peculiar issue when using AWG2 of the Analog Discovery 2. Physical connections were as follows: 1+ to W2 1- to GND When AWG2 is set to generate a sine wave voltage <= 1.00V, the output seems to be a clipped version of a voltage referenced to +5V (USB +ve rail). At any voltage above that (>1.001), the output is fine. I'm using Waveforms 3.8.2 on a 64bit Win10 PC. I've attached a screen capture:
  7. Hello, I have some problems with jitter with analog discovery 2 during acquisition with a python script. I used both (after parsing with futurize to comply with python 3.5) and a modified version using ScanScreen as acquisition mode (see attachment). The last one can run much faster than the suggested I can reach 1MHz sampling rate. """ DWF Python Example Author: Digilent, Inc. Revision: 10/17/2013 Requires: Python 2.7, numpy, matplotlib python-dateutil, pyparsing """ from __future__ import division from __future__ import print_function from builtins import range from past.utils import old_div from ctypes import * from dwfconstants import * import math import time import matplotlib.pyplot as plt import sys from scipy.fftpack import fft import numpy as np 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("") #declare ctype variables hdwf = c_int() sts = c_byte() hzAcq = c_double(1000000) hzGen = c_double(1000000/8) nSamples = 1000000 rgdSamples = (c_double*nSamples)() #rgdSamples16 = (c_short*nSamples)() pidxWrite = c_int() acqMode = acqmodeScanScreen filterMode = filterAverage #print DWF version version = create_string_buffer(16) dwf.FDwfGetVersion(version) print("DWF Version: "+version.value.decode("utf-8")) #open device print("Opening first device") dwf.FDwfDeviceOpen(c_int(-1), byref(hdwf)) if hdwf.value == hdwfNone.value: szerr = create_string_buffer(512) dwf.FDwfGetLastErrorMsg(szerr) print(szerr.value.decode("utf-8")) print("failed to open device") quit() print("Preparing to read sample...") print("Generating sine wave...") dwf.FDwfAnalogOutNodeEnableSet(hdwf, c_int(0), AnalogOutNodeCarrier, c_bool(True)) dwf.FDwfAnalogOutNodeFunctionSet(hdwf, c_int(0), AnalogOutNodeCarrier, funcSine) dwf.FDwfAnalogOutNodeFrequencySet(hdwf, c_int(0), AnalogOutNodeCarrier, hzGen) dwf.FDwfAnalogOutNodeAmplitudeSet(hdwf, c_int(0), AnalogOutNodeCarrier, c_double(2)) dwf.FDwfAnalogOutConfigure(hdwf, c_int(0), c_bool(True)) #set up acquisition dwf.FDwfAnalogInChannelEnableSet(hdwf, c_int(0), c_bool(True)) dwf.FDwfAnalogInChannelRangeSet(hdwf, c_int(0), c_double(5)) dwf.FDwfAnalogInAcquisitionModeSet(hdwf, acqMode) dwf.FDwfAnalogInFrequencySet(hdwf, hzAcq) dwf.FDwfAnalogInChannelFilterSet(hdwf, c_int(0), filterMode) bufferLength = 8192 dwf.FDwfAnalogInBufferSizeSet(hdwf, c_int(bufferLength)) sts = c_int() dwf.FDwfAnalogInBufferSizeGet(hdwf, byref(sts)) print("Buffer length ", sts.value) bufferLength = sts.value #wait at least 2 seconds for the offset to stabilize time.sleep(2) #begin acquisition dwf.FDwfAnalogInConfigure(hdwf, c_int(0), c_int(1)) print(" waiting to finish") #time.sleep(0.1) cSamples = 0 sts = c_ubyte() cSamplesValid = c_int() idx = 1 pidxWrite = c_int() iterations = 1; while cSamples < nSamples: # Count iterations iterations += 1 dwf.FDwfAnalogInStatus(hdwf, c_int(1), byref(sts)) # print(sts.value) if cSamples == 0 and (sts == DwfStateConfig or sts == DwfStatePrefill or sts == DwfStateArmed) : # Acquisition not yet started. continue # Read index dwf.FDwfAnalogInStatusIndexWrite(hdwf, byref(pidxWrite)) # Calculate how many new samples are in the buffer availableSamples = (pidxWrite.value - idx)%(bufferLength) if cSamples + availableSamples > nSamples : availableSamples = nSamples-cSamples if idx + availableSamples <= bufferLength: dwf.FDwfAnalogInStatusData2(hdwf, c_int(0), byref(rgdSamples, sizeof(c_double)*cSamples), c_int(idx), c_int(availableSamples)) cSamples += availableSamples #print(iterations, "idx: ", idx, ", pidxWrite: ", pidxWrite.value, ", Valid samples: ", availableSamples, ", cSamples: ", cSamples) idx = pidxWrite.value else: #print("wrapping") #print(iterations, "idx: ", idx, ", pidxWrite: ", pidxWrite.value, ", Valid samples: ", availableSamples) availableSamples1 = bufferLength-idx dwf.FDwfAnalogInStatusData2(hdwf, c_int(0), byref(rgdSamples, sizeof(c_double)*cSamples), c_int(idx), c_int(availableSamples1)) cSamples += availableSamples1 #print(iterations, "idx: ", idx, ", pidxWrite: ", pidxWrite.value, ", Valid samples: ", availableSamples1, ", cSamples: ", cSamples) idx = 0 availableSamples2 = availableSamples-availableSamples1+1 dwf.FDwfAnalogInStatusData2(hdwf, c_int(0), byref(rgdSamples, sizeof(c_double)*cSamples), c_int(idx), c_int(availableSamples2)) cSamples += availableSamples2 #print(iterations, "idx: ", idx, ", pidxWrite: ", pidxWrite.value, ", Valid samples: ", availableSamples2, ", cSamples: ", cSamples) idx = pidxWrite.value #print(iterations, "idx: ", idx, ", pidxWrite: ", pidxWrite.value, ", Valid samples: ", availableSamples, ", cSamples: ", cSamples) print("Recording finished") # Close device dwf.FDwfDeviceCloseAll() # rgpy=[0.0]*len(rgdSamples) for i in range(0,len(rgpy)): rgpy[i]=rgdSamples[i] # Plot plt.figure(1) plt.clf() plt.plot(rgpy, '.') # Plot fft a = np.array(rgpy) A = fft(a)/len(a) plt.figure(2) plt.clf() plt.semilogy(abs(A)) The problem however is not the speed, but the jitter which can be seen by the fft plot or by the drift of the lines in the standard plot when hzGen is a small sub-multiple of hzAcq (see figure). There is a 50 mV drift in 1 s. Is this depending on python code and on the host pc (ubuntu 16.04) or is implicit in the device? I would not expect such a large jitter from this kind of hardware. Is there a way to improve? Thank you in advance for the kind help. Best, Alberto
  8. I was thinking, whether it would be possible to extend the Analog Discovery 2's functionality as a JTAG or AVR programmer/debugger. Currently it is my preferred tool for almost all my needs on my electronics workbench. However, being able to use the AD2 for programming/debugging microcontrollers, would greatly improve its value.
  9. My project end goal is to log 9-bits data from an FPGA. The Analog discovery 2 can log data but I was wondering if it could for digital data as well. Thank you in advance
  10. gasstationwithoutpumps

    Auto-calibrate for Analog Discovery 2?

    How much would an "autocalibrate" board cost for the Analog Discovery 2 ? I think that one could be designed using the new chip of the new DMM board, as the calibration procedure given in the documentation only requires an accurate DC multimeter. Waveforms 3 already has an understanding of SPI and the necessary connections could be made with latching relays as on the impedance board (or with FETs). In looking at student results in lab for the 25 AD2s we bought, it seems that they ship with offsets as much as a couple of millivolts. Going through and hand-calibrating them would take too long and be very tedious (even if I had a trusted multimeter to use as a calibration source), but with an auto-calibrate board, we could get them all properly calibrated in an afternoon.
  11. gasstationwithoutpumps

    Bug: AD2 Impedance Meter export

    There is a bug in the export of data from the impedance analyzer from Waveforms (specifically from Waveforms 3.8.2 using the Analog Discovery 2, but I have seen it with earlier releases of Waveforms 3 also). The problem is that the frequencies are reported as if they were from a linear sweep, even though a logarithmic frequency sweep was done: #Date Time: 2018-07-01 16:50:47.258 #Trace: Trace #Start: 100 Hz #Stop: 1e+06 Hz #Steps: 101 #Resistor: 10000 Ω #Average: 10 #ProbeCapacitance: 1.04e+06 Ω #ProbeResistance: 4.3e-11 F #Compensation: Open Short #Wavegen: Wavegen1 #Amplification: 1 X #Settle: 20 ms #MinPeriods: 32 #Channel: Channel 1 #Range: 5.49577 V #Offset: -0.000318847 V #Attenuation: 1 X #Channel: Channel 2 #Range: 5.51181 V #Offset: -0.000280998 V #Attenuation: 1 X Frequency (Hz) Trace θ (°) Trace |Z| (Ω) Trace Ls (H) Trace Cs (F) 100 0.00067832392258167652 9971.9407134030535 0.00018789460945304077 -0.013481119008321029 10099 0.0018260127183053441 9972.4554790954317 0.00046132118972998595 -0.0045670615004842902 20098 0.0026165423173400044 9972.2098918719494 0.00060286028271848858 -0.0029068564833067186 Many of my students had problems with this bug last quarter, and we had to create a work-around in our gnuplot plotting scripts: #if the frequencies in your data file don't follow log increments use the code below # Written by Ali Fallahi #example: use plot 'data' u (correct($1)):3 instead of plot 'data' u 1:3 freq_u=1e6 #last frequency freq_l=10 #first frequency NoOfSamples=101 #number of samples indexno(f)=(NoOfSamples-1)*(f-freq_l)/(freq_u-freq_l) correct(f)=10**(log10(freq_l)+indexno(f)/(NoOfSamples-1)*log10(freq_u/freq_l)) ## plot 'measuring-10kohm-buggy-freq.txt' u (correct($1)):3 title '10k{/Symbol W}±0.1%' It would be nice not to need to correct the data files.
  12. Hello, I use the internal circuit board of Analog Discovery 2 on my test fixture board but the external case is not used. Would you please provide a 3D model of the internal circuit board assembly (PCBA)? Thanks, Choon Shin
  13. There do not seem to be any specifications for CPU platforms and Linux OSes that work best with the Analog Discovery 2 (i.e. that run the software and can keep up with the sample rate of the device). I see from past questions that it doesn't work properly with any model of Raspberry Pi (seems to be a Pi hardware problem, not Digilent's fault) and there are problems installing certain libraries on various Linux versions. From my experience with the HackRF One, you need a powerful enough CPU that can keep up with the sample rate being generated by the device without overruns or totally consuming the CPU capacity. Plus the operating system and library versions need to be compatible with what the software was compiled on (preferably identical). Since Digilent doesn't publish such detailed information on their website, I thought I'd ask forum members - what Linux systems are people using successfully with the Analog Discovery 2 and are happy with? Exact OS and platform would be helpful (i.e. Dell XPS 13 laptop running Ubuntu version 9999.1). Thank you.
  14. Features page states that Logic Analyzer Discovery 2 is 1.8V /3.3V/5V tolerant. I can't find a setting in Waveforms to change it to 1.8V. Does anyone know how to do i?
  15. I have a brand new AD2 that I'm having trouble getting to work on macOS 10.13.x. WaveForms 2015 reports "No device detected", and the "Find Devices" button also fails to show my AD2. The Mac is a MacBookPro13,1 [MacBook Pro (13-inch, 2016, Two Thunderbolt 3 ports)], the new type with the USB-C ports, but without the Touch Bar. The AD2 is connected directly to the Mac using the USB cable that came with the AD2, using a pretty generic USB-A-to-USB-C adapter. The device appears on the USB in System Information, and browsing the I/O registry, an instance of the com_digilent_driver_DigilentFtdiDriver class has been instantiated at the corresponding node in the tree. Attaching the device results in the following log messages from the driver: default 06:34:22.398724 -0800 kernel Digilent probe8: initial probe score = 100000 default 06:34:22.398748 -0800 kernel Digilent probe: Manufacturer Name = Digilent default 06:34:22.398919 -0800 kernel Digilent probe8: final probe score = 100001 default 06:34:22.398937 -0800 kernel Digilent Starting interface 0 Detaching the device: default 06:39:37.691288 -0800 kernel Digilent Stopping interface 0 There are no /dev/tty.usb* device nodes. I don't see any errors in the system log. I'm using WaveForms 2015 v. 3.6.8, and installed the 1.1.0 driver.
  16. Mattflorida

    AD2 device name in c#

    I’m writing a custom application in c# for the Analog Discovery 2. Things are working fine except I cannot get the device name and device serial number. dwf.FDwfEnumSN and dwf.FDwfEnumDeviceName execute but do not return a string. How should I declare the variables? I’ve tried all I can think of. Thanks
  17. I am having a similar issue when running as a normal user under Ubuntu 16.04.4 LTS and have installed the following packages per the standard instructions for running the Analog Discovery 2 device. ii digilent.adept.runtime 2.17.1 amd64 Digilent Adept Runtime ii digilent.waveforms 3.7.5 amd64 Digilent WaveForms Currently I am only able to run waveforms under "sudo" and not as a standard user. As a standard user executing env LD_LIBRARY_PATH=/usr/lib/digilent/waveforms/qtlibs gdb /usr/lib/digilent/waveforms/waveforms Thread 10 "waveforms" received signal SIGSEGV, Segmentation fault 0x00007fffecce2fc6 in libusb_close () from /lib/x86_64-linux-gnu/ The Full Backtrace is as follows #0 0x00007fffecce2fc6 in libusb_close () from /lib/x86_64-linux-gnu/ #1 0x00007fff375e492d in CloseDevice () from /usr/lib64/digilent/adept/ #2 0x00007fff375e5c91 in OpenDevice () from /usr/lib64/digilent/adept/ #3 0x00007fff375e61ed in FTCommonOpen () from /usr/lib64/digilent/adept/ #4 0x00007fff375e633e in FT_OpenEx () from /usr/lib64/digilent/adept/ #5 0x00007fffefd55cae in ?? () from /usr/lib64/digilent/adept/ #6 0x00007fffefd501b3 in ?? () from /usr/lib64/digilent/adept/ #7 0x00007fffefd4c6f8 in ?? () from /usr/lib64/digilent/adept/ #8 0x00007fffefd4a3d6 in ?? () from /usr/lib64/digilent/adept/ #9 0x00007fffefd498dc in ?? () from /usr/lib64/digilent/adept/ #10 0x00007ffff395a6ba in start_thread (arg=0x7fffc4907700) at pthread_create.c:333 #11 0x00007ffff48b941d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Running strace this line appears 3 times: open("/dev/bus/usb/002/004", O_RDWR) = -1 EACCES (Permission denied) At a glance this appears to be a permission issue for accessing the USB port/driver for this device; is there a recommended adjustment or fix for this at this time?
  18. I had a working Debian 8 production system using python2.7 to talk to an Analog Discovery 2. I decided to update the .deb packages to be current and now I get "Segmentation fault" "stack smashing detected" when I try to start my python program. I was using the amd64.deb files: digilent.adept.runtime 2.16.6 digilent.waveforms 3.5.4 (for the file) Upgraded to digilent.adept.runtime 2.17.1 digilent.waveforms 3.7.5 Also on the system is digilent.adept.utilities 2.2.1. I tested just upgrading the runtime package and my program works. Upgrading the waveforms package (and thus causes the segfault. Any thoughts on how I might track down where the problem is?
  19. How can I setup Analog Discovery 2 to measure the time between two rising edges on two different channels? I'm just interested in the time, not collecting the waveform.
  20. Received my Analog Discovery 2 last weekend and now I am debugging a hardware of us where analog and digital is involved... In the device manager I chose 2x8k for scope and 16x4k for logic. When displaying scope and 2 logical inputs I see that the analog scope shows: 8192 samples @ 800kHz, which makes 10msec in total...this is also the whole screen. In the logic part it tells 2048 samples @ 200kHz... Why doesn't the logic part sample at 400kHz as it has half the memory depth per channel as the analog part? (4k versus 8k) Is there a way to capture or log based on analog trigger where the timescale is around 50msec but the logic part should be able to decode 115.2kBaud?
  21. Is there anyone that has a direct link to download just the USB drivers for the Analog Discovery II (not part of Waveforms 2015)? We are having driver issues on Windows 10. We've tried every other solution that we could find on these forums. (Manually pointing to the drivers, rebooting, reinstalling waveforms including the Adept Runtime, etc.) We are looking for JUST the drivers that someone from tech support can send us while trying to fix this problem.
  22. Hi Everyone, I was going to order an analog discovery 2 pro bundle but I qualify for the educational discount and wanted to figure out what accessories I really need. 1) Definitely wanted the BNC adapter board for $19.99 2) I can use any BNC probes with this, right? Like I could order them from Amazon, etc. or use existing ones that I have? 3) I need to measure current on a 5V circuit around 1-5 AMPS for a battery powered project. I bought two higher current .10 ohm resistors figuring I could connect probes against that to measure current and they would only slightly drop the voltage at these amperage ranges, but with a high resolution scope, I could go lower resistance. Or can I get probes that do this for me? 4) Do I need the Mini Grabber test clips -- what are they for? 5) What is meant by "The Analog DIscovery BNC adapter board does not have differential analog scope inputs? 6) Any other must have accessories? Thanks in advance for any help or input -- this looks like a great little device (and sniffing various protocols and simulating GPIO will be great)! MetroWestMA
  23. I want to capture UART data and SPI data at the same time in the Logic analyzer of Analog Discovery 2. UART baud is 115.2kHz and SPI is at 8Mhz. when i increase the sample rate, UART data is not captured. and without increasing the sample rate i can not capture SPI data. what is the optimal setting to capture both low frequency and high frequency signals at the same time?
  24. Waveforms allows the user to turn the power supplies on and off, and set the voltage for the Analog Discovery 2. How do you do this with the SDK? Also, what is the default setting? I cannot find anything in the documentation. Thanks!
  25. What is the maximum operating temperature of the Analog Discovery 2? Is there an ideal temperature range for accuracy, or is it just recommended to re-calibrate at different temperatures.