1) save as png or jpg. those bmp's can easily waste half a meg on dave's server. and bandwidth of thousands others.
Sorry! I would normally... I just spaced out

- Just changed them to pngs

3) retry at odd frequency, like 3MHz, 33MHz, 74.7MHz. 1MHz and 75MHz are known to be "Synch Out" stable
Done - see below.
4) How do you manage to output single pulse? teach me the code!
Unfortunately, it doesn't seem to be able to be done reliably with just code (at least I can't get it to repeat more than a few times) - it seems to need a real hardware trigger to be consistent. But you can do it a crude way in software; for example, use Hantek software, select Single Wave, then click Ext Trig over and over again. After a few clicks you will get a transition glitch which will send the wave.
But the correct, reliable way is to give it a real trigger. So I took D011 output again (this time set to Programmable Output - not Pattern Generator) and I fed it into the Trig In (see photo). Then every time you change the bit high (or low with falling edge) it sends the waveform. But this is only needed for consistency - software method above is fine for testing.
5) How do you manage to sweep at zero crossing by shorting D11 to input? pls explain in detail start from PC App down to signal generation.
I haven't tried it yet - only theoretical -- but for example:
Put a jumper wire from D011 pin to DI0 pin on front of Hantek - then in a silly recursive loop example:
:startSweep
Dim startFreq as Double = 1000
Dim lastFreq as Double = 100000
Dim stepAmount as Double = 1000
Dim stepPeriod as Integer = 100
DDSSetFrequency(hWnd, startFreq, g_nWavePointNum, g_nWavePeriodNum)
DDSDownload(hWnd, arBuffer(0), g_nWavePointNum)
Gosub newSweepFreq(startFreq + stepAmount )
end
:newSweepFreq(start)
Dim digInput as Integer = 0
' Have to have some code here to wait the step period first
If start > lastFreq Then Return
' Wait through approximately one high and one low of DO11 - in other words, 1/frequency
Do Until (digInput)
If NOT DDSGetDigitalIn(hWnd, digInput) Then Exit Sub ' unplugging DDS3X25 would break out of permanent loop
Loop
Do Until (NOT digInput)
If NOT DDSGetDigitalIn(hWnd, digInput) Then Exit Sub
Loop
DDSSetFrequency(hWnd, start, g_nWavePointNum, g_nWavePeriodNum)
Gosub newSweepFreq(start + stepAmount )
Return
End Sub
I will try it with your source code base sometime in the next day or two - but if you manage to do it first, let me know!!
6) By right D11 is just least significant digital value of what we see analogically in "Output", so by right it should follow (in synch) with "Output" at any freq, as said, retry (3)
Almost right... D011 is the MOST significant bit of the DAC - so it will have the exact frequency (but offset 180 degrees) of any simple waveform out (sine, square, triangle, saw) as long as you have amplitude at maximum (+3.5) so that the DAC is swinging peak-to-peak.
7) Dont quite understand whats the blue trace on pic #3 and #4.
Blue trace shows what (#3) the Sync Out does when you use single wave output; (#4) D011 does when you use single wave output (in Pattern Generator mode at full-scale).
Was your purchase experience without a problem?
Yes, saturation - testinstru (from eBay) is a great seller - good communication - fast shipment - and well-packed.