EEVblog Electronics Community Forum

Products => Test Equipment => Topic started by: thewyliestcoyote on November 06, 2014, 07:27:40 am

Title: DG1000Z Arbitrary Waveform Function Generator
Post by: thewyliestcoyote on November 06, 2014, 07:27:40 am
I am in need of a basic arb gen with somewhere about 50MHz of bandwidth. I really like the deep memory of the DG1000Z and the cost.

My first question is anyone have anything good or bad to say about this instrument?

How is the Rigol software? any good or will I have to write my own?

Does anyone know of a "hack" to enable the 60 MHz bandwidth on the 30 MHz version and some of the software options? or would I be the first to try?

Thanks,
Wylie
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: Wuerstchenhund on November 06, 2014, 10:20:44 am
I am in need of a basic arb gen with somewhere about 50MHz of bandwidth. I really like the deep memory of the DG1000Z and the cost.

My first question is anyone have anything good or bad to say about this instrument?

How is the Rigol software? any good or will I have to write my own?

Well, this forum does actually have a search function you could have used, which would have lead you to a review I wrote not too long ago:

https://www.eevblog.com/forum/testgear/rigol-dg1062z-arbitrary-waveform-generator-short-review/msg512306/#msg512306 (https://www.eevblog.com/forum/testgear/rigol-dg1062z-arbitrary-waveform-generator-short-review/msg512306/#msg512306)
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: thewyliestcoyote on November 06, 2014, 06:19:56 pm
Quote
Well, this forum does actually have a search function you could have used, which would have lead you to a review I wrote not too long ago:

https://www.eevblog.com/forum/testgear/rigol-dg1062z-arbitrary-waveform-generator-short-review/msg512306/#msg512306 (https://www.eevblog.com/forum/testgear/rigol-dg1062z-arbitrary-waveform-generator-short-review/msg512306/#msg512306)

Yeah I had seen that before writing this, I found that very interesting and thanks for the great information, but I always love to hear a couple persons options on something. In the case they have some special use or option on the mater. I have heard varying things about the Rigol software and it seems like I my have to write my own to fix some of my needs. I and my your as well would love to see the insides of this instrument. Is the bandwidth controlled by software? and can this be changed?
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: Wuerstchenhund on November 07, 2014, 06:16:27 am
I have heard varying things about the Rigol software and it seems like I my have to write my own to fix some of my needs.

It's been a while since I wrote that review, and after some serious use my opinion that the software is really bad has only been reinforced. Why manufacturers like Rigol believe they can get away with such piss-poor programs is beyond me. Unfortunately at the moment I don't have much time to write my own, which is why I'm considering splashing out the money for a Tek AWG which works with ArbExpress.

Quote
I and my your as well would love to see the insides of this instrument. Is the bandwidth controlled by software? and can this be changed?

My guess would be that the 30MHz version is limited by software and that the hardware is the same, but that's just a guess.
I doubt that the 60MHz version can be hacked for a higher bandwidth, though.

What would be interesting however would be a hack to enable the full 16M of sample memory.
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: thewyliestcoyote on November 07, 2014, 07:28:39 am
Quote
It's been a while since I wrote that review, and after some serious use my opinion that the software is really bad has only been reinforced. Why manufacturers like Rigol believe they can get away with such piss-poor programs is beyond me. Unfortunately at the moment I don't have much time to write my own, which is why I'm considering splashing out the money for a Tek AWG which works with ArbExpress.

So when I get mine I will be sure to write something and post it for the world to use. I am at Python and C/C++ guy, what you think of using Qt for the application? and only doing connection over Ethernet to save the complexity of USB and drivers. What function do you think is needed in a software package for a arb gen?

Quote
My guess would be that the 30 MHz version is limited by software and that the hardware is the same, but that's just a guess.
I doubt that the 60MHz version can be hacked for a higher bandwidth, though.

What would be interesting however would be a hack to enable the full 16M of sample memory.
I am interested to try to hack it for bandwidth of the 30 MHz and the memory. I am not sure why the 60 MHz would have more bandwidth, as it is 60 MHz is close to the Nyquist sampling limit of 100 MHz for the 200MSPS. This is not even counting the need for oversampling to lower distortion and improve effective resolution.

I am surprised that I have not found anything on software hacks for the Rigol DG1000 and DG1000Z.
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: alex.forencich on November 07, 2014, 08:22:24 am
Quote
It's been a while since I wrote that review, and after some serious use my opinion that the software is really bad has only been reinforced. Why manufacturers like Rigol believe they can get away with such piss-poor programs is beyond me. Unfortunately at the moment I don't have much time to write my own, which is why I'm considering splashing out the money for a Tek AWG which works with ArbExpress.

So when I get mine I will be sure to write something and post it for the world to use. I am at Python and C/C++ guy, what you think of using Qt for the application? and only doing connection over Ethernet to save the complexity of USB and drivers. What function do you think is needed in a software package for a arb gen?


If you like Python, then take a look at Python IVI.  It's open source and cross platform and it supports communicating with instruments over GPIB (linux-gpib/NI visa via pyvisa), LXI (VXI-11), USB (USBTMC), and serial.  The idea is to provide common APIs for different instruments so they can be interchangeable.  It's more intended for writing scripts, but it could certainly be leveraged as the back end for an application. 

Quote

Quote
My guess would be that the 30 MHz version is limited by software and that the hardware is the same, but that's just a guess.
I doubt that the 60MHz version can be hacked for a higher bandwidth, though.

What would be interesting however would be a hack to enable the full 16M of sample memory.
I am interested to try to hack it for bandwidth of the 30 MHz and the memory. I am not sure why the 60 MHz would have more bandwidth, as it is 60 MHz is close to the Nyquist sampling limit of 100 MHz for the 200MSPS. This is not even counting the need for oversampling to lower distortion and improve effective resolution.

I am surprised that I have not found anything on software hacks for the Rigol DG1000 and DG1000Z.

If you really need a lot of sample memory, take a look at the Hantek HDG2000 series.  There is an effort right now to build an open source replacement firmware for it that will hopefully be easier to use, less buggy, and more powerful than the default hantek firmware.  Additionally, it will hopefully be able to support 128 M points on one channel at 250 M samples per second.  (the unit supports 64 M per channel out of the box, but there is no reason why that could not be divided unevenly if the FPGA configuration is built correctly - there is more than enough memory bandwidth). 
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: Wuerstchenhund on November 07, 2014, 01:56:44 pm
So when I get mine I will be sure to write something and post it for the world to use. I am at Python and C/C++ guy, what you think of using Qt for the application? and only doing connection over Ethernet to save the complexity of USB and drivers.

Sounds good. I'd say Ethernet is much more important than USB as it's much more flexible, and is even adequate for cases where one might have used USB instead (i.e. simple connection of one instrument to a PC, which can be done equally simple with a network cable).

Quote
What function do you think is needed in a software package for a arb gen?

First and foremost it should do the basic functions right, i.e. allowing the user to easily create waveforms without having to jump through hoops like having to calculate how many cycles are needed to get a certain frequency. A good Zoom functionality would be a bonus, and the template properties (i.e. sample size, max voltage) should be changeable without having to close the current file and create a new one with the right properties.

The Windows version (if you'd think of doing something for multiple platforms) should follow the Windows UX guidelines, i.e.  how Windows behave and what standard key shortcuts like STRG-C do (the Rigol Ultra Station software is a very good example how a Windows program should *not* look like). It should also allow full screen mode (which the Rigol software doesn't do) to allow using more of the screen estate of a modern monitor for waveform editing.

Oh, and just to be sure: no Java!

Have a look at Tektronix ArbExpress which is their free utility for their own AWGs, which is the best one I've seen so far and very useable. If your program was a clone of ArbExpress then I'd gladly pay some money for it.

Ideally the program would also be flexible to be adapted to other AWGs, i.e. by storing the device-specific configuration in XML files so that other AWGs can be added in the future.

Quote
I am surprised that I have not found anything on software hacks for the Rigol DG1000 and DG1000Z.

I guess that the DG1000z doesn't sell that well. It's pretty expensive compared to the older DG1000 or the Siglent kit. And with a price close to the DG4000 most people are probably opting for higher bandwidth over the larger sample memory of the DG1000z.
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: Wuerstchenhund on November 07, 2014, 02:08:55 pm
If you really need a lot of sample memory, take a look at the Hantek HDG2000 series.  There is an effort right now to build an open source replacement firmware for it that will hopefully be easier to use, less buggy, and more powerful than the default hantek firmware.  Additionally, it will hopefully be able to support 128 M points on one channel at 250 M samples per second.  (the unit supports 64 M per channel out of the box, but there is no reason why that could not be divided unevenly if the FPGA configuration is built correctly - there is more than enough memory bandwidth).

This is all great stuff but the potential features are worth nothing if the hardware is crap (it's Hantek after all!) and the software buggy. And I'm not even touching the complex task of writing and maintaining(!) reliable firmware for that thing that is not a pain to use, and this is under the assumption that the project won't be abandoned when the next hackable cheap-ass AWG comes out.

I'm not a Rigol fan but the DG1000z hardware quality is worlds apart from anything I've seen so far carrying the Hantek label.
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: AlessandroAU on November 07, 2014, 04:01:41 pm
I have a dg1022.

While the supplied software is terrible,

You can make some really nice software interfaces with the LABview VI's that rigol supplies.
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: thewyliestcoyote on November 07, 2014, 07:07:18 pm
Quote
Oh, and just to be sure: no Java!
No problem, I don't think any one has to tell me that, lol. I am a fan of Qt as it is cross platform and covers up some of the shortcomings of C++ for user interface stuff.

Quote
Quote
I am surprised that I have not found anything on software hacks for the Rigol DG1000 and DG1000Z.
I guess that the DG1000z doesn't sell that well. It's pretty expensive compared to the older DG1000 or the Siglent kit. And with a price close to the DG4000 most people are probably opting for higher bandwidth over the larger sample memory of the DG1000z.
Shame I really like the large memory of it. I am working on a real time control system with some real hard timing requirements, so I was planning building a hardware in the loop test bench, and the large memory makes that possible.

Quote
If you like Python, then take a look at Python IVI.  It's open source and cross platform and it supports communicating with instruments over GPIB (linux-gpib/NI visa via pyvisa), LXI (VXI-11), USB (USBTMC), and serial.  The idea is to provide common APIs for different instruments so they can be interchangeable.  It's more intended for writing scripts, but it could certainly be leveraged as the back end for an application. 
I have seen that, I have had some trouble with it in the past for projects at work. I will definitely keep it in mind, I believe in the practical solution to problems and if seems reasonable then I will go for it.

Quote
I have a dg1022.

While the supplied software is terrible,

You can make some really nice software interfaces with the LABview VI's that rigol supplies.
guess it is that bad, I am not really a LABview kind of guy for a couple reasons. I have even used NI-CVI for work and I am not a fan. I have no problem writing even the "visa" from scratch.

Quote
Have a look at Tektronix ArbExpress which is their free utility for their own AWGs, which is the best one I've seen so far and very useable. If your program was a clone of ArbExpress then I'd gladly pay some money for it.

Ideally the program would also be flexible to be adapted to other AWGs, i.e. by storing the device-specific configuration in XML files so that other AWGs can be added in the future.
I will be sure and take a look at the Tek software. I have written some software for work to control different VNA's of differing models and manufactures and I never could quite figure out a good way to make it definable using something like XML files or JSON files. There are always little differences that I have found in the way the instruments behave or perform that make it that much harder than just having a dll for each instrument.

I am a fun of having some sort of scriptability and programmability in applications, would there be any objects to this part being python? maybe allow for signal manipulation with numpy and scipy? or maybe even the GNURadio libraries for things like filters?
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: alex.forencich on November 07, 2014, 08:40:59 pm
If you really need a lot of sample memory, take a look at the Hantek HDG2000 series.  There is an effort right now to build an open source replacement firmware for it that will hopefully be easier to use, less buggy, and more powerful than the default hantek firmware.  Additionally, it will hopefully be able to support 128 M points on one channel at 250 M samples per second.  (the unit supports 64 M per channel out of the box, but there is no reason why that could not be divided unevenly if the FPGA configuration is built correctly - there is more than enough memory bandwidth).

This is all great stuff but the potential features are worth nothing if the hardware is crap (it's Hantek after all!) and the software buggy. And I'm not even touching the complex task of writing and maintaining(!) reliable firmware for that thing that is not a pain to use, and this is under the assumption that the project won't be abandoned when the next hackable cheap-ass AWG comes out.

I'm not a Rigol fan but the DG1000z hardware quality is worlds apart from anything I've seen so far carrying the Hantek label.

I'm actually working on the FPGA side of things on the HDG2000.  The hardware does not seem like complete crap, but it certainly isn't top of the line.  We'll see how it goes.  One thing that I have noticed is that most of the cheap arbs now all have basically the same architecture - a decently fast DAC (usually an AD TxDAC) paired with an FPGA and a bunch of sample memory (generally DDR2 SDRAM).  Even if another cheap AWG comes out, so long as it has a similar architecture, all is not lost as it should be possible to port most of the design over. 
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: alex.forencich on November 07, 2014, 08:47:29 pm
Quote
Have a look at Tektronix ArbExpress which is their free utility for their own AWGs, which is the best one I've seen so far and very useable. If your program was a clone of ArbExpress then I'd gladly pay some money for it.

Ideally the program would also be flexible to be adapted to other AWGs, i.e. by storing the device-specific configuration in XML files so that other AWGs can be added in the future.
I will be sure and take a look at the Tek software. I have written some software for work to control different VNA's of differing models and manufactures and I never could quite figure out a good way to make it definable using something like XML files or JSON files. There are always little differences that I have found in the way the instruments behave or perform that make it that much harder than just having a dll for each instrument.

I am a fun of having some sort of scriptability and programmability in applications, would there be any objects to this part being python? maybe allow for signal manipulation with numpy and scipy? or maybe even the GNURadio libraries for things like filters?

Right now, python-ivi can be used to transfer numpy-generated waveforms to arbitrary waveform generators.  Extending that could produce a very powerful (and open) platform.  I suppose the only main concern is speed; if you want to do real-time high performance DSP (e.g. software radio), then python is not really the best choice.  But if this is just intended for offline processing, then I think leveraging python makes a great deal of sense. 
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: thewyliestcoyote on November 07, 2014, 09:39:03 pm
Quote
Right now, python-ivi can be used to transfer numpy-generated waveforms to arbitrary waveform generators.  Extending that could produce a very powerful (and open) platform.  I suppose the only main concern is speed; if you want to do real-time high performance DSP (e.g. software radio), then python is not really the best choice.  But if this is just intended for offline processing, then I think leveraging python makes a great deal of sense.
I am not sure if real time performance is of any interest here, I wish common waveform generators could do direct digital synthesis of waveform from  a data stream from a PC. This is a feature that I have payed top dollar in the past in the form of SDR's. I think python for a different set of reasons is very good for SDR's. Its a very GNURadio and makes its flexibility of it possible. My thinking on using using the GNURadio libraries is for easy filtering and other functions of signal generation and a wide range of extensions for it. VOLK is another big plus, I believe in making the most out of what you have and a cheap gain in math performance is always a win in my mind.
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: alex.forencich on November 07, 2014, 10:05:39 pm
I wish common waveform generators could do direct digital synthesis of waveform from  a data stream from a PC.

Now that is a very interesting idea.  This could certainly be doable for a low-rate generator channel that could be either output directly or used as a modulation input to a higher rate channel.  Maybe this is something to implement in the open source HDG2000 firmware, if we can come up with a good architecture.  It looks like the interface between the SoC and the FPGA can run around 30 to 40 Mbit/sec.  That's sufficient to stream one channel at 1 or 2 Msa/sec with a 16 bit sample depth, and double that if you decrease the sample depth to 8 bits. 

I have an Agilent ESG4433B with the digital baseband and dual arb options.  The digital baseband can take an arbitrary bit stream in through a BNC connector on the front panel (clock + data) and then use that to generate programmable I/Q symbols internally and modulate the RF output.  It should be possible to implement something similar, only the data source would come from a PC over USB or Ethernet. 
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: thewyliestcoyote on November 08, 2014, 04:12:58 am
Quote
Now that is a very interesting idea.  This could certainly be doable for a low-rate generator channel that could be either output directly or used as a modulation input to a higher rate channel.  Maybe this is something to implement in the open source HDG2000 firmware, if we can come up with a good architecture.  It looks like the interface between the SoC and the FPGA can run around 30 to 40 Mbit/sec.  That's sufficient to stream one channel at 1 or 2 Msa/sec with a 16 bit sample depth, and double that if you decrease the sample depth to 8 bits. 
Wow I did not know anyone was doing anything with opensource firmware for any test equipment, good to know. I would love this feature! As for the data rate I think there are a number of ways that the data stream could be compressed to make use the the USB 2 or Ethernet speed limits. That would make a great signal generator for a SDR and many other things. One thing that I would ask something like that would having the instrument to shift up in frequency the input frequency.

I have a couple hours of work on the app(Nothing is the bigger picture) when I have something that I think looks good I will post it to github.
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: alex.forencich on November 08, 2014, 06:39:55 am
Quote
Now that is a very interesting idea.  This could certainly be doable for a low-rate generator channel that could be either output directly or used as a modulation input to a higher rate channel.  Maybe this is something to implement in the open source HDG2000 firmware, if we can come up with a good architecture.  It looks like the interface between the SoC and the FPGA can run around 30 to 40 Mbit/sec.  That's sufficient to stream one channel at 1 or 2 Msa/sec with a 16 bit sample depth, and double that if you decrease the sample depth to 8 bits. 
Wow I did not know anyone was doing anything with opensource firmware for any test equipment, good to know. I would love this feature! As for the data rate I think there are a number of ways that the data stream could be compressed to make use the the USB 2 or Ethernet speed limits. That would make a great signal generator for a SDR and many other things. One thing that I would ask something like that would having the instrument to shift up in frequency the input frequency.

I have a couple hours of work on the app(Nothing is the bigger picture) when I have something that I think looks good I will post it to github.

I'm actually working on the FPGA part of the open source firmware.  It's just getting started right now, not sure if you are interested in helping out at all: https://www.eevblog.com/forum/testgear/hdg2002b-awg-firmware-reverse-engineering/ (https://www.eevblog.com/forum/testgear/hdg2002b-awg-firmware-reverse-engineering/) . 

Anyway, the bandwidth limit is imposed by an SPI connection between the SoC and the FPGA inside the arb.  It's designed so that the SoC/user interface can be isolated from the front end with digital isolators.  They are not installed in the units, but the connection to the FPGA is limited to the single SPI interface.  We're trying to work out the maximum rate possible over that interface right now, actually.  Also, the FPGA is quite small so it may not be possible to implement much in terms of compression. 
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: thewyliestcoyote on November 08, 2014, 06:48:38 pm
Quote
I'm actually working on the FPGA part of the open source firmware.  It's just getting started right now, not sure if you are interested in helping out at all: https://www.eevblog.com/forum/testgear/hdg2002b-awg-firmware-reverse-engineering/ (https://www.eevblog.com/forum/testgear/hdg2002b-awg-firmware-reverse-engineering/) . 
Sounds interesting I will see what I can contribute, I know VHDL not Verilog tho. Should be a good chance to learn. I will have to get my hands on the hardware so that my take some time.

Its been a interest of my for some time now to design open source test gear, but time, money, work, school (same old BS).

Quote
Anyway, the bandwidth limit is imposed by an SPI connection between the SoC and the FPGA inside the arb.  It's designed so that the SoC/user interface can be isolated from the front end with digital isolators.  They are not installed in the units, but the connection to the FPGA is limited to the single SPI interface.  We're trying to work out the maximum rate possible over that interface right now, actually.  Also, the FPGA is quite small so it may not be possible to implement much in terms of compression.

SPI? Really that seems kind of slow for this sort of device. That is going to be a bigger bandwidth limit then USB or Ethernet. From the looks of it some modest compression could be done on the Ethernet or USB connections (Maybe something like just the derivative of the signal as this should be value limited to less than 16bits, or maybe FFT compression). I am not sure there is anything can be done on the SPI bus.

Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: alex.forencich on November 09, 2014, 03:27:10 am
Quote
SPI? Really that seems kind of slow for this sort of device. That is going to be a bigger bandwidth limit then USB or Ethernet. From the looks of it some modest compression could be done on the Ethernet or USB connections (Maybe something like just the derivative of the signal as this should be value limited to less than 16bits, or maybe FFT compression). I am not sure there is anything can be done on the SPI bus.

Yeah, it is a little annoying.  I suppose it was an engineering tradeoff - lower bandwidth to the front end, but support for front end isolation.  Still, if we can get the SPI bus working at 48 MHz (I think the clock settings will support that, fallback is 33.3 MHz) that can still do 2-3 MSa/sec at the full depth.  Now, I'm thinking this may be far more useful as a modulating signal than as a baseband signal, and it could also be possible to send raw data bits and then generate symbols on the fly in the FPGA.  Well see how much space is available on the FPGA, it's a Spartan 6 LX 16, so there isn't a whole heck of a lot of space available.  I think the main limit will be DSP slices; the chip has 32 of them that will have to be shared across both channels. 
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: thewyliestcoyote on November 09, 2014, 05:44:53 am
Quote
Yeah, it is a little annoying.  I suppose it was an engineering tradeoff - lower bandwidth to the front end, but support for front end isolation.
Hmm yeah that is kind of old, there are parallel bus isolators.

Quote
Now, I'm thinking this may be far more useful as a modulating signal than as a baseband signal, and it could also be possible to send raw data bits and then generate symbols on the fly in the FPGA.
I am sure I am not the only one that could use I and Q modulation of a signal and PRBS for symbol generation.

Quote
Well see how much space is available on the FPGA, it's a Spartan 6 LX 16, so there isn't a whole heck of a lot of space available.  I think the main limit will be DSP slices; the chip has 32 of them that will have to be shared across both channels.
What is the clock speed of the FPGA? I am not sure that 32 DSP slices is going to be a problem. How much math needs to be done in real time? There is only a slow connection to the DAC, it hinds at that the modulation is done in the SOC and only the modulation signal is generated in the FPGA and transferred over the SPI bus.
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: alex.forencich on November 09, 2014, 06:15:20 am
Quote
Yeah, it is a little annoying.  I suppose it was an engineering tradeoff - lower bandwidth to the front end, but support for front end isolation.
Hmm yeah that is kind of old, there are parallel bus isolators.
Well, a more standard interface would be to emulate an SRAM interface and then stick the FPGA on the SoC memory bus.  However, this requires a large number of traces, and isolating this is not very straightforward.  So using SPI means that only 4 pins need to be isolated instead of ~32. 
Quote
Quote
Well see how much space is available on the FPGA, it's a Spartan 6 LX 16, so there isn't a whole heck of a lot of space available.  I think the main limit will be DSP slices; the chip has 32 of them that will have to be shared across both channels.
What is the clock speed of the FPGA? I am not sure that 32 DSP slices is going to be a problem. How much math needs to be done in real time? There is only a slow connection to the DAC, it hinds at that the modulation is done in the SOC and only the modulation signal is generated in the FPGA and transferred over the SPI bus.

The clock input is 10 MHz, which gets upconverted to 250 MHz for the DS logic and ADC.  The FPGA interface to the DAC consists of 2 parallel 16 bit busses.  Sample memory is 2 1 Gbit DDR2 DRAMs, each controlled by MCB hardcores.  The FPGA is also connected to a 1 MSa/sec ADC for the external modulation input. 
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: bushmg on November 18, 2014, 02:50:30 am
I recently purchased a DG1032Z, and it came with Firmware 00.01.05.  I noticed that the hardware is exactly the same as the DG1062Z, and I'm wondering if it would be possible to "unlock" the 60 MHz capability as has been done for the various scopes.  I know that Rigol has been countering the "hacking" of options - witness the DSA815 coming now with Bootloader 01.04 and Firmware 01.09 - and when I went to upgrade the DG1032Z firmware to 01.06, I was sent both the Firmware AND a new Bootloader.  The instructions were to install the new Bootloader 01.05 first, then the 01.06 firmware.  I have not done this. 

Instead, I'm attaching these files in the hope that they might provide a clue to the latest Rigol protection.  I don't have the smarts or the equipment to JTAG and disassemble this code, but I know that there are some really sharp eevbloggers out there that might like to have a stab at it!

Oops! the Firmware is too big for this post so I will find another way to provide it.  Also, the GEL file is not allowed, so I added a .C to the name.  Please remove it after downloading.

UPDATE: Here is the link to the DG1032Z firmware file.  Please let me know if it does not work, as this is the first time I have tried using Dropbox in this way.

https://www.dropbox.com/s/m1q3dk0cq3830bs/DG1KZDSP_00.01.06.GEL?dl=0 (https://www.dropbox.com/s/m1q3dk0cq3830bs/DG1KZDSP_00.01.06.GEL?dl=0)
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: BloodyCactus on November 20, 2014, 12:13:52 am
just got mine today, 00.01.05.00.01 firmware.

damn, the scpi command READ is locked out :( cant easy dump it.

out of curiosity, when I go to its web page, network settings has a password. it is NOT blank. anyone know what the username/password is?

Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: onesixright on December 12, 2014, 09:48:17 am
Hi,

I hope it doesn't sound stupid, but I'm curious if you can create I2C / SPI waveforms with Ultra Station ?

Anybody tried that?

Thanks!
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: Wuerstchenhund on December 12, 2014, 04:00:38 pm
I hope it doesn't sound stupid, but I'm curious if you can create I2C / SPI waveforms with Ultra Station ?

That's not a stupid question at all. Unfortunately it also again highlights the sad state of Waveform Editors in general.

You probably can create I2C/SPI waveforms as required, by what essentially amounts to hand-drawing your waveform. You could also manually define your waveform in csv format, i.e. through Excel.

I guess you expected something like a button which pre-defines some I2C or SPI waveform and which you can simply change as required. Unfortunately it doesn't work that way. Ultra Station is a really primitive tool, think about as the equivalent as doing photo editing with Microsoft Paint. You really have to use Ultra Station to appreciate how shit it is.
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: onesixright on December 12, 2014, 04:10:28 pm
Thank you, yeah i just found out. Installed it doesn't look state of the art :-)

I actually meant more, can a (i.e. DG1000Z series) burst a I2C signal (i.e. a char) to a LCD (via MCP23006) ?

Anyway you can capture the Wave (DSO), send it to your AWG and replay it ?

Thanks!




Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: alex.forencich on December 12, 2014, 06:48:01 pm
It's not so good for I2C as it is electrically incompatible. First, I2C is an open drain interface - it gets pulled low, but floats high with pull-up resistors. Second, the slave is supposed to be able to stall the bus by holding the clock line low, and the master must wait until the clock line rises before sending the next bit. The arb just plays back the trace without looking at the level, so it cannot be stalled by the slave.

So you can try it, but it might not work very well if the slave tries to stall the bus.
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: onesixright on December 12, 2014, 08:23:40 pm
Thank you, that makes sense.

Waiting for my DG1062Z, I will give it a try!
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: Wuerstchenhund on December 12, 2014, 09:23:38 pm
I actually meant more, can a (i.e. DG1000Z series) burst a I2C signal (i.e. a char) to a LCD (via MCP23006) ?

Not really. Aside from the electrical interface differences, the AWG isn't really a bus device, i.e. it can't react to bus controls.

If you want to create some logical I2C/SPI sequence for demo purposes (i.e. playing with decoding functionality on a scope) then this should be possible. But as a true bus device (i.e. to communicate with other devices) it's unlikely to work.

Quote
Anyway you can capture the Wave (DSO), send it to your AWG and replay it ?

I guess so, if you have a Rigol scope (which I don't). I've never tried importing a csv waveform file from one of my scopes, but I doubt that will work without some modifications to the file.
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: bronson on December 13, 2014, 04:37:41 am
I2C & SPI?  Sounds like a job for a Bus Pirate?
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: onesixright on December 13, 2014, 11:15:11 am
I got a Salea. It snot about capturing the signal, that itself i can do.

The question is if you could generate a I2C/SPI signal on a AWG. I hope you could set the CLK on CH1 and the data on CH2 (atleast for I2C). Of course thats a one-way street.
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: bronson on December 15, 2014, 08:12:21 am
Sure, of course you could kind of use an arb to generate I2C/SPI, just like you could kind use a weed whacker to mow a lawn.  But using the right tool for the job makes life so much nicer.

I'm not quite sure what this thought experiment is supposed to produce?  The bus pirate generates both protocols -- correctly and trivially -- and costs $30.  If this js just about experimenting with the arb, why not ask it do something closer to what it was designed for?
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: dadler on February 05, 2015, 10:10:54 am
Firmware 00.01.07.00.02 is out for the DG1000Z series. This includes bootloader 01.05, if you do not have it already.

Firmware: https://dl.dropboxusercontent.com/s/4zpm630fkoourlq/DG1000Z_00_01_07_Update.zip (https://dl.dropboxusercontent.com/s/4zpm630fkoourlq/DG1000Z_00_01_07_Update.zip)
Update Instructions: https://dl.dropboxusercontent.com/s/tclmmzp80nioqim/DG1KZ_Firmware_Update_Procedure.pdf (https://dl.dropboxusercontent.com/s/tclmmzp80nioqim/DG1KZ_Firmware_Update_Procedure.pdf)

Before:
(https://dl.dropboxusercontent.com/s/nezsedptmwfmsvw/dg1032z_01_06.jpg)

After:
(https://dl.dropboxusercontent.com/s/69e9xnprf8m51ud/dg1032z_01_07.jpg)

I haven't noticed anything different after the update.

Does anyone know how the Arb16M option is unlocked on the DG1000Z series? Mine shows "Arb16M: Uninstalled", but I can't find a menu option. :SYSTem:OPTion:INSTall <random letters> just hangs.
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: BloodyCactus on February 05, 2015, 02:37:20 pm
is there a change list? I'm still on 00.01.05.00.01
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: Wuerstchenhund on February 06, 2015, 05:49:22 pm
It seems the 25MHz square wave is still pretty much crap after upgrading mine from 00.1.04 to 00.1.07.
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: trukresom on February 07, 2015, 08:52:35 pm
Recently I purchased an DG1062Z with the 16MByte option. Owning already an DG4162Z
the only reason to do this was the possibility to generate 2 arbitrary waveforms with reasonable
length and reasonable costs to feed the I/Q-Modulation Inputs of a Vector Signal Generator.

During my experiments I observed a certain number of characteristics which could be
interesting to know before buying a DG1062Z as arbitrary generator. Here are my
findings with an instrument with firmware 01.07.00.02 installed:

In all documents where the specifications of the instrument are listed we can read
under the section 'Arbitrary Waveform' that the Sample Rate is specified to 200 MS/s.
To my surprise, the actual sampling rate setting on the DG1062 in the mode
[Arb] -> [ArbMode-> [SRate] is limited to 60 MS/s. Indeed on page 2-18 of
the User Guide I could find a mention of this.
 
Generating long arbitrary sequences is only possible by downloading
data with the :SOURCE<n>:TRACE:DATA:DAC16 VOLATILE,<flag>,<data>
command, because this is the only SCPI-command which has the <flag> = {CON|END}
argument which allows the download of multiple blocks to the DDRII internal memory.
But as opposed to the Programming Guide (p. 2-173) the packet size must not
exceed 8192 samples, otherwise an error occurs.
   
The output can be generated in 2 modes:
      [ArbMode] -> [Freq] and  [ArbMode] -> [SRate]
   
  A. [ArbMode] -> [Freq]
   
  * Even if a long sequence (> 8192 points) is downloaded with the SCPI-command
    mentioned above, the sequence restarts from the beginning after 8192 samples.
  * If a shorter sequence is loaded, the sequence length remains
    8192 but to complete the sequence to 8192 points, previously
    loaded, old memory contents are inserted.
  * The sample rate is always 8192 * f, where f is the frequency setting.
  * There are apparently 2 asynchronouly superposed (cascaded) sampling
    systems; one with a frequency of 8192 * f and a second one fixed at
    200 MS/s. Cascading these samplers produces a jitter of 5 ns.
    This behavior is similar to the DG4162 whose sampling rate is 500 MS/s
    and therefore produces a 2ns jitter.
  * No interpolation takes place between the samples.
    So, the sequence 0,0.1,0.2,0.3,0.4,0.5.... produces a staircase.

  B. [ArbMode] -> [SRate]
   
  * Generating long arbitrary sequences (> 8192 samples) is only possible
    in this mode.
  * The sampling rate is limited to 60 MS/s which is not in accordance with
    the specification.
  * A linear interpolation is done between the samples. I find that this is
    good behaviour in that it gives smoother waveforms with less undesired
    harmonics. The drawback is that the rise time of a signal cannot be
    lower than the sample interval.
  * With the 16M memory option one can effectively generate waveforms with
    16 Msamples on each channel simultaneously.
  * As opposed to the mode ArbMode->Freq there is no jitter due to interferences
    between samplers.
  * Downloading a sequence of 16 Msamples in one channel takes
    125 s over the LAN (120 kS/s or 2Mbit/s). This is not very exciting on a
    100 Mb/s Network but for my application it is acceptable.
  * While downloading data, the output of the concerned channel is
    stopped while the other continues to work.
  * As expected, pressing the function [Align Phase] synchronizes both channels
    if both channels are set to the same sampling rate and are loaded with
    sequences of same length.
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: matts-uk on April 24, 2015, 06:24:16 am
Hi

The postman delivered my new DG1032Z a couple days ago.  I have done my best to interpret the interesting grammar of the user manual and pretty much found my way around the, not so intuitive, user interface.  A couple functions have completely stumped me though, to the point I am doubting if they work at all.  I raised a support ticket with Rigol yesterday but while I am waiting for a response, I was wondering whether anyone on EEVBlog who has one of these instruments, could help shed some light.

The firmware version is;
Software: 00.01.07.00.02
FPGA: 00.01.00.19
Bootloader: 01.05

1. How do you load/save files in a folder on a USB memory stick?
I can load/save in the root.  I can create a new folder.  I can't for the life of me find a way to 'open' a folder.

2. Has anyone managed to get the 'Seamless DSO Integration' feature to work, with a DS2072A or any other scope for that matter?
I plugged the USB lead supplied with the DG1032Z into the back of my DS2072A and the front of the DG1032Z.  Nothing happens!  The scope does not automatically enter stop mode.  The scope does not show up in the 'Store' browser.  The USB indicator on the DG1032Z does not show up in the interface.

For giggles, I though I would try plugging the lead in the back of the DG1032Z and the front of the DS2072A but the DG1032Z crashed, so I haven't tried it again.

The scope firmware is 00.03.03.SP1, Hardware Version 2.0
The scope USB Device setting is on Computer but of course I tried it on Pictbridge too.
The scope's GPIB ID is set to 1 and the DG1032Z is set to 2

Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: Steve25 on April 25, 2015, 11:11:21 am
Hi Matts,

I have been able to save & load from a folder no problem on my DG1032Z.

Press <Store>. with USB stick inserted.. Use rotary knob to select the usb stick drive.
you will see in right box title 'State File' your directories. Press the -> under the rotary knob.
Scroll down to the folder you want using the rotary knob.
with that folder highlighted press Bowser/dir button.
Now press 'Save' to save the file and type in the file name. Again press save on this screen.
The file should now be saved in the folder you selected initially.

The only things you can save from the Gen I think are 'state files' & 'Arb files' (user-defined). It looks like all the other file types are read only for loading to the Gen.

I also tried the 'seamless DSO integration', but no luck either. It would be interesting to see what Rigol say.

Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: matts-uk on April 26, 2015, 06:37:36 am
Ahh, the "Right Arrow" key.  That's what I was missing.  Thanks.

I was trying to transfer a wave form from my scope.

Rigol got back to me on the seamless scope connection feature too.

"Currently we only support the seamless DSO connection with the
DS1000E series. DS1000Z and DS2000 and DS4000 will follow step by step with
next firmware releases."

It's a damn shame the scpi commands don't support file transfer over the LAN connection.  If they did, I could knock out a half decent file manager GUI in a couple hours.

Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: Steve25 on April 26, 2015, 12:48:53 pm

I checked it with my DS1000E series and it works as described.
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: BloodyCactus on June 24, 2015, 12:41:11 am
checking, there is a 1.08 firmware out; here is the change list

Quote
Version?00.01.08.00.00 Date?2015-6-1
1Support variable idle level in burst mode.Enhancement
2Support screen shot with PNG format.Enhancement
3Support multi-interface in remote mode, and update the LXI library, SCPI library and USB device library.Enhancement
4Keep the phase deviation between CH1 and CH2 unchanged after re-opening output.Enhancement
Title: Re: DG1000Z Arbitrary Waveform Function Generator
Post by: dadler on June 24, 2015, 04:46:09 am
I updated to 00.01.08.

FPGA is the same at 00.19.

Bootloader unchanged from 01.05.

I tested the .PNG print screen mode and it works as described! Cool.

"Idel Level" menu screenshot attached.