Jump to content

Chazzo

Members
  • Posts

    16
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Chazzo's Achievements

Member

Member (2/4)

0

Reputation

  1. I am producing some documentation for a project I have been working on and I wanted to dig into the details of the accuracy for the AD2. I do understand ADQ Resolution, but I also understand that it doesn't describe the accuracy fully Here are the specifications that I found on the website: Accuracy (scale≤0.5V/div, VinCM = 0V): ±10mV±0.5% Accuracy (scale≥1V/div, VinCM = 0V): ±100mV±0.5% CMMR (typical): ±0.5% What is meant by "±10mV±0.5%"? Is this showing that it can be looked at two different ways? Oh, and what is "VinCM" stand for? Also, for the low gain side of the AD2 ±100mV would seem like a lot of potential error? In my testing while using the API set to -20V to +20V to test voltages, it seems plenty accurate with maybe about 5-10mV of noise. Albeit, maybe I have mislead myself thinking this is the case. Deliberate testing may adjust my expectations. What is meant by "CMMR"? I have been doing some Googling but I can only come up with CMR or "Common Mode Rejection" which is related to electrical signals. In general I am interested in how accurate the AD2 is and the specifications aren't quite making sense to me. Thanks for any input.
  2. @attila thanks for your thoughts much appreciated. I have been doing more digging into documentation for the transducer and confirmed that it does operate @ 25 volts. I guess I'll need to use the analogIn if I am going to us the AD2 at all in that case.
  3. I have two main questions to ask on this thread. I have a flow sensor that outputs a quadrature signal. I imagine that it is easily within the D2 ability to read this signal in Waveforms. I believe this is an example of it being done --> Now can this be done with the python API as well? I have been looking through the SDK and I am not sure which script or if there are any that are well suited for reading a digital quadrature signal. Some I have looked at are Digital_Spi_Dual.py, and DigitalIn_Acquisition.py. Any pointers would be much appreciated. My second main question is regarding operating voltate for the transducer I am working with. It apparently uses 25v digital logic which I was surprised by. But the Discovery 2 only operates on 5V digital logic. Would any one know of where I could potentially source a digital logic converter that operates on such high voltages? There are plenty of 3.3v to 5v converters out there but I'm not aware of any off the shelf solutions for stepping from 25 to 5 volts. Thanks for any input.
  4. Is there any built in filtering functionality in the Wave Forms API? Specifically I am using the Discovery 2. I have been poking around in the SDK and can see that there are some filtering options like "filterDecimate", "filterAverage", "filterMinMax". None of these options appear to be something like a "butterworth" filter as can be implemented in in the Wave Forms Oscilloscope. For now I have implemented scipy digital filter in Python but I wanted to be sure I'm not missing out on leveraging some built in functionality. Thanks.
  5. Good news! I was able to figure it out. As you would have probably suggested it is the FDwfAnalogInStatusIndexWrite() function. I'm not the most familiar with ctypes so I messed around with the syntax and looked at some other variables and was able to figure out the pass by reference syntax. This was the functionality I was looking for!
  6. Hi @attila, thanks for you suggestions. I am recording slow signals. Some of the tests I am running can take several minutes to run. Just to clarify, is there a way to get the buffer write position using "IndexWrite"? In the documentation it states "The IndexWrite shows the buffer write position". Its been suggested that I can get the write position which should make it easy to identify new data and unique data to store. Or is it not what I think it is? I haven't found any examples using this variable or method. One thought I have is to compare the last buffer to the newbuffer dump. Simply remove all values that match and are also in a series to the previous buffer. This is assuming that the data is unique and I feel is bad practice. One area this may fail is if of course you are receiving a constant voltage.
  7. Thanks for your response @attila. Your response has given me a bit to think about. I was doing some more reading in the sdk and was reminded of acquisition mode 2 for FDwfAnalogInAcquisitionModeSet. The "Heart Scanner" mode. In the description it says: "The IndexWrite shows the buffer write position." I'm assuming there is a property or some method to retrieve this. I haven't been able to find an example using it. My hope is that it is a simpler way to align data. Maybe the circular buffer is doing a bit more than I need? I don't need any kind of triggering functionality, I just need to be able to take the new updated data from the buffer and append it the data being saved. Many thanks.
  8. I am having good success with building a GUI that is built around the analogIn_Record.py example. Thanks to those that have helped me get this far. I'm looking to have the data aligned so that there are no duplicates from the buffer(the buffer as I understand is where the recently recorded data is kept in a serial fashion). I think I have correctly determined that I need to use the FDwfAnalogInStatusData2 function to do this. I have found the documentation to be a little limited, but I also have found this forum post as well -> https://forum.digilentinc.com/topic/9747-analogin-record-problem/ Despite the explanations I'm still having difficulty with understanding how to implement the function. I have also had a look at AnalogIn_record_Trigger.py as well. The circular buffer is interesting and it sounds like what I might need for my project but its not trivial with what it's doing so I will need to spend more time with it. Maybe its not what I need? Basically I am having trouble with knowing where to being. I've tried to poke at it and understand its behavior but I'm not getting anywhere to fast. Despite what I enter for a variable index it seems to still return the full buffer? I know I've kind of provided limited information. I don't want anyone to feel obligated "do the work for me" it for me but I think I could benefit from a push. Let me know what I can do help to provide understanding on my question. I'll provide updates on any other questions I may have. TLDR; In short I need a layman explanation of what the FDwfAnalogInStatusData2 does based on what index number is provided, and how i is used to align the data.
  9. Recently I've been getting familiar with Waveforms and the SDK for python. This is a bit of an "in theory question": Can you stream data via usb to a custom Python GUI for the purpose of generating a live custom plot? It's a bit of strange request and its kind of reinventing the wheel but for my use case its necessary to plot signals at scale and use overlays/reference data for test verification. I have attempted use features built into waveforms such as importing data into the waveforms software but the time based dependence on the data is not ideal for my use case. I have taken a look at some examples such as AnalogIn_Record.py, possibly AnalogIn_Acquisition.py, and some other forum posts. Making python GUI's is something that I have experience in already. The real question is if I can smoothly acquire live data. I mainly want to get a rough idea of what kind of a road may lie ahead and if there are other paths to go down that may be better. Many thanks.
  10. Thanks so much @attila. I have got it working. After getting your file in the same directory as the dwfconstants.py file I was then able to run the script successfully. My issue was that I was running dwf.FDwfEnum(c_int(enumfilterType.value|enumfilterUSB.value), byref(cDevice)) #only USB devices rather than dwf.FDwfEnum(c_int(enumfilterType.value|enumfilterDemo.value), byref(cDevice)) #only USB devices I noticed the commented out line and over looked the fact that it needed to be updated to "demo" My mistake. Glad I've got it working.
  11. Thanks @attila, for confirming that it does work. For me, when running the script with the: dwf.FDwfEnum(c_int(enumfilterType.value|enumfilterDemo.value), byref(cDevice)) #only USB devices commented in, I simply get: WF Version: b'3.18.16' Number of Devices: 0 From what I can gather (which isn't much unfortunately) dwf.FDwfEnum() is not seeing the Demo Device. As to why I am not sure and would greatly appreciate any leads. Many thanks.
  12. Thanks for you response @attila, I found a few scripts such as Device_Enumeration.py. After running those with various scopes and waveform generators open it appears the the Demo Discovery 2 is not compatible with with Python API? I'm worried that am missing something fundamental with getting this set up correctly. Many thanks.
  13. Thanks for getting back to me @attila , that's exciting then. Of course my next question has to be when this might be available of course. I think I saw an other post about this new software and it might be available in beta? When is the full release planned by chance? Thanks again.
  14. A pretty simple question hopefully. I was curious about automating tests with the Python based API. I have made an attempt to run some of the test scripts and they all fail to detect the hardware. Is it must to have the physical hardware or are their options to get the API to work with the demo program for development purposes? Many thanks.
  15. Thanks for your response @attila, I have dug into the reference options and the ability to import data and it looks promising now that I have that figured out. I have two signals that I want to plot against each other. The XY plotter option in the oscilloscope is the tool I need. However, can I plot multiple XY plots on one XY window? I'm not seeing this as an option unfortunately. I have "upper" and "lower" bounds that I would like to compare test data to which results in a need for 3 plots on one window. Many thanks.
×
×
  • Create New...