timmolter

Members
  • Content Count

    32
  • Joined

  • Last visited

  • Days Won

    1

timmolter last won the day on November 21 2016

timmolter had the most liked content!

About timmolter

  • Rank
    Frequent Visitor

Recent Profile Visitors

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

  1. Is there an updated Waveforms SDK Reference Maual, newer than the October 12, 2015 version that I have? The docs for `FDwfAnalogInTriggerPositionInfo` don't match the header file that comes with the SDK. DWFAPI BOOL FDwfAnalogInTriggerPositionInfo(HDWF hdwf, double *psecMin, double *psecMax, double *pnSteps); Thanks.
  2. Ah, that also explains why the captured window has the pulse near the middle! Good to know. Ok, I'll try to get things working with that.
  3. This is about the AD2 Waveforms SDK. I've been successfully capturing single pulses by setting up AnalogIn to trigger on a rising edge, waiting 20 ms, then firing a pulse. However, it fails when doing longer pulse widths (>1ms). I found that it stays in the prefill state (DwfStatePrefill = 5) for a long time before it gets into the armed state. See some samples stats below. sampleFrequency = 20000.0 time = 205 ms sampleFrequency = 6666.666666666667 time = 615 ms sampleFrequency = 2000.0 time = 2049 ms Lower than ~5000 Hz sample freq. I cannot even capture a pulse even if I wait until the armed state. Any ideas what I can do? Thanks in advance.
  4. Solved. It's the oscilloscope, not the analog out. If I run the following code on app startup, it's all fine: ///////////////////////////////////////////////////////////// // Analog In ////////////////////////////////////////////// ///////////////////////////////////////////////////////////// dwf.FDwfAnalogInChannelEnableSet(DWF.OSCILLOSCOPE_CHANNEL_1, true); dwf.FDwfAnalogInChannelRangeSet(DWF.OSCILLOSCOPE_CHANNEL_1, 2.5); dwf.FDwfAnalogInChannelEnableSet(DWF.OSCILLOSCOPE_CHANNEL_2, true); dwf.FDwfAnalogInChannelRangeSet(DWF.OSCILLOSCOPE_CHANNEL_2, 2.5); I got a clue from `analogin_record.cpp`: // wait at least 2 seconds with Analog Discovery for the offset to stabilize, before the first reading after device open or offset/range change Wait(2);
  5. Thanks. Any workaround to fix it? I tried setting the offset to zero at app start up, but still for the first "pulse experiment", could be minutes later, the offset os there only for the first pulse.
  6. Hi, When I use the SDK and create an analog out pulse, either custom or square, doesn't matter, I see this offset of about 0.03 V only on the first run through. I'm not sure if it's the AWG or the scope. Any ideas? Attached are screenshots showing what I mean. I can add my code if need be. Thanks in advance!
  7. Thank you for that info. Are there any docs that describe best practices like this?
  8. Hi, I just want to make sure I'm doing this right... For the app I'm developing, I have a few sliders and other widgets that define the parameters of a waveform. When something is changed I call: FDwfAnalogOutNodeEnableSet(idxChannel, true); FDwfAnalogOutNodeFunctionSet(idxChannel, waveform.getId()); FDwfAnalogOutNodeFrequencySet(idxChannel, frequency); FDwfAnalogOutNodeAmplitudeSet(idxChannel, amplitude); FDwfAnalogOutNodeOffsetSet(idxChannel, offset); FDwfAnalogOutNodeSymmetrySet(idxChannel, dutyCycle); return FDwfAnalogOutConfigure(idxChannel, true); Is it OK to do it this way or should I first stop the waveform with `FDwfAnalogOutConfigure(idxChannel, false);`? So far it seems to be working fine the way I have it, but I want to double check. Thanks! Edit: Same question for analog in. Can I just keep calling the following code block to update the analog in "on the fly"? FDwfAnalogInChannelEnableSet(DWF.OSCILLOSCOPE_CHANNEL_1, true); FDwfAnalogInChannelRangeSet(DWF.OSCILLOSCOPE_CHANNEL_1, 2.5); FDwfAnalogInChannelEnableSet(DWF.OSCILLOSCOPE_CHANNEL_2, true); FDwfAnalogInChannelRangeSet(DWF.OSCILLOSCOPE_CHANNEL_2, 2.5); FDwfAnalogInFrequencySet(frequency); FDwfAnalogInBufferSizeSet(buffersize); FDwfAnalogInAcquisitionModeSet(acquisitionMode.getId()); return FDwfAnalogInConfigure(false, true);
  9. Hi, I think I may have either found a bug or I'm doing something wrong. What I want to do is start and stop analog out. Here's how I'm doing it: Start FDwfAnalogOutNodeEnableSet(idxChannel, true); FDwfAnalogOutNodeFunctionSet(idxChannel, waveform.getId()); FDwfAnalogOutNodeFrequencySet(idxChannel, frequency); FDwfAnalogOutNodeAmplitudeSet(idxChannel, amplitude); FDwfAnalogOutNodeOffsetSet(idxChannel, offset); FDwfAnalogOutNodeSymmetrySet(idxChannel, dutyCycle); return FDwfAnalogOutConfigure(idxChannel, true); Stop // FDwfAnalogOutNodeOffsetSet(idxChannel, 0); return FDwfAnalogOutConfigure(idxChannel, false); Notice that `FDwfAnalogOutNodeOffsetSet` is commented out. In the commented out case, the waveforms does stop (I have an additional oscilloscope looking at it), but the DC offset remains on. To get the offset to go back to zero, I need to comment that line in to manually set it to zero before stopping the analog out waveform. So my question is, why do we need to manually set the offset before stopping the wave? Why is there a lingering DC output on that channel when stopping the waveform? Or am I not stopping the waveform correctly using `FDwfAnalogOutConfigure`? Thanks in advance!
  10. I noticed on your Reference page there is an empty section for Example Projects. If you wanted, you could add my project there as well. It's now working on Linux, MacOS and Windows 10! https://github.com/knowm/memristor-discovery
  11. Hi, According to the SDK docs, there are static and dynamic libraries for Windows. For my waveforms4j Java library, I'm having major issues trying to get it to work for Windows (Linux and OSX works), and I'm wondering if it has to do with the static and/or dynamic Windows libs. So my question is, why is there a static and dynamic library? Are they independent, and I could choose one or the other, or is one dependent on the other requiring me to use both?
  12. Hi JColvin, thanks for linking. Hopefully it's useful to others...
  13. If anyone is interested, I created a Java SDK for Waveforms: https://github.com/knowm/waveforms4j
  14. Thank you for the help. I am now able to create the single pulse. However, now I have new problem... How do I best coordinate the creation of the pulse and the capture of pulse with the oscilloscope channels via software only? I see a trigger mechanism, but it looks like it requires a physical external trigger. Is there a software trigger to coordinate a pulse and capture signal? What would be the best acquisition mode? I'm trying to create and capture a 50 ┬Ás pulse. Thanks in advance!
  15. Hello, I'm using the AD2 and the waveforms SDK. What I need to do is create a single square pulse, non-repeating. Is it possible with the SDK to do this? In other words, I need it to run for only a single period. Turning the generator on and off in software is just too imprecise. Thanks in advance!