Author Topic: The Siglent SDG2042X Thread  (Read 708152 times)

0 Members and 2 Guests are viewing this topic.

Online tautech

  • Super Contributor
  • ***
  • Posts: 29816
  • Country: nz
  • Taupaki Technologies Ltd. Siglent Distributor NZ.
    • Taupaki Technologies Ltd.
Re: The Siglent SDG2042X Thread
« Reply #1850 on: November 20, 2024, 11:42:57 pm »
Thanks David.
Will forward to Siglent HQ for their investigations.
Avid Rabid Hobbyist.
Some stuff seen @ Siglent HQ cannot be shared.
 

Offline DavidPlatt

  • Newbie
  • Posts: 7
  • Country: us
Re: The Siglent SDG2042X Thread
« Reply #1851 on: November 21, 2024, 12:18:48 am »
Thanks, much appreciated!

Please also suggest to them that they check the behavior of the GUI, when the modulation settings are being changed via SCPI.  On a couple of occasions, I switched the modulation source to ARB via SCPI, read back the status and confirmed that it had been set, but when I pressed MOD on the front panel, the status display was inconsistent.  When I went down through the menus it didn't reflect the status being read back by C1:MDWV?.  If I recall correctly, the first-level display showed that the modulation was via ARB, but when I dived into the ARB menu to look to see which modulation waveform was being used, none of the choices were highlighted!

It looks as if updating the modulation state via SCPI doesn't always set all of the internal state correctly.
 

Offline KungFuJosh

  • Super Contributor
  • ***
  • Posts: 3166
  • Country: us
  • TEAS is real.
Re: The Siglent SDG2042X Thread
« Reply #1852 on: November 21, 2024, 01:42:19 am »
It looks as if updating the modulation state via SCPI doesn't always set all of the internal state correctly.

Page 21 of the programming guide:

Quote
COMMAND SYNTAX
<channel>:MoDulateWaVe <type>
<channel>:MoDulateWaVe <parameter>,<value>
<channel>:={C1, C2}

Did you try that way?

ETA page 24 has examples that worked for me. I'm on 38R4.

Thanks,
Josh
« Last Edit: November 21, 2024, 01:54:27 am by KungFuJosh »
"Right now I’m having amnesia and déjà vu at the same time. I think I’ve forgotten this before." - Steven Wright
 
The following users thanked this post: CustomEngineerer

Offline DavidPlatt

  • Newbie
  • Posts: 7
  • Country: us
Re: The Siglent SDG2042X Thread
« Reply #1853 on: November 21, 2024, 05:42:53 pm »
The command syntax for MDWV is clear enough :-)

Unfortunately, Siglent doesn't seem to have documented the parameter names needed to select the use of a specific user-provided waveform. 

If I use the GUI to put it into modulate-via-ARB mode, and then select a waveform file I've previously downloaded, and then do a "C1:MDWV?", the generator doesn't show the waveform name, or even any indication that it's modulating using a user-provided waveform.  It does show that the modulation source is the ARB, but it shows an INDEX value (as if it was modulating from a built-in ARB waveform).

So, there appears to be a disconnect somewhere in the process.  And, the documentation is lacking.  The release notes for the firmware say that it's possible to specify which ARB waveform to use, but they don't actually say how to do that (or what the limitations on the process might be).  The programming manual doesn't seem to have been updated to reflect this capability, and I haven't found any actual examples published by Siglent (I'm certainly not too proud to copy their code!)
 

Online tautech

  • Super Contributor
  • ***
  • Posts: 29816
  • Country: nz
  • Taupaki Technologies Ltd. Siglent Distributor NZ.
    • Taupaki Technologies Ltd.
Re: The Siglent SDG2042X Thread
« Reply #1854 on: November 21, 2024, 08:11:54 pm »
The command syntax for MDWV is clear enough :-)

Unfortunately, Siglent doesn't seem to have documented the parameter names needed to select the use of a specific user-provided waveform. 

If I use the GUI to put it into modulate-via-ARB mode, and then select a waveform file I've previously downloaded, and then do a "C1:MDWV?", the generator doesn't show the waveform name, or even any indication that it's modulating using a user-provided waveform.  It does show that the modulation source is the ARB, but it shows an INDEX value (as if it was modulating from a built-in ARB waveform).

So, there appears to be a disconnect somewhere in the process.  And, the documentation is lacking.  The release notes for the firmware say that it's possible to specify which ARB waveform to use, but they don't actually say how to do that (or what the limitations on the process might be).  The programming manual doesn't seem to have been updated to reflect this capability, and I haven't found any actual examples published by Siglent (I'm certainly not too proud to copy their code!)
Can you confirm you're working with the latest programming manual:
Programming Guide PG02_E05C
Avid Rabid Hobbyist.
Some stuff seen @ Siglent HQ cannot be shared.
 
The following users thanked this post: CustomEngineerer

Offline KungFuJosh

  • Super Contributor
  • ***
  • Posts: 3166
  • Country: us
  • TEAS is real.
Re: The Siglent SDG2042X Thread
« Reply #1855 on: November 21, 2024, 11:22:43 pm »
The command syntax for MDWV is clear enough :-)

Unfortunately, Siglent doesn't seem to have documented the parameter names needed to select the use of a specific user-provided waveform. 

Page 50 and 51 of the doc I attached does...

Quote
3.9 Arbitrary Wave Command
3.9.1 Arbitrary Wave Switch Command
DESCRIPTION
This command sets and gets the arbitrary waveform type.
Note: The index number in the command syntax and the response format of the query omits the character and directly uses the value to represent the index number.
COMMAND SYNTAX
Format1: <channel>:ArbWaVe INDEX,<index>
Format2: <channel>:ArbWaVe NAME,<name>
Format3: <channel>:ArbWaVe NAME,<path>
<channel>:= {C1, C2}.
<index>: the index of the arbitrary waveform from the table below.
<name>: the name of the arbitrary waveform from the table below.
<path>: the path of waveform
QUERY SYNTAX
<channel>:ARbWaVe?
<channel>:= {C1, C2}.
RESPONSE FORMAT
<channel>:ARWV INDEX,<index>,NAME,<name>
EXAMPLE
Set CH1 current waveform by index 2:
C1:ARWV INDEX,2
Read CH1 current waveform:
C1:ARWV?
Return:
C1:ARWV INDEX,2,NAME,StairUp
Set CH1 current waveform to wave_1 by name.
C1:ARWV NAME,”wave_1”
Set the waveform of ch1 through the waveform path:
C1:ARWV NAME,”Local/wave1.bin”
"Right now I’m having amnesia and déjà vu at the same time. I think I’ve forgotten this before." - Steven Wright
 

Offline DavidPlatt

  • Newbie
  • Posts: 7
  • Country: us
Re: The Siglent SDG2042X Thread
« Reply #1856 on: November 22, 2024, 08:41:04 pm »
tautech:  I confirm that I'm working with the E056C programming manual (the latest I've found).

KungFuJosh:   I have ttied using ARWV, and it does not work for my use case (where I want to use the waveform as the source of modulation, not as the source of the carrier).

Briefly:  Yes, I can use "C1:ARWV NAME,whatever" to specify the waveform that I want the ARB to use.  However, as a side effect, using ARVW has the side effect of setting the channel's basic wave type to ARB.  This makes sense for the common use case (directly generating an arbitrary waveform) but not for my use case (where I want to use the waveform to drive the FM deviation).

Issuing the "C1:SampleRATE MODE,TARB" command (to tell the channel that I want truarb mode rather than DSP mode) has the same effect... it forces the basic wave type to ARB.  It also has the side effect of resetting the ARB source to the default (NDEX,0,NAME,StairUp) so I have to issue it before issuing ARWV

I can, of course, set the channel's basic wave shape back to SINE.  However, the moment I do so, the "ARWV" information is reset back to the default (INDEX,0,NAME,StairUp) and this is what the modulator actually ends up using.

If I try repeating my ARWV command at the end of the process, the generator switches channel 1 basic-wave type back to ARB (rather than leaving it at SINE), and switches the frequency/period to that of the arbitrary waveform (and not the SINE frequency I had selected).

So... I just can't seem to "get there from here".  I haven't found a way to have the three essentials:

-  basic wave type be SINE at the frequency I want
-  the modulation be FM from ARB,
-  have the ARB use a custom waveform that I have downloaded. 

I can have any two of these three, but not all three at once... and that's what I need, to do meaningful FM of the type I want, while using only a single channel in the generator.

Here's the command sequence I'm currently generating, with a status readback at each stage. 

dplatt@worker:/src/python-vxi11$ ./stereo_test_2.py --left 0 --right 0 --center 1000 --pilot_level 0 --center_level 1 --deviation 2405
Generated waveform runs at 1000 Hz
Calculating composite waveform
list_devices:  ['199.79.181.36', '199.79.181.41', '199.79.181.46']
list_resources:  ['TCPIP::199.79.181.36::INSTR', 'TCPIP::199.79.181.41::INSTR', 'TCPIP::199.79.181.46::INSTR']

Accessing generator TCPIP::gen::INSTR
Siglent Technologies,SDG2122X,SDG2XCBQ6R2497,2.01.01.37R3
Resetting to defaults

Status:
C1:BSWV?
C1:BSWV WVTP,SINE,FRQ,1000HZ,PERI,0.001S,AMP,4V,AMPVRMS,1.414Vrms,AMPDBM,0dBm,MAX_OUTPUT_AMP,20V,OFST,0V,HLEV,2V,LLEV,-2V,PHSE,0
C1:MDWV?
C1:MDWV STATE,OFF
C1:ARWV?
C1:ARWV INDEX,2,NAME,StairUp

Sending waveform data: C1:WVDT WVNM,Composite,FREQ,1000,AMPL,1.0,OFST,0.0,PHASE,0.0,WAVEDATA,...
... raw bytes ...

Status:
C1:BSWV?
C1:BSWV WVTP,SINE,FRQ,1000HZ,PERI,0.001S,AMP,1V,AMPVRMS,0.3535Vrms,AMPDBM,0dBm,MAX_OUTPUT_AMP,20V,OFST,0V,HLEV,0.5V,LLEV,-0.5V,PHSE,0
C1:MDWV?
C1:MDWV STATE,OFF
C1:ARWV?
C1:ARWV INDEX,2,NAME,StairUp

Setup C1 ARB mode
C1:SampleRATE MODE,TARB

Status:
C1:BSWV?
C1:BSWV WVTP,ARB,FRQ,1000HZ,PERI,0.001S,AMP,1V,MAX_OUTPUT_AMP,20V,OFST,0V,HLEV,0.5V,LLEV,-0.5V,PHSE,0
C1:MDWV?
C1:MDWV STATE,OFF
C1:ARWV?
C1:ARWV INDEX,2,NAME,StairUp

Select C1 ARB waveform
C1:ARWV NAME,Composite

Status:
C1:BSWV?
C1:BSWV WVTP,ARB,FRQ,1000HZ,PERI,0.001S,AMP,1V,MAX_OUTPUT_AMP,20V,OFST,0V,HLEV,0.5V,LLEV,-0.5V,PHSE,0
C1:MDWV?
C1:MDWV STATE,OFF
C1:ARWV?
C1:ARWV NAME,Composite.bin

Setting up Channel 1 carrier
C1:BSWV WVTP,SINE
C1:BSWV FRQ,10700000
C1:BSWV AMP,1.0

Status:
C1:BSWV?
C1:BSWV WVTP,SINE,FRQ,10700000HZ,PERI,9.34579e-08S,AMP,1V,AMPVRMS,0.3535Vrms,AMPDBM,0dBm,MAX_OUTPUT_AMP,20V,OFST,0V,HLEV,0.5V,LLEV,-0.5V,PHSE,0
C1:MDWV?
C1:MDWV STATE,OFF
C1:ARWV?
C1:ARWV INDEX,2,NAME,StairUp

Modulating Channel 1 using internal ARB
C1:MDWV STATE,ON
C1:MDWV FM
C1:MDWV SRC,INT
C1:MDWV MDSP,ARB
C1:MDWV DEVI,2405

Status:
C1:BSWV?
C1:BSWV WVTP,SINE,FRQ,10700000HZ,PERI,9.34579e-08S,AMP,1V,AMPVRMS,0.3535Vrms,AMPDBM,0dBm,MAX_OUTPUT_AMP,20V,OFST,0V,HLEV,0.5V,LLEV,-0.5V,PHSE,0
C1:MDWV?
C1:MDWV STATE,ON,FM,MDSP,ARB,INDEX,0,SRC,INT,FRQ,100HZ,DEVI,2405HZ,CARR,WVTP,SINE,FRQ,10700000HZ,AMP,1V,AMPVRMS,0.3535Vrms,AMPDBM,0dBm,OFST,0V,PHSE,0
C1:ARWV?
C1:ARWV INDEX,2,NAME,StairUp

Trying to set Channel 1 arb waveform again
C1:ARWV NAME,Composite

Status:
C1:BSWV?
C1:BSWV WVTP,ARB,FRQ,1000HZ,PERI,0.001S,AMP,1V,MAX_OUTPUT_AMP,20V,OFST,0V,HLEV,0.5V,LLEV,-0.5V,PHSE,0
C1:MDWV?
C1:MDWV STATE,ON,FM,MDSP,ARB,INDEX,0,SRC,INT,FRQ,100HZ,DEVI,1000HZ,CARR,WVTP,ARB,FRQ,1000HZ,AMP,1V,OFST,0V,PHSE,0
C1:ARWV?
C1:ARWV NAME,Composite.bin

Turning on C1
C1:OUTPUT ON,LOAD,50

Status:
C1:BSWV?
C1:BSWV WVTP,ARB,FRQ,1000HZ,PERI,0.001S,AMP,0.5V,MAX_OUTPUT_AMP,20V,OFST,0V,HLEV,0.25V,LLEV,-0.25V,PHSE,0
C1:MDWV?
C1:MDWV STATE,ON,AM,MDSP,SINE,SRC,INT,FRQ,100HZ,DEPTH,100,CARR,WVTP,ARB,FRQ,1000HZ,AMP,0.5V,OFST,0V,PHSE,0
C1:ARWV?
C1:ARWV NAME,Composite.bin
 

Offline HexfeT

  • Contributor
  • Posts: 11
  • Country: tr
Re: The Siglent SDG2042X Thread
« Reply #1857 on: December 24, 2024, 03:57:39 am »
Removed SIGLENT.ADS from /usr/bin/siglent/usr and successfully updated firmware to V2.01.01.37R6.

Thank you for finding the solution!

I have the same problem. But I have no idea how to delete the SIGLENT.ADS file. Can you explain briefly?

Edit: I got it done
« Last Edit: December 24, 2024, 03:19:34 pm by HexfeT »
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf