Poll

What is your interest in the Hantek DDS 3x25?

I own one
36 (27.1%)
I am considering getting one
40 (30.1%)
Curious about the hack
16 (12%)
Just passing through
41 (30.8%)

Total Members Voted: 111

Author Topic: Review: Hantek DDS 3X25. Anyone own one?  (Read 289957 times)

0 Members and 1 Guest are viewing this topic.

Offline Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11714
  • Country: my
  • reassessing directives...
Re: Review: Hantek DDS 3X25. Anyone own one?
« Reply #225 on: July 24, 2011, 05:22:07 am »
nop. i'll refer back to this formula when i'm working back on it.
Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 

Offline marmad

  • Super Contributor
  • ***
  • Posts: 2979
  • Country: aq
    • DaysAlive
Re: Review: Hantek DDS 3X25. Anyone own one?
« Reply #226 on: July 30, 2011, 04:18:57 am »
I found another weird little bug in the Hantek while writing my software for it:  there seems to be a range of frequencies that cause the clock to lose a divider bit - but I'm not sure how this happens (some firmware bug or  incorrect design inside the FPLA) or if it's just confined to my unit.

Could someone (Mecha???  :D ) see if this exists on their unit as well? I'd appreciate it.

It's easy to test: just hook the output into the count input = start the Hantek software - set the frequency for exactly 50,000Hz.  This should be a perfect frequency for the Hantek running a 200MHz clock. It's suppose to use a 4000 pt sample length to get the correct frequency (200MHz /400 = 50MHz) but instead it drops a bit and uses 3999 and ends up precisely on the frequency 50012.5Hz  On my unit it appears to do this with all frequencies in the approximate range of 30kHz to 60kHz.  This is definitely something happening inside the device, since it does the same thing with my software or with the Hantek software.

On another note, the first version of my control software is almost done - just ironing out bugs in the logarithmic sweep routing - it incorporates Mecha's stable sync feature - with a function generator interface.  Hopefully I'll get it posted in the next day or two.
« Last Edit: July 30, 2011, 04:22:29 am by marmad »
 

Offline Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11714
  • Country: my
  • reassessing directives...
Re: Review: Hantek DDS 3X25. Anyone own one?
« Reply #227 on: July 30, 2011, 04:27:35 pm »
some mistake in your calculation, please clarify. i assume its 50kHz you are asking. so i tried that no problem, as my little tool reported (data length) below, its using 4000 points (returned from DDSSetFrequency), not 3999. and my "poor" rigol's frequency counter says 49.992kHz. set hantek to 30kHz, read by rigol as 30.0026kHz (3333pts), 40k = 39.9995k (2500pts), 60k = 60.0053k (3333pts). anyway does your software looks like in the 2nd picture? ;) i'll be looking forward to it.
Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 

Offline marmad

  • Super Contributor
  • ***
  • Posts: 2979
  • Country: aq
    • DaysAlive
Re: Review: Hantek DDS 3X25. Anyone own one?
« Reply #228 on: July 30, 2011, 05:51:01 pm »
Quote
some mistake in your calculation

Thanks for the test!  Hmmm... it must be a blip in the frequency counter on my Hantek (I don't have a new scope yet to try test on) - it was just so repeatable, I assumed it was a settings bug.

Here's the first version of the new software... I borrowed code from you and from another person's AWG interface - I will put credits in the About box in the final version.

I don't have time at the moment to write help for some of the features - but the only things which are still unfinished:  About/Help (of course), a waveform display, and the arbitrary wave editor library functions, but all other settings and features of the DDS-3X25 are implemented.

Main thing to note: when you set a frequency, you get returned the actual closest frequency the Hantek can respond with - or, with Stable Sync (shafri's code) selected, the closest frequency the device can do with a stable Sync output.

I will post more info about the features and pictures of a test rig later tonight or tomorrow.

Enjoy.

Edit: Fixed "comm failure" bug; changed sweep output to no pause between waveforms; enabled frequency tuning in Display Controls (double-click Current Settings): allows tuning of frequency or voltage data sent to the Hantek (or frequency1 display in the software) to correspond with real world data.

DDS3X25Ctl_0_9.zip (74.78 kB - downloaded 8 times.)

Edit2:  Removed this version - and posted newer version (with bug fixes and some added help) in post on Page 19 of this thread.

DDS3X25Ctl_0_9_1.zip (75.17 kB - downloaded 14 times.)
« Last Edit: August 07, 2011, 04:47:51 pm by marmad »
 

Offline Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11714
  • Country: my
  • reassessing directives...
Re: Review: Hantek DDS 3X25. Anyone own one?
« Reply #229 on: July 30, 2011, 06:50:57 pm »
ok tried that, cool, esp the 7 segments display on bottom left. tried the 50kHz freq, no problem my rigol still read 49.9993kHz.
Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 

Offline marmad

  • Super Contributor
  • ***
  • Posts: 2979
  • Country: aq
    • DaysAlive
Re: Review: Hantek DDS 3X25. Anyone own one?
« Reply #230 on: July 30, 2011, 07:39:30 pm »
If you double-click Current Settings, you can change all displays to 7 segment exponent display.

You could test the sweep and log sweep for me - i don't have a scope at the moment to see the output.
 

Offline Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11714
  • Country: my
  • reassessing directives...
Re: Review: Hantek DDS 3X25. Anyone own one?
« Reply #231 on: July 30, 2011, 08:01:41 pm »
You could test the sweep and log sweep for me - i don't have a scope at the moment to see the output.
for your sake. there one peculiar though about your sweep. there's a "pause" in your sweep, i dont know if its intentional. its like you leave the remaining points with zero volt. and i dont like when i unplug the hantek, your software keep saying "comm failure" without giving me chance to abort. i dont think its a good way, i have to use "end process" button in task manager now. :P
Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 

Offline marmad

  • Super Contributor
  • ***
  • Posts: 2979
  • Country: aq
    • DaysAlive
Re: Review: Hantek DDS 3X25. Anyone own one?
« Reply #232 on: July 31, 2011, 04:19:30 pm »
Quote
there one peculiar though about your sweep. there's a "pause" in your sweep, i dont know if its intentional.

Looking today at your scope snapshot with fresh eyes makes me realize that the "pause" is waaaay too long - it should only be the time it takes to DDSSetFrequency and DDSDownload, which can't possible be 250ms - so it must be a bug.  That's the problem with programming without a scope to check output  :D

I'll try to find it - then post the new version with that correction and the "comm failure" correction - and write a little bit of help for some of the features.

Posted bug fix above.

Quote
anyway does your software looks like in the 2nd picture?

I don't mind mimicking a physical button layout from the real world in software to make it easier for entry (or learning), but I'm against the trend of making software programs "look" like actual objects (perhaps started by Apple with the original QuickTime player). I think it's often non-intuitive and ugly.  I'm also totally against using software "knobs" to set values (like in the Hantek software) - it's ridiculous.  Knobs are a real world device that are easy for life-forms with opposable digits - they are totally nonsensical for a virtual interface using a moving pointer.  He, he... that is my interface rant for the day  ;)
« Last Edit: July 31, 2011, 11:24:45 pm by marmad »
 

Offline Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11714
  • Country: my
  • reassessing directives...
Re: Review: Hantek DDS 3X25. Anyone own one?
« Reply #233 on: August 01, 2011, 12:52:49 am »
the "pause" is waaaay too long - it should only be the time it takes to DDSSetFrequency and DDSDownload, which can't possible be 250ms - so it must be a bug.
Posted bug fix above.
now better no more pause but, transition glitch is inevitable (first picture) :P . while playing around with Tektronix ArbExpress, i see one way to implement smooth sweep is by calculating the whole sweep frequencies in one whole data points, i mean in 2nd picture, send that data once and let the "DDS" AWG do the dancing.

Quote
anyway does your software looks like in the 2nd picture?
but I'm against the trend of making software programs "look" like actual objects.. I'm also totally against using software "knobs" to set values (like in the Hantek software) - it's ridiculous.
funny thing is i think you are right. the fact is i've been developing that "goltek" controller interface (previous post) and everything (buttons, knob, UI) are now working, button blinks when clicked, knob rotating etc. but try to develop the real functionality of the controller drove me crazy. i had to think the real device operation and how the OS work. i have to think in "state machine" mode try to mimick it as close as possible and its just nuts. i think i'll revert to simpler interface and concentrate more on practical functionality. forget the funboys geek that will whine when they see ugly UI (grey rectangle buttons), they are aesthethical evangelist that i should ignore :P

*<@&------------'^()^'------------&@>*

i think its time for me to ask the OP (saturation) if we really should create another thread to discuss and publish the software side of this hantek device, since i'm expecting there will be more and i'm afraid it will contaminate this thread which purpose is mainly "hardware" discussion. some people will not expect this "software" discussion here i think. or can we just carry on here?
« Last Edit: August 01, 2011, 01:04:36 am by Mechatrommer »
Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 

Offline marmad

  • Super Contributor
  • ***
  • Posts: 2979
  • Country: aq
    • DaysAlive
Re: Review: Hantek DDS 3X25. Anyone own one?
« Reply #234 on: August 01, 2011, 02:17:41 pm »
Quote
now better no more pause but, transition glitch is inevitable (first picture)

O.k., I hoped that the Hantek was clever enough to finish the current waveform then pause until the new waveform was downloaded - but it clearly isn't.  I will go back to my original method and stop the output first.  But I will try to improve the timing... gosh, working in VB6 is kind of exhausting.

Quote
while playing around with Tektronix ArbExpress, i see one way to implement smooth sweep is by calculating the whole sweep frequencies in one whole data points, i mean in 2nd picture, send that data once and let the "DDS" AWG do the dancing.

I saw that in ARB Express and thought about it too, but I don't think 4096 points is long enough to do any serious sweep with.  Most of the Tektronix AWGs have over 64kpts and many have over 8Mpts.

Quote
and publish the software side of this hantek device, since i'm expecting there will be more

Good point.

Edit:  I just timed the downloads to the Hantek - wow, they are slower than I expected! ~262ms for 2048pts - no wonder I have that long gap in the sweeps.  That is even 10 times slower than the rated low-bandwidth speed of USB 1.1 (why can't these companies implement USB 2.0???).  That points out the big problem with not having a lookup table built-in to the device.
« Last Edit: August 01, 2011, 03:18:23 pm by marmad »
 

Offline tinhead

  • Super Contributor
  • ***
  • Posts: 1918
  • Country: 00
    • If you like my hacks, send me a donation
Re: Review: Hantek DDS 3X25. Anyone own one?
« Reply #235 on: August 01, 2011, 03:45:02 pm »
That is even 10 times slower than the rated low-bandwidth speed of USB 1.1 (why can't these companies implement USB 2.0???).  That points out the big problem with not having a lookup table built-in to the device.

maybe it is time to write new firmware for the STM32.

Btw, the DSO8060 does have complette DDS 3x25 on board, did someone tried this software with 8060 too already?
I don't want to be human! I want to see gamma rays, I want to hear X-rays, and I want to smell dark matter ...
I want to reach out with something other than these prehensile paws and feel the solar wind of a supernova flowing over me.
 

Offline marmad

  • Super Contributor
  • ***
  • Posts: 2979
  • Country: aq
    • DaysAlive
Re: Review: Hantek DDS 3X25. Anyone own one?
« Reply #236 on: August 01, 2011, 05:56:21 pm »
Quote
maybe it is time to write new firmware for the STM32.

That would be nice  :)

Quote
did someone tried this software with 8060 too already?

I don't know about that, but I did take a look inside the DLL for the 8060 to see if I could find any undocumented commands I might use with the 3X25, and I noticed that they only implemented 4 functions for the AWG: DDSSetFrequency, DDSDownload, DDSSetPowerOn, and DDSSetSyncOut (which isn't implemented on the 3X25).
 

Offline marmad

  • Super Contributor
  • ***
  • Posts: 2979
  • Country: aq
    • DaysAlive
Re: Review: Hantek DDS 3X25. Anyone own one?
« Reply #237 on: August 02, 2011, 04:50:52 pm »
After much data-sifting, I think I've finally cracked the internal logic and formula for exactly how the DDS-3X25 sets the DAC clock and decides on the number of points for any given frequency.  I've written a little piece of software to demonstrate.

Normally, to generate a certain frequency, you first send the desired frequency to the DDS-3X25 with the DDSSetFrequency command - which causes the MCU to set the DAC clock rate, and returns to you the number of points you should use to create the waveform and the number of cycles of the wave within that given number of points (since, as discussed previously, the DDS-3X25 is missing a built-in lookup table of simple waveforms).  Once you create the waveform sample, you download it to the device with the DDSDownload command, specifying again the number of points, which in turn sets the actual frequency generated by the device (DAC clock rate / (points / cycles)).

But once you do the above, you can actually change frequencies again by just altering one or the other settings, but up until now, I've been unable to figure out exactly how to do this predictably.

To test the software, just hook the Output to the Count In (no 50ohm termination required):
1) Enter a number in 'Current frequency'
2) Click 'Calculate data based on current frequency' - this will cause the software to calculate the real frequency, number of points, and DAC clock rate the 3X25 will use.
3) Click 'Set frequency and download points' to send the data to the device and see the actual output in the Frequency Counter box.
4) Then play around with either changing only the frequency or the number of points, clicking the associated 'Calculate' button first before sending to the device, then downloading only that new frequency or new number of points to see the actual change.

To test the precision of the calculation, enter 195312.49 as 'Current Frequency' and calculate. Note the real frequency and number of points, then download to the device. Then unlock and enter 195312.5 as 'Current Frequency' and calculate. You'll notice that the real frequency produced by the device is exactly the same, but the number of points which will be requested by the Hantek has changed, based on it's internal logic.

Notes:
1) On my Hantek, it appears that the DAC clock divider drops one bit on frequencies < 60kHz (@Mecha - this has nothing to do with the number of points returned by DDSSetFrequency - it's internal to the FPGA) or else my Count In is drifting on those frequencies.  In any case, I've included a setting (Drop Bit < 60kHz) to include that in the calculation.  It's off by default, but the software starts with a nice slow test frequency of 100Hz already entered and calculated.  Download it to the device and check the Counter box; test by clicking the Drop Bit On and re-calculate to see if it is more precise.

2) Some combinations of frequency and points will cause some drifting of the frequency - this is just inherent in the design of the hardware.

3) Some changes of frequency and/or points will not change the output frequency because they are not altering the DAC clock rate; for example, if you start with a frequency > 48828.125Hz then the DAC clock will be set to full speed (200MHz) - so trying to change the frequency by only giving the device another frequency > 48828.125Hz won't work since the clock is already running at full speed.  Instead, change the frequency < 48828.126Hz or change the number of points.

4) I'd appreciate feedback from anyone who tries this - just let me know if it's working correctly on your device or not - and if the Drop Bit was needed for precision.  Thanks!

Edit:  Added another small piece of software that tests running an (almost) logarithmic sweep (using the technique detailed above) by just changing the DAC clock rate - not the points - so no delay, no pauses, and perhaps no glitches.   I'm currently without a scope, so I can't look at the output, but perhaps Mecha or someone else can check what it looks like when it changes frequency.  Just start, chose a waveform, and click 'Run Sweep' (use 'Repeat Sweep' for continuous).

SweepTest.zip (73.7 kB - downloaded 2 times.)

Edit2:  Refined the sweep test - it now does an almost perfect audio logarithmic sweep - from 10Hz to 40kHz - by reverse calculating dividers to set the DAC clock to in order to generate the desired output frequency, but without downloading points (which causes delays and glitches).   It gets as close as possible given the hardware limitations, and only misses a couple of frequencies.  Hopefully it will be glitch free.

DDSClock.zip (15.64 kB - downloaded 5 times.)

Edit3:  Fixed a bug I just noticed in my clock test software which overwrote the original number of points (internally) when downloading just the frequency - causing subsequent changes to just the frequency being calculated incorrectly.  I think (err... hope  ;) ) it's bug-free now.

SweepTest2.zip (74.33 kB - downloaded 5 times.)

Edit4:  Attached working... um, I think  ;) SweepTestv3.  Also, accuracy of clock formula hack confirmed by another 3X25 user - so here it is:

To get the DAC clock rate for any frequency:

HantekClock = 200000000
divisor = Int((HantekClock / freq) / 4096) * 2
If divisor = 0 Then divisor = 1
DACclock = HantekClock / divisor

'To get the number of points and periods which the Hantek will return for a given frequency - and the real frequency the device will output (not what you give it):

periods = 1
points = DACclock / freq
If points < 2000 Then periods = Fix(4096 / points )
points = Fix(periods * points )
realFrequency = DACclock / (points / periods)

'The following code corrects the drop bit error (if your device has it) in the software output, and gives me an exact frequency count at any setting. The code is done this way because sometimes the real frequency calculated is > 59988Hz,  while the original frequency requested was below:

If realFrequency < 59988.003 And periods = 1 Then realFrequency = HantekClock / (points * divisor - 1)
If realFrequency >= 59988.003 Then realFrequency = HantekClock / (points * divisor)
« Last Edit: August 05, 2011, 05:43:29 pm by marmad »
 

Offline onlooker

  • Frequent Contributor
  • **
  • Posts: 395
Re: Review: Hantek DDS 3X25. Anyone own one?
« Reply #238 on: August 05, 2011, 02:14:49 am »
I have been following this thread for a while and bought the device based on the recommendations here. I really appreciate all the info provided here.

But, I also feel the info here is a little scattered, often implied or side tracked by off topics. For this, I am here trying to summarize my understanding of what is said/known in terms of software control of the device with some of my takes (Please correct).

1). The two functions that really matter are
  DDSSetFrequency(F_user/*IN*/,N_use_a/*OUT*/,Pr/*OUT*/);
and
  DDSDownload(N_use_b/*IN*/);

The two are independent in that N_use (and Pr) from DDSSetFrequency() do not have to be used in any way in DDSDownload.

In fact, the key role of DDSSetFrequency() is to set the clock frequency (F_clock), while the role of DDSDownload() is to a). upload a waveform to the device and b) tell it the data length (N_use). There are no builtin waveforms of any sort.

At all times, the device is just repeatedly running through the N_use data points with N_use and waveform set by the last call to DDSDownload(). Each data point consumes one clock tic, where the clock frequency (F_clock) is set by the last call to DDSSetFrequency().

2). Now, what do we know about the calculation part of DDSSetFrequency():
--Terminologies:
  F_user  -- (real) frequency the user wants. MAX 100MHz.
  N_full  -- (int)  MAX num of data points of the device(=4096).
  F_clock -- (real) clock frequency.  MAX 200MHz.
  N_use   -- (int)  DDSSetFreq suggested num of data points to use. 
  Pr      -- (int)  DDSSetFreq suggested num of periods in N_use pts.
  F_out   -- (real) effective frequency the device is outputing.


--The calculations done in DDSSetFrequency():
  2.1). First, based solely on F_userDDSSetFrequency() sets F_clock (detail later). F_clock can only take its value from the set below,
  200MHz, and (100/n) MHz for n=1 to something > 50k
 
  2.2). Then, the set of equations
     F_out * N_use = F_clock * Pr
and,
     2000(?)>Pr>=1
are solved in a special set of steps (note, the equation set is under-defined).

  2.3). Solving steps
   a). Pr    = INT(N_full * F_user / F_clock);
   b). N_use = INT(Pr * F_clock / F_user);
   c)  F_out = F_user * N_use / Pr;
       F_out = F_clock*Pr /N_use;  //should be just a rewrite of 2.2)

 
  2.4). Error analysis:
   (F_out - F_user) / F_user ~< 1 / N_use
 
3). The F_clock setting part of DDSSetFrequency().
The value must be 200MHz, or one of (100/n) MHz for n=1 to something > 50k as mentioned.

Apparently, the F_clock shift-down was driven by the requirment of fitting at least one period in 4096 data points, and I actually expect to see the transition value of F_use being where 1 period of F_use fits exactly 4096(5) data points for the current F_clock. I did not yet do a detailed check, other than just listed the empirical transition locations from DDSClockv2.exe

OUT="F_clock"     IN="F_user"
     200MHz    >48,829Hz
     100MHz   (24,415Hz<->48,828Hz)
      50MHz   (16,277Hz<->24,414Hz)
 (100/3)MHz   (12,208Hz<->16,278Hz)
      25MHz   ( 9,766Hz<->12,207Hz)
      20MHz   ( 8,139Hz<-> 9,765Hz)
 (100/6)MHz   ( 6,976Hz<-> 8,138Hz)
 (100/7)MHz   ( 6,104Hz<-> 6,975Hz)
 (100/8)MHz   ( 5,426Hz<-> 6,103Hz)
 (100/9)MHz   ( 4,883Hz<-> 5,425Hz)
      10MHz   ( 4,439Hz<-> 4,882Hz)
     .........
 (100/n)MHz  ~ (44,390/nHz<->44,390/(n+1)Hz)
      .........
 (100/100)  =1MHz   (    484Hz<->    488Hz)
 (100/1000) =100kHz (  48.78Hz<->  48.82HZ)
 (100/10000)=10kHz  (4.88233Hz<->4.88281HZ) 


 4). Implications to  frenquency sweeping:
  4.1). If one can accept <20% frenquency step as good enough, one can use F_clock (<)2k to 20MHz for sweeping with the same waveform. This means a sweeping range of 4 decades.
  4.2). A single waveform can have 1 to (>)1000 periods. That is for a single waveform one can either sweep from 1Hz to 10kHz, or from 1kHz to 10MHz or any 4 decades range in between. For example, to sweep (1k to 10MHz), one needs to
     a). call DDSDownload() to upload a waveform of 1000 periods.
     b). seqentially calling DDSSetFrequency(F_use), with a set of F_use's that each sets a new F_clock according to the table above.   
  4.3). if 20% steping is too big, one can always use a small number of waveforms with different offsets to fill the gap.
« Last Edit: August 06, 2011, 08:42:45 am by onlooker »
 

Offline marmad

  • Super Contributor
  • ***
  • Posts: 2979
  • Country: aq
    • DaysAlive
Re: Review: Hantek DDS 3X25. Anyone own one?
« Reply #239 on: August 05, 2011, 08:08:14 am »
Quote
4.1). If one can accept <20% frenquency step as good enough, one can use F_clock (<)2k to 20MHz for sweeping with the same waveform. This means a sweeping range of 4 decades.
No, this is incorrect.

I'd be happy to answer all questions and post all of the data for how I calculate the DAC clock/frequency/points/periods exactly like the device - if someone else would post:

a) whether my clock test software correctly calculates the frequencies and periods on their 3X25.  I believe it does, but I've gotten no confirmation or contradiction here - which is frustrating.
b) whether my sweep test software correctly performs a glitch-free sweep.

Even though my test software has been downloaded >12 times, I have gotten zero responses about it - which does not encourage continued effort here.
« Last Edit: August 05, 2011, 08:32:22 am by marmad »
 

Offline Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11714
  • Country: my
  • reassessing directives...
Re: Review: Hantek DDS 3X25. Anyone own one?
« Reply #240 on: August 05, 2011, 11:34:55 am »
a) whether my clock test software correctly calculates the frequencies and periods on their 3X25.  I believe it does, but I've gotten no confirmation or contradiction here - which is frustrating.
in order to confirm this, i need to do thousands of test, and automated. with only few clicks of testing frequencies, the confirmation will not be strong. clicking thousands time from your software will be frustrating and without able to contribute/implement to improve your formulation. please post/PM your algorithm/formula if you will, i will embed it in my test software and confirm your method "standard deviation"

b) whether my sweep test software correctly performs a glitch-free sweep.
as i PMed you, your sweep software cannot run, there's ActiveX object you didnt provide, i suggest you make complete installation files including all necesssary supporting ActiveX. i also looking forward for glitch free sweep, even though implemented at lower range of frequency, but as you said, very well enough/applicable in audio region.

i understand your frustration of cold reply. with many hours of sitting infront your pc coding and then people would not appreciate what you are doing is like you are doing it for a waste, but its not. other people are just busy or not in the mood to look at this subject. but relax and enjoy. if you need to take a break this is the time, withdraw your method here let me continue while i'm at full scale mission on this right now ;D. a good days of break/holiday will make you come back with a brilliant mind. Cheers ;)

ps: thanx to onlooker for posting his formulation... and dont mind about others. they just want to try out and if they dont like they will go into silence lurking. they only appear to tell how "off topic" you are!
Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 

Offline onlooker

  • Frequent Contributor
  • **
  • Posts: 395
Re: Review: Hantek DDS 3X25. Anyone own one?
« Reply #241 on: August 05, 2011, 11:36:22 am »
Hi,

I do appreciate your work. But, Your Sweep_test crashs (snapshot attached).

I may also add that, if the device designer was taken a minimalist approach, the only communication DDSSetFrequency() needs to send to the device is the clock frequency divider which I called it "n". All the calculation done is on the PC side. DDSSetFrequency() do not need to receive anything from the device. "n" is something like,
  n = INT( 100MHz  /  ( F_user*4096) );
 

Offline Bored@Work

  • Super Contributor
  • ***
  • Posts: 3932
  • Country: 00
Re: Review: Hantek DDS 3X25. Anyone own one?
« Reply #242 on: August 05, 2011, 12:20:20 pm »
The point is, you should never do such hacking to impress others or to compete with others. As you have just learned, it only ends up in frustration. If you aren't motivated on your own then just stop doing it. Look for something that is fun and do that instead. I have free software projects out there that have been downloaded by less than five people. I don't care, because I needed the software myself and I known there aren't many people out there who also need it.

By the way, I am surprised that no one until now seems to have used a USB protocol sniffer to figure out what these magic DLL functions really send to the generator. For example to figure out if they do some own special math or if the generator gets the values more or less as provided to the functions.
« Last Edit: August 05, 2011, 12:23:11 pm by BoredAtWork »
I delete PMs unread. If you have something to say, say it in public.
For all else: Profile->[Modify Profile]Buddies/Ignore List->Edit Ignore List
 

Offline torch

  • Frequent Contributor
  • **
  • Posts: 397
Re: Review: Hantek DDS 3X25. Anyone own one?
« Reply #243 on: August 05, 2011, 02:52:03 pm »
Please don't be discouraged. I was one of the ones who downloaded it. Just trying to get some time to try it out for you -- I was away from home yesterday and I am babysitting the grandkids right now. But I am eager to beta test as soon as I can.
 

Offline Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11714
  • Country: my
  • reassessing directives...
Re: Review: Hantek DDS 3X25. Anyone own one?
« Reply #244 on: August 05, 2011, 03:42:18 pm »
n = INT( 100MHz  /  ( F_user*4096) );
golden! with little tweak i managed to get a satisfactory working function to get both hantek clock and frequency. so feel free to use or test it for bug. its 100% accurate for clock <= 100MS/s from my non-extensive testing (onlooker's method). for higher freq (clock = 200MS/s), there some discrepancy compared to values returned by DDSSetFrequency, but satisfactory enough for me for wave generation.

edit: code moved to formula_report.zip below
« Last Edit: August 05, 2011, 08:33:18 pm by Mechatrommer »
Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 

Offline marmad

  • Super Contributor
  • ***
  • Posts: 2979
  • Country: aq
    • DaysAlive
Re: Review: Hantek DDS 3X25. Anyone own one?
« Reply #245 on: August 05, 2011, 03:56:45 pm »
Quote
in order to confirm this, i need to do thousands of test, and automated.

Hmm, this seems a little strange. When I downloaded your software to create a stable sync signal out, I didn't do thousands of tests - I just tried a few known unstable frequncies to see if it worked.  All I was looking for here, as mentioned in the original post, was someone to test a few frequencies to see if it worked, so that I could move ahead in my development.  Anyway, it's fine... another 3X25 user PM'ed me earlier today that it works perfectly on their device, so he confirmed it was the correct clock formula and reverse logic for 3X25.

Quote
as i PMed you, your sweep software cannot run, there's ActiveX object you didnt provide. i also looking forward for glitch free sweep, even though implemented at lower range of frequency, but as you said, very well enough/applicable in audio region.

Yes, as noted below, if I had gotten feedback anytime in the last 3 days, I would have removed the unintended ActiveX reference. But, again, I've confirmed the glitch-free sweep myself with my new scope - see attached .png.

Quote
i understand your frustration of cold reply. with many hours of sitting infront your pc coding and then people would not appreciate what you are doing is like you are doing it for a waste, but its not. other people are just busy or not in the mood to look at this subject.

Actually, it's fine if people are not looking at the subject - I was just asking for help from owners who read the post and downloaded the software.

Quote
if you need to take a break this is the time, withdraw your method here

I'm not sure what this means.

Quote
I do appreciate your work. But, Your Sweep_test crashs (snapshot attached).

Thanks. This is 'feedback'; exactly what I was looking for.

Quote
The point is, you should never do such hacking to impress others or to compete with others. As you have just learned, it only ends up in frustration.

I'm not sure what this has to do with what I was talking about - I have, in no way, done any of this to impress or compete - I hack because I need to create tools to get hardware/software to perform functions I need for what I'm doing in my life - and I enjoy it.  I post here because I want to share information and get feedback and help with stuff I'm working on.  The two are not related - I was hacking for years before the web; i.e. before blogs and forums - although we did have community boards on the net - but it took a hell of a lot longer, if it all, to get feedback  :)

Quote
By the way, I am surprised that no one until now seems to have used a USB protocol sniffer to figure out what these magic DLL functions really send to the generator. For example to figure out if they do some own special math or if the generator gets the values more or less as provided to the functions.

I'm decompiling the DLL.

Quote
Please don't be discouraged. I was one of the ones who downloaded it. Just trying to get some time to try it out for you -- I was away from home yesterday and I am babysitting the grandkids right now. But I am eager to beta test as soon as I can.

Thanks, Torch.  You don't need to test those modules above anymore - they have been confirmed.  But I will have more stuff later ;)

Edit:  Moved formulas and software back to the original post where they belong,
« Last Edit: August 05, 2011, 05:46:12 pm by marmad »
 

Offline saturationTopic starter

  • Super Contributor
  • ***
  • Posts: 4787
  • Country: us
  • Doveryai, no proveryai
    • NIST
Re: Review: Hantek DDS 3X25. Anyone own one?
« Reply #246 on: August 05, 2011, 04:44:41 pm »
Just a headsup, you guys are doing a great job.  Consider where this device was when we started.  Will feedback later.
Best Wishes,

 Saturation
 

Offline marmad

  • Super Contributor
  • ***
  • Posts: 2979
  • Country: aq
    • DaysAlive
Re: Review: Hantek DDS 3X25. Anyone own one?
« Reply #247 on: August 05, 2011, 04:58:07 pm »
Quote
4). Implications to  frenquency sweeping:
  4.1). If one can accept <20% frenquency step as good enough, one can use F_clock (<)2k to 20MHz for sweeping with the same waveform. This means a sweeping range of 4 decades.
  4.2). A single waveform can have 1 to (>)1000 periods. That is for a single waveform one can either sweep from 1Hz to 10kHz, or from 1kHz to 10MHz or any 4 decades range in between. For example, to sweep (1k to 10MHz).

As I mentioned in my post of this morning (but did not have time then to respond in-depth), this is not possible with glitch-free sweeping (although you can do any kind of sweep you want if you don't mind pauses and/or glitches).  Since the DDSSetFrequency command sets a divider on the 200MHz clock, any frequency <= 48828.12 sets the DAC clock to between 2.048kHz and 100MHz - and any frequency >= 48828.13Hz sets it directly to 200MHz - after which you need to change number of points to change frequency.  So any sweep crossing that boundary will immediately double in frequency.  In fact, because of the design of the divider, DAC clock rates change exponentially as the frequency rises - for example, my audio log sweep produces the following numbers because it misses a couple of frequencies towards the end because of this property:
10 20 30 40 50 60 70 80 90 100 200 300 400 500 606 701 800 909 1000 2000 3076 4000 5000 6666 8000 10000 20002 40008

Quote
Just a headsup, you guys are doing a great job.  Consider where this device was when we started.  Will feedback later.

Thanks for the words of encouragement...  They're appreciated!
« Last Edit: August 05, 2011, 05:45:37 pm by marmad »
 

Offline Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11714
  • Country: my
  • reassessing directives...
Re: Review: Hantek DDS 3X25. Anyone own one?
« Reply #248 on: August 05, 2011, 07:02:14 pm »
Quote
in order to confirm this, i need to do thousands of test, and automated.
someone to test a few frequencies to see if it worked,
for few frequencies it work! but i still dont fully understand how your program works.
Quote
so he confirmed it was the correct clock formula and reverse logic for 3X25.
you havent share it yet. thats only between you two.shared! :P
Quote
Quote
if you need to take a break this is the time, withdraw your method here
I'm not sure what this means.
it means share your code pls. as i'm also working on this right now.

edit: i saw your formula already thanx. i will investigate it in alot more extensive way than mouse click method ;)
« Last Edit: August 05, 2011, 07:23:14 pm by Mechatrommer »
Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 

Offline Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11714
  • Country: my
  • reassessing directives...
Re: Review: Hantek DDS 3X25. Anyone own one?
« Reply #249 on: August 05, 2011, 07:19:01 pm »
while testing your sweeptest3. i saw this picture. it happened for square wave while sweeping at 10-50 Hz. pls check whether this is your app mistake generating square wave or artifact from the hardware (yellow=signal, blue=synch out). you have extended the possibility of stable sweep at lower frequency, great work!
Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf