Search the Community

Showing results for tags 'analog discovery'.

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 113 results

  1. Hello, I have a first generation Analog Discovery, S/N 210244626692. It recently stopped communicating with my computer. I have tried different USB ports, different cables, and tried a classmate's AD on my computer. The classmate's AD was recognized by Waveforms, but mine was not. Nothing shows up in the Device Manager when my AD is plugged in. -Nat
  2. Hi, since forum search did not yield much on subject and there seem to be no built in functions did write little something and decided to share below: Script is quite automatic. It will account for sampling rate, memory depth, oversampling changes in real time - just run it to auto create and configure Ref* channels that will display functions. Possible need fiddle Range a little for integration. If wish reset to auto values just disable/delete Ref* and it will instantly re-enable in default configuration. Attached script is provided in demo mode, does integral(derivative(x)) functional check and integral(x). Unneeded doMath*() stuff can be commented out in main() function. If wish for derivative to start from 0 (currently it will remember DC offset for later signal reconstruction) set bDerivativeRetainsDCOffset = false; Code that accounts for Time changes is quite generic so script can be easily expanded with other doMath*() routines. Code tested on: WaveForms version 3.8.10 beta 64-bit Qt5.6.3 Windows 7 // Derivation/Integration for WaveForms, v0.1 // By lab!fyi <> // // This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. // Uncheck or delete Ref[1|2] in Run mode to reset units to automatic values // Config bDerivativeRetainsDCOffset = true; oChannel = Scope1.Channel1; // Used for Ref config detection // Derivative >>> function _derivative(aIn, aOut) { aOut[0] = 0; if (bDerivativeRetainsDCOffset) { aOut[0] = aIn[0] * iSTRate; } for (var i = 1; i < aIn.length; i++) { aOut[i] = (aIn[i] - aIn[i - 1]) * iSTRate; } } function derivative(oIn, oOut) { var aO =; _derivative(, aO); = aO; } // <<< Derivative // Integral >>> function _integral(aIn, aOut) { var f = 0; for (var i = 0; i < aIn.length; i++) { f += aIn[i] / iSTRate; aOut[i] = f; } } function integral(oIn, oOut) { var aO =; _integral(, aO); = aO; } // <<< Integral // Config >>> function getSTRate() { return Scope1.Time.Rate.value * ( / Scope1.Time.Samples.value); } function config(oIn, oOut, fScale) { if (!oOut.enable || !oOut.checked || bInit) { oOut.setEnable(true); oOut.checked = true; oOut.Clone(oIn); oOut.Range.value *= fScale; print ( "(Re)Enabled/Checked & Cloned " + "'" + + "'" + " -> " + "'" + + "'" ); } if ( ( != || (iSTRate != getSTRate()) ) { var iRange = oOut.Range.value; var iOffset = oOut.Offset.value; oOut.Clone(oIn); oOut.Range.value = iRange; oOut.Offset.value = iOffset; } } // <<< Config // ------------------------------------------------ function doMath1(oIn, oOut) { config(oIn, oOut, iSTRate); derivative(oIn, oOut); } function doMath2(oIn, oOut) { config(oIn, oOut, (1 / iSTRate)); integral(oIn, oOut); } function main() { if (!('Scope1' in this)) throw("Please open a Scope instrument");; iSTRate = getSTRate(); while (Scope1.State.value == 6) { while (Scope1.wait()) { // integral(derivative(x)) doMath1(Scope1.Channel1, Scope1.Ref1); doMath2(Scope1.Ref1, Scope1.Ref2); // integral(x) doMath2(Scope1.Channel1, Scope1.Ref3); bInit = false; iSTRate = getSTRate(); } } } // ------------------------------------------------ bInit = true; main(); Scope1.stop(); derivation_integration.dwf3script
  3. Kamran

    64 bit LabView driver DLLs needed

    64 Bit LabView 2017 DLLs are not available anywhere. 32 bit DLLs all generate errors. Is there a solution for this? Best Regards... Kamran
  4. Hello, I ordered a brand new Analog Discovery bundle directly from Digilent a few weeks ago for use in a college class, but every time I have attempted to build a simple circuit and connect the board to WaveForms, I consistently get one of the two attached errors. The components of the parts kit have been working fine but it seems like there is a problem with the amount of power being supplied to the Analog Discovery board itself. Any help would be greatly appreciated. Thanks, bucklc2
  5. Dear Digilent Support, I have erased an EEPROM of FT232H of Analog Discovery (not Analog Discovery 2) due to my mistake. Launching WaveFormus "No supported device detected." is displayed. Could you tell me the setting of FT_Prog? Related discussion Thank you in advance. Best regards,
  6. I have been following many Analog Discovery users trying to use it in Raspbery Pi and also about the problems. I've got a little tutorial on how to use Analog Discovery with Orange Pi PC Plus, an excellent alternative to power the system.
  7. When I use the waveform generator on my analog discovery 2, the input signal produced has started clipping at around -1.2 or so. I tried it on multiple computers and tried each type and setting and cannot produce correct results. When the amplitude is set to 1V the negative swing does not reach all the way to -1 but the positive swing is correct. When amplitude is greater than 1V it clips on the negative swing. Anyone know what could be wrong?
  8. Hello there!! I'm trying to do capacitance measurements over the time with a Analog Discovery 2 NI edition and save then, as the code on the image below. But now, I need to implement 2 things in this script, wich I would like to know if it is possible to. 1) Save the measurements acquired automatically in a file on the computer (like a .txt or anything like that) 2) Make the script change the frequency of the Impedance meter as it run ( for example, acquisition 0 to 4 runs in 10kHz and 5 to 9 runs in 5kHz) If it is possible, how could I implement that on my script ? Thanks everyone for the attencion!
  9. attila

    SPI Sniffing with WF SDK

    Hello, I've got a question on how to sniff SPI data using Analog Discovery with the WaveForms SDK. The following example uses "sync record" which only stores samples on SPI clock or select (rising) edge. This lets you capture SPI data with an average bit rate of around 2MHz. SPI bursts of up to 40MHz are supported but the average rate needs to be lower.
  10. Hello, What I would like to do is generate N number of arbitrary signals (regardless of Run time). So I configure digital channel as Custom, I then select Samples to be "N" from which a CSV file contains the N logic signals. I also select the Idle signal as appropriate. Now With Waveform 2015, pattern generator has Wait, Run, Repeat configurations. None of these configuration combinations results in just N logic signals and idle for the remaining duration. They always repeat the generation. For example, if I select Wait: None, Run: 20ms, Repeat:1 , there is no repetition which is what I want. But if I select, Wait:None, Run: 200ms (or any higher), Repeat: 1, now the samples repeat. Why would they repeat and how to configure them not to ?
  11. 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.
  12. During device opening internal chips are enabled and configured. This results in consumption increases, specially when the 100 MHz clock (PLL) is started. The needed current increases from 100mA to 500mA. In case the USB can't provide enough current the voltage drops below the minimal required for the device to operate and communication fails. In case you get “Device configuration failed (PLL 1)" or "Communication with the device failed.” error message: The device needs at least 2W/400mA from USB cable. To satisfy this: - Try to use different USB cable and computer plug. - Use the USB plug on the back of the PC, not the one on the front panel. - Use short cable, do not use long cable or cable extender. - Use powered USB-hub, avoid un-powered hub. - Use USB-Y cable to load power from two plugs. Device not detected by WaveForms: Open Windows Device Manager then connect the device and wait up to one minute for a device to appear: - USB Serial Converter, with warning - Connect the device directly to the computer's USB plug without using external hub. - Restart the computer. - Reinstall WaveForms, including the Adept Runtime section. - USB Serial Converter, without warning - Restart the computer. - Reinstall WaveForms, including the Adept Runtime section. - Other application might have erased the USB controller EEPROM (FT_Prog, programming cable drivers...) Use the "My device is not listed" button in WaveForms application Device Manager to reprogram the EEPROM. - Unknown Device Check the Hardware IDs under device Properties, Details tab - USBVID_0403&PID_6014 The USB driver is not installed. - Restart the computer. - Reinstall WaveForms, including the Adept Runtime section. - USBVID_0000&PID_0000 Device not identified or malfunction. See "Nothing shows up". - Nothing shows up: - Connect the device directly to the computer's USB plug without using external hub. - Try to use different USB cable and computer plug. The device or its plug might be damaged.
  13. Hi, I am working on a project and I want to incorporate the Discovery for Data Collection. I was wondering is there a way to automate the collection of data using analog discovery so I don't have to launch Waveforms each time to collect data? My project will only include the Analog Discovery as another puzzle piece, there are other boards and chips that will be connected to the discovery for data collection. Once I collect data I would want to pass it on for processing and interpretation. I am hoping to use Python to control the whole system if possible and make most of the processes automated. Eventually I would want to display results to a user in a graphical form (hence the need for Python)
  14. Using the analog discovery with waveforms 3, it seems like the UART interpreter is telling me things that are incorrect. I could be completely wrong, and maybe I don't know enough about UART framing to tell, but if that's the case let me know, The data stream I am sending is arranged like so: [FF pad byte] - [data(lower 6 + 2 tag bits)] - [FF pad byte] - [data(upper 6 + 2 tag bits)] - [FF pad byte] - [checksum] To get a much better look at the bits, go to: Then hover over the image at my photobucket, and click the zoom icon that appears in the top right. As you can see, those bits appear to be there, correctly, but the interpreter doesn't seem to think so. Byte 1, the first FF, is recognized successfully. Byte 2, the first data + tag bits, is marked as "Framing Error". From what I understand, framing errors occur when the STOP bit does not occur at the correct time. Clearly however, the STOP is bit is there, as the signal is HIGH where STOP is marked. Byte 3, the second FF, is recognized successfully. Byte 4, the second set of data + tag bits, is marked as "BREAK". What this means, I have no clue. The line drops low after the last FF so why isn't this recognized as a new start bit? I also believe that set of bits is correct. Byte 5, the last FF, is correct. Byte 6, the checksum, is also marked as "BREAK", yet appears to correctly be there. Also, this interpretation is heavily dependent on my time scale. The above image is at 0.01ms/div (20 MHz) At 0.02ms/div (10 MHz), the "BREAK"s go away, and are replaced with framing errors (still, seemingly incorrectly). And you can CLEARLY see that bit #7 in the second packet is a 1, yet the interpreter tells me the value is "h0" Finally 0.05ms/div(4MHz) All the errors are gone, and the 2nd packet is supposedly an h80
  15. Hi re Analog Discovery 2 Configuration in Device Manager is kept default: Scope 2x8k Wavegen 2x4 k Logic 16 x 4k Patterns 16x1k Question: Can Wavegen and Patterns be triggered simultaneously and generate output in parallell, 2 analoge channels and 16 bit logic simultaneous and perfectly syncronized ?
  16. HI , iam using Analog Discover 2 NI edition, for the first time, i used and measured the RC circuit analysis with Waveform 2015 ,i connected with USB and also external supply also i connected , when i opened digilent waveforms its directly connected and status is OK, then i measured , but all of sudden after its not at all detecting the device, when am selecting the current device in configuration settings its saying the error :DptilO failed ERC:0x2, the device is using by another application .device programming failed .i had used for other PC also saying the same, my Lappy USB serial drivers are also working fine. i connected another analog discovery first version its detected and working fine , but am facing the error when connected with analog Discovery 2 NI edition i uninstalled waveforms 2015 and again installed, rebooted my windows 8.1, windows 7 , but the same error is comming .DptilO failed ERC:0x2, the device is using by another application .device programming failed. Kindly help me to sort out he issue Reagrds Samuel Christopher Sr.FAE-Technical
  17. Hi, so I am trying to complete a project for one of my classes and I decided to us the script part of the analog discovery; however, there is not enough comments on the code to explain what it is specifically doing. I found an example code that is titled "Wavegenpiano". I would like to know if someone can explain what that code is doing., ie, what each part of the code is doing. I would like to use that code associated with a buzzer to output a song. TL;DR How can I use the script part of the analog discovery to have a buzzer output out a sound?
  18. I want to be able to output a .wav file. I can output a sine wave just fine from python, but I'm having trouble with this. I am loading the wav file. The array is populated. I've been looking for a funcPlay example, but I have not found any. I am able to import the file into waveforms and send it out using play. Thanks. import numpy as np import import matplotlib.pyplot as plt import ctypes import winsound from ctypes import * import time from dwfconstants import * import sys rate, data ='/Users/don/1.wav') plt.plot(data) sin_data = np.sin(data) 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() channel = c_int(1) # print DWF version version = create_string_buffer(16) dwf.FDwfGetVersion(version) print("DWF Version: {}".format(version.value)) # open device print("Opening first device...") dwf.FDwfDeviceOpen(c_int(-1), byref(hdwf)) c_double_p = ctypes.POINTER(ctypes.c_double) data_p = data.ctypes.data_as(c_double_p) if hdwf.value == hdwfNone.value: print("failed to open device") quit() print("Generating audio...") print("Configure and start first analog out channel") print("Generating custom waveform...") dwf.FDwfAnalogOutNodeEnableSet(hdwf, channel, AnalogOutNodeCarrier, c_bool(True)) dwf.FDwfAnalogOutNodeFunctionSet(hdwf, channel, AnalogOutNodeCarrier, funcPlay) dwf.FDwfAnalogOutNodeDataSet(hdwf, channel, AnalogOutNodeCarrier, data_p, data.size) dwf.FDwfAnalogOutNodeFrequencySet(hdwf, channel, AnalogOutNodeCarrier, 44100) dwf.FDwfAnalogOutNodeAmplitudeSet(hdwf, channel, AnalogOutNodeCarrier, c_double(2)) dwf.FDwfAnalogOutConfigure(hdwf, channel, c_bool(True)) dataLost = c_int(0) dataFree = c_int(0) dataCorrupted = c_int(0) psts = c_int(0) dwf.FDwfAnalogOutNodePlayStatus(hdwf, channel, AnalogOutNodeCarrier, dataFree, dataLost, dataCorrupted) dwf.FDwfAnalogOutStatus(hdwf, channel, psts) print("psts: {}".format(psts)) print("dataLost: {}".format(dataLost)) print("dataFree: {}".format(dataFree)) print("dataCorrupted: {}".format(dataCorrupted)) while psts != DwfStateDone: dwf.FDwfAnalogOutNodePlayStatus(hdwf, channel, AnalogOutNodeCarrier, dataFree, dataLost, dataCorrupted) dwf.FDwfAnalogOutStatus(hdwf, channel, psts) dwf.FDwfAnalogOutNodePlayData(hdwf, channel, AnalogOutNodeCarrier, data_p, data.size) # if state == c_int(0): # print("state is 0") # dwf.FDwfAnalogOutNodePlayData(hdwf, channel, AnalogOutNodeCarrier, data_p, data.size) # print("Configure and start first analog out channel") # dwf.FDwfAnalogOutEnableSet(hdwf, c_int(0), c_int(1)) # print("1 = Sine wave") # dwf.FDwfAnalogOutFunctionSet(hdwf, c_int(0), c_int(1)) # dwf.FDwfAnalogOutFrequencySet(hdwf, c_int(0), c_double(3000)) # print("") # dwf.FDwfAnalogOutConfigure(hdwf, c_int(0), c_int(1)) time.sleep(10) print("done.") dwf.FDwfDeviceClose(hdwf)
  19. I have an analog discovery and connected with the USB cable to my computer Windows 7 and it gives me this error.
  20. After going through a range of the SDK examples, I'm running into some strange behavior that I'm hoping someone can help explain. The result I'm trying to achieve is sending out a low duty cycle pulse (Digital or Analog but something similar to a TTL) that triggers the repeated acquisition on the Analog Discovery. I can achieve this result using the GUI but would like to insert this process into a python script so I can process and save the data. When I route W1 into CH1 in the following example what I see is expected. However, when I try to route the digital out into CH1 things look extremely wonky. Again, I'd like to see a waveform that would be considered a PWM waveform that has a duty cycle of ~99% low and I'd like to be able to control that duty cycle with a reasonable degree of precision and accuracy. Any help would be appreciated and hope the solution is easy as I've been staring at this entirely too long. Am I just trying to put too many points into the digital out? Another potential solution that I'm not entirely sure how to implement, is loading a custom waveform from a file and running that through the waveform generator. Is there an example for that that would also fit with the DAQ needs? Cheers, Brian
  21. I try to receive data with an Analog Discovery Kit (AD) from a FPGA written with my own protocol. Three signals enter the AD: Clock, Trigger, and Data. At the rising edge of the trigger, I would like to sample 16 bits from the data synchronous to the clock (around 20 Mhz). How can this be done with an AD and SDK? With an FPGA writing this is a matter of minutes, but some how I cannot wrap my head around this. Below is the code I am using, but sadly it returns only 0x0000 or 0x000. How to receive data in this way? Cheer, VonPuffelen FDwfDigitalInConfigure(AnalogDiscoveryHandle, false, true); // start sampling STS sts; unsigned int timer = 0;// wait for receiving do{ if(!FDwfDigitalInStatus(AnalogDiscoveryHandle, true, &sts)) // pull for trigger event { printf("AcquireErro(42)"); return 42; } timer++; }while((sts != stsDone) && (timer < 0x1FFF)); FDwfDigitalInStatusData(AnalogDiscoveryHandle, data, length*sizeof(unsigned short)); // fetch data from IO buffer. FDwfDigitalInConfigure(AnalogDiscoveryHandle, false, false); // stop sampling
  22. Hello, For one of my school projects we were asked to find the minimum signal that will give a signal to noise ratio of 10 dB. How would I go about finding this? I know that the Spectrum Analyzer for the Analog Discovery would be used but I am unsure of how to find the signal to noise ratio of a signal. Thank you, cjobi247
  23. mustafayilmaz

    Real signals

    Labview very complicated for analog discovery. I want to process real signals simply. İs there any way Analog discovery scope using as analog input/output? (And digital signals) Like this :
  24. I want to create a little circuit to connect straight to the analog discovery 2 using an analog multiplexer and some of the digital outputs to enable lower sample rate measurement of multiple channels. Would there be a part number for a suitable mating connector for the inputs and outputs of the analog discovery/analog discovery 2?
  25. Hello, I am a new user of analog discovery. I have an Arduino talking to my sensor through a 5v to 3.3 V level converter using I2C protocol. The code works fine and gets me the desired output on the serial port but when I try to connect the SDA and SCL lines to the analog discovery on the pin 7 (Data) and Pin 15 (clock) lines, I dont see any signals getting recorded. I am interested in seeing the clock and data lines with the addresses and data that is being written on the lines. But it either gives me Error status or no result after getting triggered. The snapshot is attached below: I wanted to know if I am following all the necessary steps in initializing the analog discovery. 1. Connect the wires to the 2 digital lines of analog discovery ( Pin 7,15 here) 2. Assign the right DIO pins as data and clock lines in the waveforms software. 3. Click the Red T button to set the trigger option. --> Start signal as trigger is the condition I used in the image below. but I also tried different trigger settings like, SDA = Ignore and SCL = Rising edge. Both of them gives me the error blocks as below. 3. Click Run button 4. Reset the Arduino. 5. Stop. I am interested in seeing the start, addresses in hex, ACK/ NACK signals labeled. Can anybody tell me if there is some required program to be run before I able to see them? Thanks & Regards,