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


Forums

  • News
    • New Users Introduction
    • Announcements
  • Digilent Technical Forums
    • FPGA
    • Digilent Microcontroller Boards
    • Non-Digilent Microcontrollers
    • Add-on Boards
    • Scopes & Instruments
    • LabVIEW
    • FRC
    • 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

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

Found 114 results

  1. Hi, I was using the wavegen to generate 2 sine waves and noted one weird behavior. - when I changed the amplitude of one channel the other channel also is affected (amplitude and phase) Before change (2V on each channel) After change (3V on each channel) The same behavior occurred on the last stable version and beta version (3.11.4). Thanks
  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 <info@lab.fyi> // http://lab.fyi/oscilloscope_scripts/derivation_integration/index.html // 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 = oOut.data; _derivative(oIn.data, aO); oOut.data = 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 = oOut.data; _integral(oIn.data, aO); oOut.data = aO; } // <<< Integral // Config >>> function getSTRate() { return Scope1.Time.Rate.value * (oChannel.data.length / 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 " + "'" + oIn.name + "'" + " -> " + "'" + oOut.name + "'" ); } if ( (oOut.data.length != oIn.data.length) || (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"); Scope1.run(); 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. 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
  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 https://forum.digilentinc.com/topic/2467-analog-discovery-2-ftdi-chip-erased/ Thank you in advance. Best regards,
  6. 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?
  7. 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!
  8. 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. DigitalIn_Spi_Spy.py
  9. 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 ?
  10. 64 Bit LabView 2017 DLLs are not available anywhere. 32 bit DLLs all generate errors. Is there a solution for this? Best Regards... Kamran
  11. 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)
  12. 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 ?
  13. 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
  14. 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?
  15. 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 scipy.io.wavfile import matplotlib.pyplot as plt import ctypes import winsound from ctypes import * import time from dwfconstants import * import sys rate, data = scipy.io.wavfile.read('/Users/don/1.wav') plt.plot(data) plt.show() 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("libdwf.so") # 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)
  16. I have an analog discovery and connected with the USB cable to my computer Windows 7 and it gives me this error.
  17. 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.
  18. 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
  19. 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 AnalogIn_Acquisition_5.py
  20. 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
  21. 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 :
  22. Hi, First, The Analog Discovery 2 is a very handy device and i am very pleased with all the functionality it offers. I got a problem with my device. The channel one of the wave form generator is not working any more. Here is the full the story. i mixed up the scopes for the signal generator and the oscilloscope and i ended up trying to measure a voltage of about 80v with the scope connected to waveform generator. As a result the device disconnected from my laptop. I noticed my mistake, unplugged the scope and tried to reconnect the device. It does show up in the list of available devices with all values of the register, S/N, state... But once i have clicked on 'select', an error pops with 'communication with the device failed'. I connected an external power supply to Analog D and this device can now be connected to Waveform (?!). If I try to set a sinusoidal signal on the channel one of the waveform generator, it shows either a clipped signal or absolutely nothing depending on the Vpp voltage. Also, their is a spurious 3V drop between ground and the output of the channel 1 To finish, the device warms up very quickely. Does anyone has an idea how to fix that ? To be honnest, i have made an huge mix-take with the device, do you think that someone at Digilent will agree to have look at the device ? Edit: Waveform indicates a consumption of 800mA / 4.8V on the AUX power supply, the temp is around 50 °C. Also there is a sound emitted by the device when connected, like a whistling. Best Regards, Nicolas
  23. I have been using my Analog Discovery to measure output signals from a 3-axis accelerometer (Adafruit ADXL377) during an impact test event. Being a 2-channel device I have to first measure the X+Y outputs then repeat the impact event measuring the Y+Z outputs. I export these data then use a bit of Python code to combine two tests into a single result whereby I calculate the total acceleration by summing the squares of each axis (X+Y+Z). I trigger the scope off the Y-axis and make the assumption that the Y-axis acceleration is the same in each of the paired impact tests (which seems a reasonable assumption for these initial tests). For any given "impact test" I repeat the test 10 consecutive times measuring the X+Y outputs then 10 consecutive times measuring the Y+Z outputs then combine these data onto 10 X+Y+Z data set for analysis. I see some differences in the combined X+Y+Z data depending on which set of Y output data is used for the combined X+Y+Z data. The impact test itself has some inherent variability so this dual measurement just adds to the "noise" so the number of experiments needs to increase in order to make the experiment results valid. It seems at first glance that if I bought a second Analog Discovery unit I might be able to simultaneously measure the X+Y outputs on unit "A" and Y+Z outputs on unit "B". I would setup each scope to trigger off the same Y output so presumably they would trigger at the same time. Has anyone tried this before?
  24. 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. https://www.hackster.io/agaelema/using-digilent-analog-discovery-in-orange-pi-pc-plus-b7e865
  25. In Waveforms 2015, is it possible to set up a wave in the AWG to be triggered by every other pulse in the scope? I'm currently trying to use a 10 Hz external pulse connected to the Analog Discovery's scope as the trigger for a 5 Hz waveform from the AWG, but I need to have the event trigger only once the 5 Hz waveform has finished one pulse. Effectively, I'm putting together a slower trigger for one device that's triggered from the AD's scope using a faster external pulse. It appears that Waveforms 2015 has some logic capabilities incorporated into the software, but as I don't have a background in logic circuits I'm not even sure if the logic circuit feature can work this problem out. Any help with this will be much appreciated~