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 and the WaveForms software
    • 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


Last Updated

  • Start


Filter by number of...


  • Start





Website URL







Found 146 results

  1. Not sure if this is the correct thread, just made the account to post this since I cannot find anyone having a similar issue. So I am trying to install Waveforms. I am running a 64 bit operating system with Windows 10. Basically everything seems fine until after install. Any time I try and run Waveforms it doesnt run and I get an error message that reads exactly as: "The code cannot proceed because VCRUNTIME140.dll was not found. Reinstalling the program may fix this problem." Issue is I have tried un-installing and re-installing around four times now, including just re-installing without uninstalling the original download. I found a thread on Digilent that had some .exe's for repairing/installing Visual C++ and I have tried those to no avail. This system error shows up three times as well, so I believe the program is trying to launch and is missing some kind of pre-requisite software but from what I can see I have everything. I am sure its a 64 bit operating system, I am sure its Windows 10, and I know that the AD2 is not the problem, as it is not plugged in and it was working fine on my buddies laptop. Please help, I need this to work on my Senior Project during the quarantine and having these installation problems has put me behind, does anyone know where I can find this .dll and where I would need to place it for the software to work properly? Cheers, Eric Bettencourt
  2. Hello, I am building an SPI proof of concept for the Analog Discovery 2 in LabVIEW and I am unable to get the entire thing working, despite other successful LabVIEW projects that use the Analog Discovery 2. The issue I am having is that I am capable of generating an SPI message output where the AD2 is the master, but I am unable to get the expected response in the Rx array. The pinout is the clock is on pin 2, the chip select is on pin 1, the MOSI_SISO is on pin 4 and these three outputs are connected to an oscilloscope for observation. The MISO is on pin 7 and is connected to a pullup resistor to 3.3V on a supply separate from the AD2. I perform the following function calls in the following order after opening the AD2 and enabling the internal AD2 power supplies: DigitalSpiReset(hdwf), DigitalSpiClockSet(hdwf, 2), DigitalSpiDataSet(hdwf, 0, 4), DigitalSpiDataSet(hdwf, 1, 7), DigitalSpiSelect(hdwf, 1, 1), DigitalSpiFrequencySet(hdwf, 1000000), DigitalSpiModeSet(hdwf, 1), DigitalSpiOrderSet(hdwf, 1). I perform the following function calls in a while loop to continually send and receive a SPI message: DigitalSpiSelect(hdwf, 1, 0), DigitalSpiWriteRead(hdwf, 1, 8, Tx array, 2, RXarray, 2), DigitalSpiSelect(hdwf, 1, 1). If these functions worked as expected, I should get an Rx array back that has the values 0xFF for elements 0 and 1. Instead I get an Rx array back with 0 for elements 0 and 1. If I perform the exact same setup in waveforms, I can get the expected response with the exact same wiring setup. Please see the screenshot attached to this post. I am scratching my head on this one. I can achieve the expected results in Waveforms, so I know my hardware is working properly, but I cannot get them working in my own program. I don't know if I am missing an important SPI function call or what. Edit: I applied a scope probe to the MISO pin as well and the MISO pin is pulling down the input voltage as if it were an output. So my problem seems to be that the MISO line is not being correctly set as an input.
  3. I am a hobbyist, new to oscilloscopes. I recently purchased the Analog Discovery 2, the BNC Adapter and the BNC Oscilloscope 1X/10X Probe pair. I've read this post and this post, and followed this video on calibration, but, I'm not sure the AD2 and/or the probes are measuring properly or not. I cannot get square off the signals. The screenshots indicate the maximum I am able to deflect the signal when rotating the screw within the probes. From my understanding, rotating the screws in the probes should make the signals become square. Here's other information which may be indiscernible in the attachments, which may or may not be relevant (cuz I'm a noob). Both probes have the 1X/10X switch set to 10X The probes are both clipped to the W1 pin on the BNC Adapter board Both probes have their ground clip connected to one (and the same) of the flywire ground pins Both probes are set to DC Coupling on the adapter board JP4 and JP5 on the adapter board are set to 50 Ohm, though I don't think that matters because I'm not actually using the Waveform connectors on the adapter board In the screenshots, the channels are configured for "Attenuation: 1X" within the Waveforms software, but, a similar non-squareness occurs when set to "10 X" I'm using Waveforms 3.12.2 64-bit Qt5.6.3 on Ubuntu 18.04.4 The AD2 is connected to a USB3 port, directly attached to the computer (no USB hub) Any advice and/or guidance would be greatly appreciated, especially considering I may have missed something that would be obvious to an advanced user.
  4. We're excited about using the AD2 for a whole bunch of courses in our college as we teach online for the foreseeable future. One useful feature would be if we could get the raw A to D data from the scope channels so we can use them in LabVIEW. At this point, niVB_MSO_ReadAnalogDigitalU64 provides the voltages, all cleaned up, instead. Is there another dwf that provides the raw data, or could this feature be added to the next revision? At this point, I'm taking the voltage and converting it back to a step count using the step size, but we'd be just a bit more accurate if we had the raw data.
  5. Hi, I would like my Scope acquisition to start when I hit "Run" on Channel 1 of my Wavegen. How do I set up this trigger? This is for Waveforms 2015. Thank you so much!
  6. I assume that the Analog Discovery 2 detects an external 5V supply when it initializes and then uses it instead of USB power. Is this correct?
  7. Hello, bloody beginner here, I was wondering if it is possible to measure and tune an RFID HF antenna with the Analog Discovery 2. The documentation for the network analyser says it tops out at 10Mhz. The RFID antenna is at 13.56Mhz. Is it still possible to measure the antenna with the Discovery 2? Any help and advise is welcome on where to get started. Cheers
  8. The DIO0 and DIO1 pins (leads) on my Analog Discovery 2 seem to be frozen. I was trying to read digital signals and they stopped working like they did before. So I opened StaticIO on Waveforms and tested it. The other DIOs seem to read OK, but DIO0 is stuck high and DIO1 is stuck low. I don't remember doing anything that would fry these inputs, but it's certainly possible. Is there anything I can try to check this, or fix it? Thank you! Robert
  9. Hello, What is the difference between the "custom" and "sensor" tabs on the Protocol Analyzer in Waveforms? Are they used together? Where the custom tab gives the user the ability to write their own custom SPI Protocol and use it in the Sensor tab? And can I use them to develop a script that would control an SPI compatible 12-bit DAC. The goal is to read the 12 bit digital data from a file, with data ranging from 0x0000 to 0xFFFF (16 bits technically since the 2 MSB determine the DAC Power Modes and the 2 LSB are don't cares) and outputting that data from the Analog Discovery 2 to the 12-bit DAC
  10. Hello there, I am a student and have recently purchased the Analog Discovery 2 for my bachelors-thesis. I have been using scripts to take measurements with the Impedance Analyzer Tool for some time now but I cannot get the desired amount of impedance samples per second. I would like to ask any competent member of this board how I can achieve a higher sampling rate regarding the Impedance. Simply put, what would you do to get as many samples of Impedance per second. This is what I have tried so far: -Switching between the different buffer sizes upon initialization of the AD2 <---- This doubled the sampling rate in some cases but is far from what I need. -Reducing the averaging rate to zero <---- As expected, it improved the sampling rate but still doesn't get me the one I need. Thanks in advance to anyone that helps =).
  11. I am trying to find the script commands to access the Spectrum Analyzer in the Analog Discovery 2. I would like to specifically access the THD function to read a series of values at different frequencies (using the Wavegen), plot them and save them to a file. I am generally familiar with the use of scripts and have made them work on the scope, wavegen, etc. but cannot seem to find the commands to access the Spectrum Analyzer in Waveforms 2015. I have also used the debug function as well as the plot function so what I need are the specific access routines for the spectrum analyzer and its subfunctions (like THD, SNR, etc.)
  12. Hi everyone, just a quick message to present myself: I'm a professional IT-er and an amateur electronics enthousiast. My website can be found at: Website Some of my electronics projects are: Visitekaarduino Retro Z80 computer with stackable segments and memory mapping "War Dogging", the new war driving in miniature The reason I came to this forum is that I really like the AD2, using this device is like coming home. However, when going into scripting, I find the documentation rather non-existent. I know 18 different programming languages (ECMA-script / JavaScript is one of them) and I've never encountered a development environment that has so few information available. e.g. (I'll ask the question at the right place) When scripting a custom Math channel in the Scope instrument: I don't find any documentation if one can use other instrument objects as there are Wavegen, Logic, ... and if so, how to do it. So, I hope to learn a lot from all of you, and will help where and if I can. Kind regards.
  13. Is it possible to control the power supply and set the voltage of the positive and negative respectively? The aquisition toolbox of matlab (2019a) doesn't allow the possibility of controlling the power supply. The closets solution seems to be to use a h-file library from the SDK (see below). However the header of the h-file (dwf.h) says "This spans all 4 main instruments supported by the WaveForms system: Analog In, Analog Out, Analog I/O, and Digital I/O", the text doesn't leave any information about that the supply can be controlles as well. Further, looking through the functions in the h-file, it doesn't seem to be possible either - or have I missed a line? So the questions remains: how to control the power supply of the analog discovery 2? /Henrik Link to discription regarding using h-files from Matlab:
  14. Hi, I'm considering buying one of these to play with but I was wondering which version is best: the one from Digilent, or the NI edition from National Instruments. What exactly is different between both? Thanks! Stuk
  15. Hello, I am using Digilent Analog Discovery 2 and I began to explore its scripting capabilities. Do you know if there is a way to make calculations between the measurements between the 2 channels of the scope? In my case, I have 2 different sine waves and I need to subtract the Peak-to-peak value of channel 1 from Peak-to-peak of channel 2. Is there a way to do this in script? Thanks Karl
  16. Hi With the waveforms tool is it possible using python scripting in the Waveforms platform to do the following ?? Use the Digilent Analogue discovery 2 - Attach a device like a PMOD device eg accelerometer using the Analogue discovery 2 ability to chat SPI & IC2 - pmod DEVICES SUPPORT 12-pin Pmod connector with SPI interface and 2×4-pin I²C interface - Then using the read information from the PMOD device treat it like an extra oscilloscope channel . Either as a Analog channel or Digital channel depending on the the signal type acquired from the PMOD device. This is possible with Labview but that would also require a lot of code writing. If this is possible this is outstanding feature when considering all the available PMOD devices available from the list This would be a real product enhancement for Digilent and the Analog Discovery and help sell the AD2 in to many new places . Best wishes Simon
  17. Greetings! i'm working on a project involving the use of the Logic Analyzer function of the Analog Discovery 2. I have observed that its Record Mode can be used to capture huge samples of data. The only problem that I'm having is it takes too long for the Record Mode to fill its memory before returning results even when the sample size used is 20k. I would like to know if it is possible to make the Record Mode of the Logic Analyzer intelligent in a way by making it stop filling its memory when the data to be transmitted has already been received. Because the application that I'm using Record Mode for should do so in order to return results faster. Any advice would help a lot. Best regards, Lesiastas
  18. Hello, We have two analog discovery 2 devices. both are not able to use it or detect. One device is not getting detected, and temperature is going upto 50 degree C near usb connection. 2. 2nd one is telling already an device is connected Please help to solve this issues. I tried reinstalling the waveforms software, using device fix i programmed still no solutions. Regards LT
  19. 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
  20. Hi, I would like to measure control loop gain of DC-DC converter using AD2 network analyzer. Is it possible to add a digital filter to input channels of AD2 and measure gain and phase shift after digital filtering?
  21. Hello Community I am using the Analog discovery 2 controlled by a C# Software. At a certain point of the software, I need to check the length of a detected pulse. Before this, I prepare the digital in component of the device. private const uint BUFFER_SIZE = 4000; private const uint DIGITAL_IN_DIVIDER = 1000; private const uint CLOCK_FREQUENCY = 100000000; public void prepareForPulseDetection( int digitalIoIndex ) { checkDigitalIoIndex( digitalIoIndex ); // sampling frequency = 100 MHz / 1000 = 100 kHz (-> 10 us) dwf.FDwfDigitalInDividerSet( device, DIGITAL_IN_DIVIDER ); // just sample DIO pins 0...7 dwf.FDwfDigitalInSampleFormatSet( device, 8 ); dwf.FDwfDigitalInBufferSizeSet( device, (int)BUFFER_SIZE ); dwf.FDwfDigitalInSampleModeSet( device, dwf.DwfDigitalInSampleModeSimple ); // just one acquisition after trigger dwf.FDwfDigitalInAcquisitionModeSet( device, dwf.acqmodeSingle ); // setting triggersource to digital in detector dwf.FDwfDigitalInTriggerSourceSet( device, dwf.trigsrcDetectorDigitalIn ); // take 50 samples before trigger dwf.FDwfDigitalInTriggerPositionSet( device, (uint)BUFFER_SIZE - 50 ); // disable timeout dwf.FDwfDigitalInTriggerAutoTimeoutSet( device, 0 ); // set trigger to rising edge on DIO pin 0 uint triggeredPin = (uint)0x0001 << digitalIoIndex; // high low rising falling dwf.FDwfDigitalInTriggerSet( device, 0x0000, 0x0000, triggeredPin, 0x0000 ); // enable digital in without reconfiguring dwf.FDwfDigitalInConfigure( device, 0, 1 ); } private void checkDigitalIoIndex( int digitalIoIndex ) { if ( ( digitalIoIndex < 0 ) || ( 7 < digitalIoIndex ) ) throw new ArgumentException( "Digital IO index must be in array [0...7]" ); } /// <returns> pulse time in us </returns> public uint getDetectedPulseLength( int digitalIoIndex ) { checkDigitalIoIndex( digitalIoIndex ); var data = new byte[BUFFER_SIZE]; dwf.FDwfDigitalInStatusData( device, data, (int)BUFFER_SIZE ); var numberOfHighSamples = getNumberOfHighSamples( data, digitalIoIndex ); // 1e6 because of us return var usDuration = (uint)( DIGITAL_IN_DIVIDER * 1e6 / CLOCK_FREQUENCY ); usDuration = (uint)( usDuration * numberOfHighSamples ); // reset device, else it is not possible to // recognize if pulse occured dwf.FDwfDigitalInReset( device ); return usDuration; } private int getNumberOfHighSamples( byte[] data, int digitalIoIndex ) { if ( allZero( data ) ) return 1; // means pulse was shorter than samplerate else { int startingIndex = getStartingIndexOfPulse( data, digitalIoIndex ); int endingIndex = getEndingIndexOfPulse( data, digitalIoIndex ); int difference = ( endingIndex - startingIndex + 1 ); return difference + 3; // plus 3 because analog discovery return is inaccurate } } private bool allZero( byte[] data ) { for ( int i = 0 ; i < data.Length ; ++i ) if ( data[i] != 0 ) return false; return true; } private int getStartingIndexOfPulse( byte[] data, int digitalIoIndex ) { int index = 0; for ( ; index < data.Length ; ++index ) if ( checkBit( data[index], (byte)digitalIoIndex ) ) break; return index; } private int getEndingIndexOfPulse( byte[] data, int digitalIoIndex ) { int index = getStartingIndexOfPulse( data, digitalIoIndex ) + 1; for ( ; index < data.Length ; ++index ) if ( !checkBit( data[index], (byte)digitalIoIndex ) ) break; return --index; } private bool checkBit( byte value, byte checkedBit ) { byte shiftedValue = (byte)( (int)value >> (int)checkedBit ); return ( ( shiftedValue & 0x01 ) == 0x01 ); } The pulses are reliably measured. But the number of high samples is always smaller than expected. Most of the time, I expect the measured pulse three microseconds longer than it is. Is this a known issue? Or is there a mistake in my code? I am very sure, that the pulses I am sending to the analog discovery are as long as they should be. I checked it with the analog discovery with the waveforms software and with another osciloscope.
  22. Hi, I am trying to synchronize two sine waves referring to the sample file "analogout_sync.cpp" using the master and slave technique, but I feel like there is too much of a delay before the second wave is generated still. When I use an external oscilloscope, it shows that the sine waves are not in sync and the phases change for the waves every time the program is rerun, so I can't hardcode a phase to fix it. Is there any way to make sure I can sync the two waves using C++ code? Thanks
  23. Hi all, I use Analog Discovery 2 to generate a ramp up waveform and observe synchronously the response in the scope. The wavegen output W1 is wired to the scope input Ch.1. I want the scope to be triggered by the generated waveform, so that subsequent acquisitions yield signal that starts exactly in the same moment. I attach the VI that I have made to achieve this ( I use Configure Digital Edge to set up triggering. What I expect is that on each loop repetition the acquired signal would start in the same moment, but this is not the case. Each acquisition starts at an arbitrary moment and the signal moves visibly along the time axis. I am perfectly able to achieve the above using the WaveForms 2015 application (I attach the corresponding WaveForms 2015 workspace file), so I know that the hardware is capable of doing this. However, the experiment I need this for is controlled from LabVIEW and I would like to get the same result using the LabVIEW Driver for Analog Discovery 2. Thank you for any suggestions on how to achieve this from LabVIEW. sweep.dwf3work
  24. Hi there, Until here, I've done quite a few things, with the magnificient help of attila. I've done a lot a threads that can use the AD2 to record the analog inputs, or the digital inputs, that can configure the analog outputs or the digital outputs. When I run all of those threads together, it works perfectly fine (except for the tick of my PC, that doesn't allow me to be really fast with the digital outputs, but it's not a big problem for the moment). And then, the UART appeared. I have to say, it works great. The problem is with the UART and the digital outputs. When both are asked (for example logic '1' to DIO 0 and send "This is just a simple test to know if everything works fine" on the Tx at the <<same>> time, the DIO will wait for the end of the UART Transmit). I've tested with with another configuration for the digital output (pulse at 1kHz), and the AD2 stops the pulse when the UART appears. Is it normal or do I do something wrong? Thanks for your help Marc
  25. Greetings, I would like to replicate the result being captured by the Logic Analyzer GUI here: Is it possible to combine the Digital_UART and DigitalIn Functions to create a VB6 wrapper that will display results like in the GUI? I'm not sure if my hunch is correct or possible, but since the UART is a setting in the Logic Analyzer GUI: I suspect that we can implement the Digital_UART function into one of the DigitalIn APIs available in order to create a VB6 program to receive data that is composed of both: 1. Captured Bit Sequence of character sent (Like in the Data Line of the WaveForms GUI) , and 2. Its equivalent ASCII format (Like in the UART Line of the WaveForms GUI). Any advice? Regards, Lesiastas