Search the Community

Showing results for tags 'analog discovery 2'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • News
    • New Users Introduction
    • Announcements
  • Digilent Technical Forums
    • FPGA
    • Test and Measurement
    • Measurement Computing (MCC)
    • Add-on Boards
    • Digilent Microcontroller Boards
    • Non-Digilent Microcontrollers
    • LabVIEW
    • FRC
    • Other
  • General Discussion
    • Project Vault
    • Learn
    • Suggestions & Feedback
    • Buy, Sell, Trade
    • Sales Questions
    • Off Topic
    • Educators
    • Technical Based Off-Topic Discussions
    • Archived

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start





Website URL







  1. Hi Attila I am now the proud owner 3 Digilent Analog discover devices . ( 2x AD2 & 1x ADP3250 ) I have posted many post on the forum you can just make search for SIB in the forum and you will find all my posts. I would like you help to get this standard driver set up and running using the Java script engine of Waveforms . Below is the script that I want to get working and also is a waveforms work bench file also . This is after all the real power of the waveforms work bench and Analog discovery and professional devices Best wishes Simon --------------------------------------------------- function UART_data_collect() { // ------------------------------------------------------------------------------------------------------------ // // The aim of this script is to collect data from a UART serial stream from a embedded microprocessor board // and process the data from serial stream and display the result on the scope display // // ------------------------------------------------------------------------------------------------------------ // // Status // // 1) Code executes without error // 2) Code does not receive data from the UART serial port // even through the same ports are used manually to recieve data // from MCU using the manual protocol window with the same settings. // Steps to add A) Serial stream Protocol handler B) Scope display script // // ------------------------------------------------------------------------------------------------------------ clear(); // clear Output log if(!('Protocol' in this)) throw "Please open the Protocol instrument"; if(!('Scope' in this)) throw "Please open the Oscilloscope instrument"; Protocol.Mode.text = "UART"; // make sure UART tab is selected Protocol.UART.TX.value = 0; // Set up UART TX pin on Digilent AD2 :: DIO_0 Pin Protocol.UART.RX.value = 1; // Set up UART RX pin on Digilent AD2 :: DIO_1 Pin Protocol.UART.Bits.value=8; // Sets or gets the UART number of bits. Protocol.UART.Parity.text="None" ;// Sets or gets the parity setting: “None”, “Even”, “Odd”, “Mark (High)”, “Space (Low)”. Protocol.UART.Rate.value=234000; // Sets or gets the baud rate setting Protocol.config(); // apply configuration changes now Protocol.UART.Receiver(); // reset receiver - that is too start receiving data print(" UART Serial Bus initialised . Beware this is 3V3 Logic RS232 & Not True +/- 15V Rs232" + "\n\r" ); print(" UART TX line connect to AD2 DIO Port " + Protocol.UART.TX.value + "\n\r" ) ; print(" UART RX line connect to AD2 DIO Port " + Protocol.UART.RX.value + "\n\r" ) ; print("\n\r"+" UART initialisation complete " + "\n\r" ) ; Scope1.Time.Rate.value = 0.2; Scope1.single(); //Scope1.wait(); Scope1.Ref1.Clone(Scope1.Channel1); Scope1.Ref2.Clone(Scope1.Channel2); Scope1.Ref1.enable = true; Scope1.Ref2.enable = true; var rx = [] var rx_process = [] while(wait(0.2)) { // wait 0.2 sec and repeat while not stopped rx = rx.concat(Protocol.UART.ReceiveArray()) // append new words if(rx.shift()!=0x0A) { continue; } else { // read one of text ; rx_process=rx; rx=[]; Print( rx_process ); } // (rx.length>10) // if(rx.shift()==0xAA) continue; // if (rx[1] == 0xB5 && rx[2]== 0x11 && rx[7] == 0x09) // { // find the temperatures for displaying // // // print ("Temp 1: " + (rx[8]/2).toFixed(1) + " °C Temp 2: " + (rx[9]/2).toFixed(1) + " °C"); // // } // decimal data devided by 2 bring °Celsius // // = } // // ref // // // // notes // ===== // // 1. On the AD and AD2 the digital IO pins use LVCMOS 3V3 standard. These are supplied at 3.3V and have 200 Ohm PTC and clamping diodes to GND and to 3.3V for protection. // It will drive the digital wires at 3.3V and connecting 5V signals directly, without series resistor, it will sink about 10mA through the PTC and 3v3 diode. // As for noise, make sure to have ground connection between the two devices. // // 2. The WF/Protocol/UART uses the Stop length option only for transmission, this is not relevant for reception. // // 3. The UART TX filed lets you type in characters, hexadecimal values are not supported here. // Special chars you can copy/paste from other place or send from file. } //************************************************************ // Main program block : Start //************************************************************ clear(); // clear display screen print(" Script Main body start " + "\n\r "); UART_PID_data_collect(); //************************************************************ //************************************************************ // Main program block : Stop End ADP3250_UART_DATA_TO_SCOPE.dwf3work
  2. I'm generating 1V(p-p) on W1 and 500mV(p-p) on W2 with zero phase on both the channels with my Analog Discovery 2 board. Initially it is showing a phase difference of about 30degs . Then, every time I stop and rerun the waveform channels the phase between W1 and W2 is not stable. What is the reason for this and what are the possible solution for this problem? Thanks Satya Prakash Singh
  3. What circuit methods do you recommend for keeping digital input signal transitions from showing up on the analog inputs? I'm using the AD2 as a mixed-signal scope to view low-amplitude differential analog signals and twiddle/debug GPIO bits from an MCU (48 MHz). I'm using the flywire harness (connected to a custom PCB mounted on an NXP FRDM-KL25Z MCU eval. board). The analog signals are picking up the transitions on the digital input signals and ringing at ~40 MHz. Adding a series resistor (e.g. 1k) reduces the noise about 5x, and capacitor (e.g. 10 nF) does by about another 2x, though I haven't looked at the impact on signal timing perceived by the AD2. Before I spend too much time reading up on snubber networks and RC filters I figured I'd ask if your other customers have run into this and what the common solutions are. Thanks for any help! Alex
  4. Hi, I'm using Analog Discovery 2 to perform data acquisition through the two channels of the Oscilloscope, using the code available in the SDK as a base. However, when the sampling frequency is greater than 600k Hz, samples are always lost and corrupted. For sampling periods longer than 120 seconds the losses are increased. Writing to a file takes almost the same time as acquisition, which makes the program uninteresting for the application I need. To minimize the effects of such a delay, I use a Thread that writes to file 'in parallel' with acquisition. With this, the problem of delay in writing to the file is satisfactorily minimized. However, the problem regarding corruptions and losses is not solved. The example program does not present any solution to this problem. It only requests that the sampling frequency be reduced, which is not satisfactory. After all, Analog Discovery 2 supports frequencies higher than those I want to use. Is there any implementation better suited to mitigate such an error? Thank you in advance for your help.
  5. Hello together, I've got a question about the Analog Discovery 2: What is the maximum output current of Wavegen channels W1 and W2 to ground? Background: I want to connect an LED (in series with a 220 ohm resistor) to a sinusoidal signal of 1Hz (Offset: 2.5V, Amplitude: 2.5V). If I now display the voltage on the oscilloscope, the curve is cut off at around 4.6V. I believe that the AD2 cannot provide the necessary current from 4.6V. Best regards, Johannes Weiß
  6. I use WaveForms 3.17.18 on Windows 11 with Analog Discovery 2. The wave generator output (W2) is directly connected to scope input CH1. W2 is set to 123.4567 Hz Sine wave with 500 mV amplitude. I set the Scope to 1kHz and its rage to 200mV/div. I use the built-in FFT in the range of 120 - 130 Hz with the Peak(V) setting. It normally looks good but periodically I get a strange reading like this: I'm not sure what is happening here, could you help me find out? I also made a screencap of this and uploaded here:
  7. I have just installed Windows 11 ARM64 on my Raspberry Pi 4. It works great, but WaveForms seems to be not able to start. After a successful installation I tried to run WaveForms beta v3.17.17 64-bit, and I got the following error: "The code execution cannot proceed because VCRUNTIME140.dll was not found. Reinstalling the program may fix this problem." Can I do something differently or is ARM64 Windows simply not supported (yet)?
  8. Hi Analog Discovery 2 with impedance adapter. I am trying to use the digital I/O (as output) that are not used by the impedance adapter 0-3 and 8-11. I mainly need 4 to control a front-end multiplexer for the impedance adapter. The adapter use I/O 4-7 and 12-15 as output. As soon the Impedance measure is triggered, these I/O goes to zero. Is there a way to control them or I need to use a second Discovery 2 to control the multiplexer and found some way to operate them in sync? Thanks in advance for any suggestions.
  9. 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
  10. I am trying to use the power supply and I keepy getting this message for V+. V- works just fine by itself. I have tried: reconnecting the Analog Discover 2 restarting my laptop disconnecting every cable and running the AD2 by itself connecting the auxillary supply Any help would be greatly appreciated!
  11. If I configure the SPI with mode 0 (polarity=0 and phase=0) and LSB in WaveForms SDK in the Digital Discovery or Analog Discovery 2, and I send the byte 163=0xA3=b10100011; I would see the following: Is it guaranteed that when there is a falling edge of SCLK, the MOSI takes the value just before the transition (the SCLK edge)? What I mean is; is the following image accurate:
  12. Good Day Techies, Some background information; I am currently using the SDK and I am running various test before I move forward using this AD2 on a major project. For most of the basic things this device works remarkably. Some questions I would love some insight on: a. What is the maximum amount of Sample Points the Analog Discovery 2 can store/output for a Custom AWG? - Using the API call FDwfAnalogOutNodeDataInfo it returns 4096 Samples as the Max Sample Count. b. Is there any way that this can be increased? c. If this can't be increased, is there a work around that can be used to store/output larger Custom AWG's? d. For major real world applications is this an appropriate device or should one look into the Discovery Pro? Thank you again for all of your assistance.
  13. I have a device that has a single 16-bits SPI shift register (for both transmissions and receptions). It responds to falling edges of SCLK. The input of the shift register is connected to MOSI and the output to MISO, as the following figure. As the MOSI signal is input to the first flip-flop of the shift register, it should remain stable (not change) during a falling edge of SCLK, while MISO changes its value during a falling edge of SCLK. This way, MISO and MOSI signals are not synchronized. I want to communicate with this device using WaveForms SDK. Is there a way to configure the SPI communication correctly? With this I mean: is there a way of generating the SCLK and MOSI signals as shown in the figure above, and sample the MISO data in each rising edge of the SCLK? I suspect functions FDwfDigitalSpiRead16 and FDwfDigitalSpiWrite16 assume MISO and MOSI signals are synchronized; so no SPI polarity and phase configuration would work correctly.
  14. Are there any differences between Python and C++ version of WaveForms SDK API functions with respect to execution time of the functions?
  15. I'm following these instructions: I installed Digilent Waveforms and the Labview Package Manager (VIPM) and I get to the instructions to double click on Digilent Waveforms VI to install it. It won't install and I get an error 8 which I found information on here: I've tried the suggestion at the above link to allow to run as administrator (doesn't actually say that in the menu options, but I shared the folder). I also tried running it as administrator and I get the same error 8. So I'm assuming it's a permission error. I was able to install the AD2 Toolkit through VIPM. Here's some info about my system: WIndows 10 Waveforms 3.14.3 (64 bit) installed Labview 20.0.1 (64 bit) VIPM installed AD2 Toolkit installed Analog Discovery 2 is recognized in Waveforms Any suggestions? Thanks!
  16. Is there any way to program an interrupt when a digital input pin goes high in WaveForms SDK with Analog Discovery 2 or Digital Discovery? I want to write a code (using WaveForms SDK), with which I wait for a digital input pin to go high. After the pin goes high, I want to continue with the program. Something like the following code: # Some code while (not digitalInputPinIsHigh()): continue # Continue with the program The problem is that the pin's output is a pulse that is only high for 30 μs, so if I continuously check the digital input pin until it goes high, I think I can miss the pulse. Is there a way to program an interrupt (some code/function that is executed when the pin goes high)? Something like the following code: def ISR(): digitalInputPulseArrived = True # Some code digitalInputPulseArrived = False while (not digitalInputPulseArrived): continue # Continue with the program
  17. I want to do the following with WaveForms SDK: communicate through 1.8 V SPI read 2 digital 1.8 V inputs generate a digital 1.8 V output generate a digital clock of 32768 Hz (low level 0 V and high level 1.8 V) Is this possible with a Digital Discovery or with an Analog Discovery 2 (or both)? I wanted to use an Analog Discovery 2, but I think I cannot set the digital voltage to 1.8 V (it is always 3.3 V). On the other hand, I do not know if a Digital Discovery does the trick, since: (Source: This means that I cannot communicate through 1.8 V SPI and read digital inputs/write digital outputs; am I right?
  18. Hi guys! First of all I want to say that I love my AD2 and all the support it gets from Digilent and the community! This little device helped me to conduct so many fascinating experiments that I could not have done without it. I learned a lot during the process and I consider myself an absolute fanboy ? Having said that, I collected a few feature requests (or rather wishes) over the last year that I would love to see in its next version. They are ordered by my personal priorities. Small (ideally Raspberry Pi model B-like) form factor Much bigger scope samples buffer Hardware accelerated built-in FFT (+API to get those) CTIA&OMTP microphone jack optionally routed to one of the scopes USB-C 3.0+ input with voltage readback (to support battery operation better) Scope up to 6 GHz (to measure WiFi, Bluetooth, GSM/5G signals) A few programmable onboard RGB LEDs (Built-in) impedance adapter with auto-ranging USB-C output with voltage/current/power consumption readback and PD (Power Delivery) support 2000+ mA power output Wavegen with built-in AM and FM support Script offloading and execution on AD On the software side I have big respect for @attila, who was always ready to answer my questions and even implement my feature request quickly. WaveForms is truly a fantastic piece of software! The only thing I would suggest is to hire a good UX-designer who could help the developer(s) to make a more intuitive UI and a better user experience overall. I'm following the new AD Pro lineup, but I think I'm not the target audience for them, I wouldn't buy such a physically big device.
  19. 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.
  20. Hi I'm a happy owner of an Analog Discovery 2. I bought it mainly to do frequency response measurements on power supplies with the Network function. It happens that the dynamic range isn't always sufficient so I would like to design a new BNC connector board with a programmable gain stage in the same fashion as the Impedance Analyzer for Analog Discovery board is connected and controlled via the GPIO. Is it possible within the Waveform software to include logic that will set the gpio pins (change the gain) depending on the previously measured signal level without having to write a new Network function equivalent? If not is there something in the pipeline for a future software version? Regards Joachim
  21. I currently have a Raspberry Pi 4B with Waveforms installed connected to a Digilent Analog Discovery 2. The device works as intended, and I have a VNC connection set up so that I can remotely use it. The Waveforms software itself has a weird feature where the keyboard seems to be mapped incorrectly. For example, the key '1' returns '9', '2' returns '0', etc... I have used a web browser and a terminal on the RPi and neither had the same feature. Any advice?
  22. 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.
  23. Hi, I am looking for an easy way to implement an i2c negative tester with analog discovery 2. The intention is to corrupt i2c telegramms, e.g. pull clock line low, to validate the handling of the affected microcontrollers. Therefore it is possible to analyse the clock and data lines and trigger on specific content. Does anybody already implemented and published it? Best regards Steffen
  24. 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.)