How do you install the 16million point memory update for RIGOLDG1022Z func-gen? - Page 1
Forum section: electronics / testgear

author: Ben321
author_rank: Frequent Contributor
timestamp: October 12, 2021, 04:38:48 am
content: I bought the Rigol DG1022Z function generator from tequipment.com, and I also ordered the memory expansion (model number Arb16M-DG1000Z), that increases its buffer size from 64 thousand points to 16 MILLION points. However, I don't know how to install the upgrade. From my understanding, it's only a software update, not installing any memory chips in the device, as according to one review for the memory expansion they said.QuoteI REALLY do not like the sound of that NI VISA crap. I know NI (National Instruments) sells VERY EXPENSIVE software (dwarfing the price of the function generator I just bought). Is there ANY alternative method to install the license key in the function generator? The above review mentions "other VISA tool", but I don't know of any other software that supports VISA (I don't even know what it is, other than something that I've heard before has something to do with NI software control of expensive electronic hardware). I also don't know what format I will receive the key in. Will they ship me a USB stick with the license code on it? Will I need to go to some Chinese Rigol website, and navigate it with the help of Google Translate, and actually fill out an equipment registration form with my function generator's serial number? The function generator hasn't arrived yet, but I want to know all this before it does, so it will be easier to actually setup the device with this memory expansion, when it does arrive.

author: bdunham7
author_rank: Super Contributor
timestamp: October 12, 2021, 04:54:24 am
content: You will get a license key. I don't know what format--paper or email--it's just a long alphanumeric key.1) go to rigolna.com and click support and then license activation, you should be able to figure it out from there2) Google 'NI-VISA' and then download and install the free software that you should easily find3) connect AWG, run NI-VISA and enter the command given in those instructions and the code given by the license activation page and you should be done.

author: Fungus
author_rank: Super Contributor
timestamp: October 12, 2021, 05:08:23 am
content: Quote from: Ben321 on October 12, 2021, 04:38:48 amYes, stay away from NI VISA. It's massive and it's awful.Usually with Rigols you just connect an ethernet or USB cable, use telnet to connect to them on port 5555, then send the string shown above.nb. It's just plain ASCII text. You can also connect via a Python script or whatever and send it that way.

author: aristarchus
author_rank: Regular Contributor
timestamp: October 12, 2021, 07:10:07 am
content: IMHO this is the best option to have SCPI commands to a Rigol instrument->https://peter.dreisiebner.at/rigol-bildschirmkopie/index.htmUsing it with ethernet, it does not require any drivers nor any installation at all.Connect an ethernet cable to your instrument, start the application, click Select and select your instrument from the list.Then select Device and SCPI-Command, a window will open where you can send SCPI commands to the instrument.

author: Ben321
author_rank: Frequent Contributor
timestamp: October 13, 2021, 03:04:01 am
content: Quote from: Fungus on October 12, 2021, 05:08:23 amSo I connected my Rigol function generator and my Windows device manager shows a device called "DG1000Z Serials", which seems to indicate that the USB circuit in the func-gen is a USB-to-serial converter, but it will need a driver to function, as the device manager also shows that this device has no driver installed. I would LOVE to be able to follow your instructions by serial comm to my func-gen, but the problem is no drivers, which is where the NI VISA thing comes in.I first tried to download the IVI driver JUST for my device from the Rigol website, but it said the driver can't be installed without first installing a certain NI framework (but not VISA) called NI-ICP. So I downloaded that as it was a MUCH smaller file (only 500MB instead of 2GB for VISA), so I decided to try this option, installing NI-ICP and then Rigol's own IVI driver for the func-gen. I then checked the Windows Device Manager and it said the driver is still not installed. I then tried to have Windows Device Manager automatically detect and install the driver, but it said it can't find a driver for the device on the computer!THIS IS CRAP!!!!!!!!!!!!!!!!Why does Rigol make it SO HARD to JUST INSTALL A SIMPLE DRIVER?! WHY DO THEY REQUIRE NI'S CRAP!? Rigol should release their OWN STANDALONE DRIVER, and NOT depend on third party driver frameworks like NI's crap. Not EVERYBODY who has this func-gen will want to be LOCKED IN to using it with the NI framework. Some HOBBIESTS like myself, just want to USE THE DEVICE.I'm considering doing the nuclear option, and installing the FULL NI-VISA framework, JUST TO MAKE SURE I can install the 16M-point memory upgrade license, and then UNINSTALLING all that NI crap to save harddrive space, once the memory upgrade license is installed.Also, I keep seeing various references to one piece of software called "Ultra Sigma". WHERE do I download that from? It's NOT available in the downloads page on the official rigolna.com website.

author: 3isenhorn
author_rank: Contributor
timestamp: October 13, 2021, 04:45:45 am
content: Hello,You can finde SigmaDelta in the Downlaod section o the device side:https://www.rigolna.com/products/waveform-generators/dg1000z/https://beyondmeasure.rigoltech.com/acton/attachment/1579/u-0003/0/-/-/-/-/VISA is a really good thing because it generalises control and you don't have to install new drivers for each device.Most manufacturers have their own package of VISA drivers (e.g. Keysight and R&S) and there is even a pure Python implementation.Alternatively you can try to connect via Lan, this is the way I usually use my DG1022z and according to the manual you can also use a USB Thump Drive to activate a licence.

author: Ben321
author_rank: Frequent Contributor
timestamp: October 13, 2021, 05:21:56 am
content: Quote from: 3isenhorn on October 13, 2021, 04:45:45 amBIG THANKS! But what is SigmaDelta? I've never heard of that before. Is that a simpler version of UltraSigma? With either UltraSigma or SigmaDelta, are those standalone alternatives with their own dedicated Rigol equipment drivers, that don't require a full install of NI-VISA? NI-VISA is HUGE, so if possible I would like to uninstall it.Also the Rigol page you linked me to doesn't contain any SigmaDelta downloads, only an UltraSigma download (which in itself is still a pretty big file at over 500MB).I think that simple control of this device shouldn't require a driver+software combination exceeding about 10MB, if it had its own standalone driver and control software, rather than depending on some kind of 3rd party platform.There is no license file on the Rigol licensing website. I just get a plain text file with the authorization code in it, and need to send that specific text string to the device, unless there's some way to convert the plain text file to a usable license file the device will recognize. Regarding the USB drive, I already tried putting the plain text file on a USB drive, and tried getting the func-gen to load it the text file. It says it doesn't recognize the file format.Update:I'm now installing UltraSigma and noticed it already has the NI drivers builtin to the install (though older versions than the ones I'd previously installed from NI), so I didn't really need a separate NI installation. I just hope that the older UltraSigma software will not be incompatible with the newer NI drivers I'd already installed from the NI-VISA package.

author: 3isenhorn
author_rank: Contributor
timestamp: October 13, 2021, 05:53:39 am
content: Also the Rigol page you linked me to doesn't contain any SigmaDelta downloads, only an UltraSigma download (which in itself is still a pretty big file at over 500MB)Sorry I got confused with the names, UltraSigma is the correct name.I was confused with the ADC method I am currently learning.To find the information, you need to select the correct tab in this section (see attached image).Quote from: Ben321 on October 13, 2021, 05:21:56 amActually it does, the problem VISA needs drivers for all devices, but you can send commands to the network socket as suggested earlier.Quote from: Ben321 on October 13, 2021, 05:21:56 amThe manual under Front Panel Operations 2-112 describes how to create the file, essentially serial number, key and saved as a .lic file.Hope you get it done now

author: Ben321
author_rank: Frequent Contributor
timestamp: October 13, 2021, 06:41:40 am
content: Yep. I got it working. By the time you replied with how to get it to work with a lic file on a USB drive, I'd already managed to install UltraSigma and send the command to get it to work over USB cable.Is this the page in the manual you were talking about.I wish that was posted plainly in the instructions that they emailed me, or even somewhere on the main rigolna.com website, so I that I didn't have to go hunting down software like the UltraSigma and NI-VISA.Now that I do have the 16M upgrade installed though, how do I actually generate a 16M waveform for it? All the official Rigol waveform making software (UltraStation) has is the ability to make a 4096 or maybe 8192 point waveform. Is there documentation for the actual waveform file format, so I could maybe write my own software to generate a proper waveform file? I want to be able to generate very complex waveforms for special signals. With 16 million points, that's enough for 30 full frames (1 second's worth) of NTSC video with with each frame containing well over 500000 pixels (including image pixels and sync/blanking pixels), with a total width of over 1000 pixels (counting both image and sync/blanking pixels). So that's one full second of video stored as a single waveform! I could EASILY use this to turn my func-gen into a TV test signal generator (which actually was my motive for spending $180 on the 16M point memory upgrade in the first place). I would just need to output it from the func-gen to a TV's composite video input RCA connector. It's great too, because both the output of this func-gen and the composite video input of a TV are rated at 50 Ohms, so it's a good impedance match.

author: Fungus
author_rank: Super Contributor
timestamp: October 13, 2021, 06:47:11 am
content: Quote from: Ben321 on October 13, 2021, 05:21:56 amThey both require a VISA driver to do anything.Quote from: Ben321 on October 13, 2021, 03:04:01 amI'm not sure how Windows can show the name of a device without having a driver. Normally it would just say "USB serial device" or something like that. Maybe it's a CH340 USB-to-Serial chip, I think FTDI pays Microsoft to not install drivers for those. TheCH340 driveris used in all sorts of things so it's widely available.I always used Ethernet. Connect it to your router with an Ethernet cable (you may have to set the IP address in the device) and use telnet on windows command prompt.OTOH it should be possible without using anything at all. Deep in the device menus there'll be a place where you can enter serial numbers manually.

author: 3isenhorn
author_rank: Contributor
timestamp: October 13, 2021, 07:49:06 am
content: Quote from: Ben321 on October 13, 2021, 06:41:40 amNice! Yes, that was what I was referring to.Quote from: Ben321 on October 13, 2021, 06:41:40 amI personally use Python but had some difficulties finding the right format for the signal generator, see this thread:https://www.eevblog.com/forum/testgear/bring-long-arb-sequences-to-dg1062z/msg3573687/#msg3573687https://www.eevblog.com/forum/testgear/rigol-dg1000z-raf-file-format/msg2546961/#msg2546961Quote from: Fungus on October 13, 2021, 06:47:11 amI can only agree with that

author: Ben321
author_rank: Frequent Contributor
timestamp: October 13, 2021, 09:07:40 pm
content: So now that I have VISA and everything installed on my PC, how do I send raw waveform data over the USB cable to the DG? Is there a visa.dll or something that I can add to a program I'm writing, in order to make it communicate over USB to my DG?Alternatively, if I decide to go the Ethernet route, how would I use that to send arbitrary waveform data? Does the Ethernet control method use the same set of commands as used by UltraSigma over USB (just using a simple TCP connection)? Or does the DG instead present a full web interface, with controls accessible from my PC's web browser?Also, if I do go the Ethernet route, connecting my DG directly to my PC, will I need to have a normal Ethernet cable? Or will I need a crossover cable? I know for PC-to-PC you need a router between them or are forced to use a crossover cable. I don't want to use a router between my PC and my DG, because it will introduce some latency.

author: Fungus
author_rank: Super Contributor
timestamp: October 14, 2021, 04:41:10 am
content: Quote from: Ben321 on October 13, 2021, 09:07:40 pmNope. It's just ASCII text. You send ASCII strings to the device over the connection.

author: Ben321
author_rank: Frequent Contributor
timestamp: October 14, 2021, 05:04:40 am
content: Quote from: Fungus on October 14, 2021, 04:41:10 amBut VISA doesn't emulate serial or anything. It provides a special link that software like UltraSigma can use, but I want to write my own control software. I don't want to keep depending on UltraSigma software to send commands. I assume UltraSigma is communicating with the VISA driver using a DLL file that provides a VISA interface. What is the name of that DLL file, and what functions does it export that I can call from within my own program?

author: 3isenhorn
author_rank: Contributor
timestamp: October 14, 2021, 05:29:02 am
content: NI visa provide examples for C:https://www.ni.com/de-de/support/documentation/supplemental/18/ni-daqmx--ni-visa--and-ni-488-2-visual-c---example-locations.htmlR&S proivdes an overview of diffrent Languages:https://www.rohde-schwarz.com/de/driver-pages/fernsteuerung/why-visa-_231254.htmlAnd I recomend always pyvisa:https://pyvisa.readthedocs.io/en/latest/Quote from: Ben321 on October 13, 2021, 09:07:40 pmMost modern network interfaces are able to handle this, so usually no crossover cable is needed.I have never been able to send large data sets to the unit over a remote connection, the scpi command :SOUR1:DATA VOLATILE, <value>,<value>.... only supports 16k points.This is the reason I switched to thump drives, but maybe others here can help.

author: Ben321
author_rank: Frequent Contributor
timestamp: October 14, 2021, 06:33:29 am
content: Quote from: 3isenhorn on October 14, 2021, 05:29:02 amCan you maybe tell me where this PDF file came from? It seems to show commands NOT listed in the normal programming guide.https://www.eevblog.com/forum/testgear/source-for-arb-waveforms/?action=dlattach;attach=472052Apparently somebody posted it somewhere on this forum, as I found this from a Google search but by its URL it appears to be an attachment from somewhere on this forum. I have also NEVER seen that document anywhere on the official rigolna.com website (or any other location on the internet either).Part of this document describes using a "binary_block_data" method of transferring data to the device. There's 2 problems here though. First, the format of the binary_block_data is not specified. Secondly, the way the command is shown is hard to decipher. I know usually [] are used for optional parameters and <> are used for required parameters, but what are the {} symbols meaning here? Are they intended to be used literally in the actual command? Or are they just indicators to show a certain section of the command for the purpose of documenting it? What would REALLY help, but is NOT provided even in this document, is an actual EXAMPLE string for showing how to use the binary_block_data method of sending an arbitrary waveform to the DG1022Z.What it shows in the PDF file for this command is this:QuoteUPDATE:Ok, I figured it out. The stuff from the above PDF is documented in the programming manual (and in fact it includes some data that the above PDF didn't include like the format for the raw binary data blocks). I just hadn't seen it originally. When done properly, the command will look like this.Code::SOURce:TRACe:DATA:DAC VOLATILE,#510000<<RAW DATA GOES HERE>>I'm not sure if a CRLF or even LF is required after the data, as it normally is with pure ascii commands, as this command ends with raw binary data (like actual bytes of data to send the waveform values, not numerical text). Each sample is a 2-byte unsigned integer between 0 and 16383 (inclusive). The # is how a raw data block is started. After the # is a single digit indicating the number of digits to follow. The digits that follow make up the textual representation of a number, specifically the number of bytes of raw data that follow. In the above example, 5 means that the byte-count is a 5 digit integer numerical string, and the actual numerical string "10000" means that there will be 10000 bytes of raw data after that. Because each sample's value a 2-byte integer, this means that the data block contains 5000 samples of waveform data.Unfortunately this method doesn't seem to work for a number of samples larger than 16384 samples for the waveform, even WITH the 16M memory expansion installed. Is there some technical reason for this? Or did they intentionally cripple it, because commands for sending very large waveforms actually DO work for some of their more expensive models of function generators (costing THOUSANDS of dollars per unit)?

author: Ben321
author_rank: Frequent Contributor
timestamp: October 14, 2021, 09:13:44 am
content: Quote from: PeDre on October 14, 2021, 08:33:56 amWill it then store that in memory? Or do I need to continuously generate a stream of waveform packets, after the last one the signal shuts off?

author: tv84
author_rank: Super Contributor
timestamp: October 14, 2021, 09:25:11 am
content: Quote from: Ben321 on October 14, 2021, 06:33:29 amIt came from one of Rigol's sites. I think the URL is irrelevant or do you think people in the forum are creating Rigol branded docs on Rigol's behalf? That's precisely why me and many others, sometimes, post some obscure docs in this forum. (It's easier to find them here than on some vendor's sites.)Usually there are many SCPI commands on devices' firmwares that are not listed in programing guides.

author: Fungus
author_rank: Super Contributor
timestamp: October 14, 2021, 11:45:41 am
content: Quote from: Ben321 on October 14, 2021, 05:04:40 amNope.If it's a serial port when you connect a USB cable then you just open that serial port and send ASCII strings to it.If you use Ethernet cable then set up the IP address, open a socket connection and send ASCII strings.No VISA, no .dll needed.Here's a list of commands:https://www.batronix.com/pdf/Rigol/ProgrammingGuide/DG1000Z_ProgrammingGuide_EN.pdf

author: Ben321
author_rank: Frequent Contributor
timestamp: October 14, 2021, 09:24:48 pm
content: Are the values signed or unsigned? That is, is each 14bit sample a signed value (MSB being the twos-compliment sign bit), or is each sample a 14bit unsigned value?

author: Ben321
author_rank: Frequent Contributor
timestamp: October 14, 2021, 11:49:26 pm
content: I tested it with unsigned values, and it seems that this is the correct way. Also, I would like to point out that these are little-endian, in case I didn't mention that before.Also, unlike this posthttps://www.eevblog.com/forum/testgear/rigol-dg1000z-raf-file-format/would indicate, you don't NEED to have a header. You can use a raw .raf file without the header, and it will work. If the header's CRCs are correct, then the DG reads the data starting with the first byte after the header. If the CRCs are not correct, it assumes that the first byte of waveform data is the first byte of the file, and reads the entire file as waveform data. The probability of waveform data just by chance matching the exact required CRCs and also containing other values that are valid for the various header fields, is so slim, that it doesn't even consider the possibility of the CRC being correct by chance. Though in an EXTREMELY RARE rare situation this theoretically could happen, and would mean that if the waveform did contain values that happened to be the correct CRC values, then it would read the start of the waveform data as header data, get messed up configuration values for the DG, and lose 56bytes of waveform data (skipping the first 56 bytes, because it thought they were the header).If the header is present but has the wrong CRCs, then it's assumed that even the first 56 bytes are part of the waveform (it assumes that there is no header), meaning the waveform will now include 56 extra bytes at the beginning of the file that the waveform was never supposed to have, so the waveform will be unusable.When the CRCs don't match, such that the entire file is raw waveform data (no header to indicate the number of data points), then the DG easily calculates the number of data points, by taking the filesize, and dividing by 2.

author: Ben321
author_rank: Frequent Contributor
timestamp: October 15, 2021, 02:18:36 am
content: Read this thread to see how I'm using this function generator in my experiments.https://www.eevblog.com/forum/projects/generating-test-video-signal-with-rigol-dg1022z/