Other Than FFT Feature Useful for an Oscilloscope - Page 1
Forum section: electronics / testgear

author: Mechatrommer
author_rank: Super Contributor
timestamp: October 09, 2010, 08:33:05 pm
content: There is possibility to:1) collect raw data from the DSO to PC, probably realtime (or at least almost realtime)2) do some special post processing in PC based on that raw data3) display it on PC Monitor in realtime manner too, possibly on graph etcso here i ask suggestion if there is special or specific function/feature/processing thats usually needed in any EE discipline while doing analysis using this DSO thing, since i'm not specialized or expert in EE. If there is possibility in term of manpower and time for me to develop it, maybe i'll give it a try. Think of the FFT, A + / - x B function thats already available in the Rigol, but whats not? things like that. I hope i can see some replies. CheersCurrent Development:Version 1.2.0Version 1.1.3Version 1.1.2Version 1.1.1Features:-Just simple control and display of Rigol DSO (whooping fast XY mode display)-Logic Analyzer alike with peculiar features?-XY (Line?/Dot) Mode, Persistence View, dV/dDiv-FFT View, CSV and RAW File Output, BMP Capture and Averaging data.-Phosphor and persistence simulation-Beep upon triggerHow to Run:1) NI-Visa driver should be installed (visa32.dll)2) vb6 runtime (which) i think already installed in WinXP or later.3) just download the zip, extract the exe and run.if you worry, make sure your antivirus is active.I'll provide VB6 runtime install file wheni got homenecessary/requested.

author: bilal8660
author_rank: Newbie
timestamp: October 09, 2010, 10:08:51 pm
content: no thanks stay away from EE

author: semaphore
author_rank: Contributor
timestamp: October 09, 2010, 11:11:00 pm
content: Serial protocols decoder (UART, SPI, I2C, 1-wire, CAN and etc.). Basically just turn it into logic analyzer. That would be really really cool!

author: NiHaoMike
author_rank: Super Contributor
timestamp: October 10, 2010, 01:27:26 am
content: Have it control a signal generator, then draw Bode plots with it. And maybe also use the oscilloscope/signal generator as an adjustable frequency LCR meter with the help of a simple external circuit.

author: PeterG
author_rank: Frequent Contributor
timestamp: October 10, 2010, 03:02:58 am
content: I would really like to see a serial decoder like semaphore said.It would be really cool if a captured waveform from the scope could be exported to a Rigol Function Gen(DG1022?), i would settle for the FG file being saved to a usb stick for use with the FG.Regards

author: TopherTheME
author_rank: Regular Contributor
timestamp: October 10, 2010, 03:30:39 am
content: +1 for Bode plots although I don't have a Rigol scope (I have a Agilent DSO3102A).Do Agilents and Rigols use the same drivers?I have a matlab program lying around here somewhere that takes data from a Tek TDS210 and makes a Bode plot to be used for electroimpedence spectroscopy. Never really worked well though since the crappy serial port always bogged things down.

author: Mechatrommer
author_rank: Super Contributor
timestamp: October 10, 2010, 03:36:23 am
content: Quote from: bilal8660 on October 09, 2010, 10:08:51 pmi thought u are away bilal! when are you going to report your 4202 scope? is there any function in your scope thats not available in "Cheaper" rigol?Quote from: semaphore on October 09, 2010, 11:11:00 pmcool idea! logic and protocol analyzer, up to some point. need to study CAN though, never come accross, any link?Quote from: NiHaoMike on October 10, 2010, 01:27:26 amQuote from: Darkman1969 on October 10, 2010, 03:02:58 ami'm not sure i understand whats nihaomike means on how the PC control the FG, maybe i dont have the unit then i dont know? to control FG by PC (if the function available for the FG), then i have to study how they communicate, but as i said i dont have it. But if Darkman said to create a DG1022 compatible file and be placed in USB Stick, then also i need to know/study/have the file format.Quote from: TopherTheME on October 10, 2010, 03:30:39 amdoes 3102A/210 can comm through USB? use VISA? even if yes, the data format might be different, and again i dont have Agilent/Tek, sorrybut the bode plot thing can be done for Rigol i think.

author: NiHaoMike
author_rank: Super Contributor
timestamp: October 10, 2010, 05:20:10 am
content: If you have a signal generator that could be adjusted by the PC, you could have it change the frequency step by step and read the input and output waveforms of your circuit under test using the oscilloscope in order to draw a Bode plot.

author: PeterG
author_rank: Frequent Contributor
timestamp: October 10, 2010, 07:10:50 am
content: Shafri, i can confirm the DG1022 can be configured via a PC. The Rigol software allows you to design a waveform and send it to the FG.I do not know what format the DS1102E dso saves data. I know it can save a screen dump, but can it save raw data to a file?I am thinking its time to install a USB sniffer and have a look...Regards

author: Bored@Work
author_rank: Super Contributor
timestamp: October 10, 2010, 08:02:13 am
content: Quote from: shafri on October 10, 2010, 03:36:23 amSomeone already did this for youhttp://code.google.com/p/gds2000tools/#gds-funcgen_Data_Conversion

author: Mechatrommer
author_rank: Super Contributor
timestamp: October 10, 2010, 05:29:07 pm
content: here i want to list some of my reference, in case i lost it.1)http://members.iinet.net.au/~geoffg/DS1000E.html2)http://www.cibomahto.com/2010/04/controlling-a-rigol-oscilloscope-using-linux-and-python/3)http://www.mathworks.com/matlabcentral/fileexchange/18999-read-binary-rigol-waveformsto be added...

author: logictom
author_rank: Unknown
timestamp: October 11, 2010, 10:29:59 pm
content: I only hooked my Rigol up once many moons ago, which drives/software do I install to get it up a running with your app?

author: Mechatrommer
author_rank: Super Contributor
timestamp: October 11, 2010, 11:16:58 pm
content: Quote from: logictom on October 11, 2010, 10:29:59 pm1) ni-visa driver2) vb6 runtime (which) i think already installed in WinXP or later.3) just download the zip, extract the exe, check virus and run.ps: updated on the main post.

author: PeterG
author_rank: Frequent Contributor
timestamp: October 21, 2010, 10:49:56 am
content: I had a play with this idea today. Seems the Rigol system wont readily allow real-time data. This makes a serial decoder a very complex challenge.It seems the scope will only output in blocks of 1024 bytes of data.I am using the full NI sdk for .net. It seems most of the scopes functions are available via the sdk. Now i need to work out if it is worth while pursuing it.Shafri, Have you found any method for getting the scope to stream data?regards

author: Mechatrommer
author_rank: Super Contributor
timestamp: October 21, 2010, 12:00:06 pm
content: Quote from: Darkman1969 on October 21, 2010, 10:49:56 amto get "almost" real time display, the command is ":WAV:DATA? CHANX" where X is 1 or 2, the rigol will give about 800 of waveform bytes, approx 256 level resolution quite quickly that we can see it as real time display only on PC as my "Toy" App demonstrated.however, for analysis purpose it is a total useless (well... not totally, esp for digital purpose, hi-lo only;) ).in order to do serious analysis we have to use different command which i'm yet to figure out to get higher resolution data. The example is demonstrated by the Rigol Software itself (slower display update rate on PC), but the drawback is, the download time will be alot slower and preventing realtime display. for fast serial comm capture, this method is not practical.So i'm thinking (and yet to develop) to combine both method... but first we have to setup the DSO to do the single triggering while waiting for serial data to come in. when they do, DSO will be triggered and put to "Stop" mode. We also have to set the timescale correctly as to avoid redundant data on each bit and lessen the bit count captured... i think... so the proc on PC App will:1) during waiting for trigger, App sends :wave:data? to get realtime display.2) at the same time, we check the rigol state (run/stop), if its stopped then we know the data is triggered (single triggering)3) App sends command to get higher resolution data after state stop is detected (will take sometime).4) Analysis in PC.thats currently my thought, I'm waiting my next project that will use this serial data comm, currently i dont have platform to generate serial comm for testing and debugging my VB App.disember update: striked sentence above due to i found out later that 8 bit is the actual data that Rigol can produce, nothing more. there is no such thing as "higher resolution data" as striked above.

author: PeterG
author_rank: Frequent Contributor
timestamp: October 21, 2010, 12:21:32 pm
content: Shafri, what your saying regarding getting real-time data is about what i thought. I was hopeful there was a better way. The idea of having to manually extract the data in packets from the scope of is messy at best. The chance of data bits going missing during a read is very high due to the delay between the packets being received.PS, i could not get and graphics to show up on my computer as i don't have Photoshop CS3 installed.Regards

author: Mechatrommer
author_rank: Super Contributor
timestamp: October 21, 2010, 04:00:28 pm
content: Quote from: Darkman1969 on October 21, 2010, 12:21:32 pmif you are thinking of getting every data while the scope is running, i may say we should forget about it, USB comm is too slow for 2Gs/s. i'm counting on the rigol to do the triggering and later collect the data from Rigol memory/buffer in "Stop" mode. thats all i know right now. Regarding graphics, it got nothing todo with photoshop, sure it cannot transate the data. you should do your own programming to draw the graphic, the realtime data is just a series of raw data (y-axis value) from x=0 to x=799 (total 800 bytes) IIRC. you may code in your .net such example (mine is just vb (pseudo), i dont understand .net sorry):dim i as longdim buf() as byte'get realtime data from rigol = SendRigolCommand(":WAVE:DATA?CHAN1")'and put in buf()for i = 0 to 799plotCoor(i, buf(i)) 'plotCoor(x,y)'orline(i,buf(i),i+1,buf(i+1)) 'line(x0,y0,x1,y1)next i

author: scrat
author_rank: Frequent Contributor
timestamp: October 21, 2010, 06:19:00 pm
content: Somewhere (for example here:http://linux.derkeiler.com/Mailing-Lists/Kernel/2010-08/msg09414.html) there is a reference to a USB bulk tranfer mode on the Rigol, which would allow to download much more data at a higher rate.However, the scope won't always be used at at its maximum sampling rate, and moreover it isn't really real-time: it captures few only few time-windows of the total time. In fact its trigger is off most of the time, while the DSP executes. We spoke about the typically low waveforms/s rate of scopes here:https://www.eevblog.com/forum/index.php?topic=30.msg14514#msg14514.If we can donload only 1024 samples at a time, it won't be so bad, I think that if a PIC's UsART detects asynchronous data by sampling at 16x, a post processing software (which could be much more intelligent) could decode at 4x, so 1024 points mean 1024/4 = 256 bits, at max (if data is sent continuously and the timebase fits exactly 4x sampling). That's not too much, but it's a bit..sorry, many bits!https://www.eevblog.com/forum/index.php?topic=30.msg14514#msg14514

author: sigxcpu
author_rank: Regular Contributor
timestamp: October 21, 2010, 07:47:09 pm
content: All the transfers are bulk. Rigol has 3 USB endpoints: 0x01 bulk for PC->scope, 0x82 bulk for scope->PC and 0x83 for interrupt (slow transfers, not used here).I've created a libusb wrapper (open, write, read, close) in C (libusb is across all major platforms) and now I want to wrap this library in Java using JNA.There are two modes to get data from the scope:1) "short" buffer (600 samples)send ":WAVEFORM:POINTS:MODE NORMAL"send ":WAVEFORM:MEMORYDATA? CHANNEL1" or ":WAVEFORM:DATA? CHANNEL1" (I've got same results)2) "long" buffer (16384 bytes or 524288/1048576 bytes if long memory is enabled)send ":STOP"wait some time (I've tested with one second), maybe to fill the memory buffer and execute "STOP"send ":WAVEFORM:POINTS:MODE MAXIMUM"send ":WAVEFORM:MEMORYDATA? CHANNEL1" or ":WAVEFORM:DATA? CHANNEL1" (I've got same results)First mode is OK for "realtime" display refresh (~200 refreshes/sec tested). Second mode is better for longer data captures.@shafri: if you want the "key lock/unlock" feature you can use the following commands:":KEY:LOCK ENABLE" - locks the panel and displays the red "Rmt" string":KEY:LOCK DISABLE" - unlocks the panel and clears the "Rmt" stringfirmware is 02.04.00.03

author: scrat
author_rank: Frequent Contributor
timestamp: October 21, 2010, 10:58:56 pm
content: Very good! Thanks for explaining. It wasn't so clear from the info I had read before (and from the programming guide).Could you share this libusb, please? It would be great.With all the memory downloadable, I plan to test some post processing in Matlab...Just let me receive the scope

author: Mechatrommer
author_rank: Super Contributor
timestamp: October 22, 2010, 12:23:55 am
content: Quote from: sigxcpu on October 21, 2010, 07:47:09 pmthanx sigs, now i dont have to dig any further anywhere, you've provided the info esp on long memory download.when signing out (closing comm) i'll use key:lock disable (which is enable automatically when sending command) to enable the knob control (rmt off)

author: PeterG
author_rank: Frequent Contributor
timestamp: October 22, 2010, 05:31:12 am
content: Thanks for that info Sigscpu, helps a lot. At least now we should be able to get reasonably large captures. 16k is a lot better for formatting for the Rigol FG. 600 was looking a bit sad. It is interesting that the Rigol documentation states that the scope should output 1024 bytes of data not 600. I have been unable, so far, to get it to output 1024bytes?This is starting to look interesting. Better than my usual dev work...LOLRegards

author: sigxcpu
author_rank: Regular Contributor
timestamp: October 22, 2010, 10:49:26 am
content: BTW, for Windows users (I'm a Mac user myself and started to toy with this because NI VISA works on mac 32-bit only) you can download a 33 days demo of USBlyzer to spy the protocol that Ultrascope usesI've done this in a virtual machine and retrieved some of those exact commands. The MAXIMUM thing was "stolen" from website, don't remember which.

author: scrat
author_rank: Frequent Contributor
timestamp: October 22, 2010, 11:24:20 am
content: Quote from: sigxcpu on October 22, 2010, 10:49:26 amAnother helpful info... Thanks.This fact of not/bad documented commands confirms the strangeness of Rigol policy. The long data block download feature is very interesting, why did they hide it? Is it because they wanted it to be "avaliable" only on their higher-end scopes?However, we should have had another look at the firmware, searching for commands.Who knows, perhaps there are still other interesting hidden features...

author: PeterG
author_rank: Frequent Contributor
timestamp: October 22, 2010, 11:36:54 am
content: The following "undocumented" commend list was posted by MXMXMX of the rcgroups forum.:CHANNEL:ACTIVE?Returns which channel is active, i.e. will be affected when changing the vertical scale or position.:CHANNEL:ACTIVE CHANNEL1Makes channel 1 the active channel:DISPLAY:SCREEN?:DISPLAY:SCREEN INVERTED:DISPLAY:SCREEN NORMALWith these commands the screen can be inverted and changed back to normal.:SYSTEM:DATA?Returns 112 bytes of data.:IO:TEST ECHOReturns the data passed to the command ("ECHO" in this case).:WAVEFORM:DATA? XYReturns 2048 bytes of data.:WAVEFORM:DATA? ROLLReturns 2048 bytes of data.:WAVEFORM:MEMORYDATA?Maybe a synonym for ":WAVEFORM:DATA?"?:WAVEFORM:POINTS:MODE MAXIMUMAllows to read entire memory contents with ":WAVEFORM:DATA?" when the acquisition is stopped. See posting below for more information.:WAVEFORM:POINTS:MODE NORMALSwitches back to "normal" mode where ":WAVEFORM:DATA?" returns only 600 points.:STORAGE:TYPE?Returns "WAVEFORMS".:INFO:SERIAL?Returns the serial number.:INFO:SERIAL 12345Sets(!!) the serial number returned by "*IDN?" and shown in the "System Info" dialog.:INFO:MODEL DS1xxxxSets(!!) the model returned by "*IDN?" and shown in the "System Info" dialog.:INFO:POWERUPTIMES?Returns the number of times the scope was powered up.:INFO:EQUTRIGDELAY?For my scope, it returns "-5.30e-09". Careful(!!): There is also a command to change this setting. I expect changing this setting could break your scope.:INFO:REALTRIGDELAY?For my scope, it returns "8.00e-10". Careful(!!): There is also a command to change this setting. I expect changing this setting could break your scope.:INFO:KEYS?Returns the key code required to unlock the keys if locked via the "Special Mode" menu.:INFO:KEYS 121212Changes the key code.:INFO:ULTRASCOPE?Returns "OFF".:COUNTER:VALUE?Returns the value of the hardware counter.:RS232:BAUD?Returns the baud rate of the serial interface.:RS232:BAUD 19200Changes the baud rate of the serial interface.*RIGOLSwitches to Rigol's command set.*TEKSwitches to a command set, which tries to emulate a Tektronix scope to some degree.:WHOAREYOU?Returns "I'm RIGOL" if the Rigol command set is active.Maybe we cam build on this.Regards

author: PeterG
author_rank: Frequent Contributor
timestamp: October 22, 2010, 02:50:00 pm
content: OK, so its 1:30am and i am a bit silly. I ran through the firmware file for this scope, with Ultraedit, and put together a txt file containing the text strings i found within it. This should give us an idea of all the commands available. However i would advise caution as some of these commands may break the scope if not used correctly. So use this file as a reference only.Regards

author: Mechatrommer
author_rank: Super Contributor
timestamp: October 22, 2010, 06:04:45 pm
content: thanx darkman and sigs for the info.i have problem though during dev of my toy app, is to change trigger level from pc. i've done it but not so smoothly with :KEY:TRIG_LVL_INC or :KEY:TRIG_LVL_DEC. The UI is click and drag down or up to change the level using the command mentioned, but it turned out my pc got stucked and not smooth, i'm looking for better way to do this.

author: DJPhil
author_rank: Frequent Contributor
timestamp: October 22, 2010, 08:37:01 pm
content: Quote from: Darkman1969 on October 22, 2010, 02:50:00 pmI messed with this text file a bit in an attempt to organize it, but I'm not sure if I succeeded. Attached is a .csv file that can be viewed as text or imported to a spreadsheet. Maybe it'll help, but I don't hold out much hope.Quote from: shafri on October 22, 2010, 06:04:45 pmThe best gui 'rotary knob' I've worked with was on an old VST plugin for an audio program. If you click and drag on the knob moving up and down was like a max coarse adjustment and moving right to left did nothing, but any angle in between could be used to fine adjust. For example, you'd click and drag mostly straight up to raise the trigger fast, then add right movement to the pointer as you get close, finally you're moving mostly right for the finest adjustment. I know I'm probably not explaining it very well, but it was a very elegant system for precisely selecting among a huge range of values. For all I know this is commonplace, I'd just only seen it explained on that single VST plugin. You might be able to set it up so that the change doesn't commit until left-mousebutton-up, if that makes sense (forgive me, I haven't programmed in a gui since VB3, and then only kid stuff).Hope that helps.

author: Mechatrommer
author_rank: Super Contributor
timestamp: October 22, 2010, 09:16:20 pm
content: Quote from: DJPhil on October 22, 2010, 08:37:01 pmthanx for the effort and advice. some effort and thinking will be needed on the GUI, thanx.

author: PeterG
author_rank: Frequent Contributor
timestamp: October 23, 2010, 12:07:13 am
content: Nice work DJPhil, now the fun will really start.We should now be able to get most of the things we want out of this scope.Shafri, i will be using a simple up/down button for the Trig/Lvl setting. There are several examples floating around the net for rotary controls in VB6 and VB.net. Last time i used VB6 was several years ago, stopped using it when it refused to install on my 64bit Vista machine and I don't like my chances now i am using Win7 64bit.Has anyone played with the "*TEK" command yet?Regards

author: PeterG
author_rank: Frequent Contributor
timestamp: October 23, 2010, 12:54:59 am
content: No reason to use the TEK command, but it does stand out of the crowd. Its a bit of a "What does this do?" thing..If i had a choice i would be using VB6, not at all happy with the way .net works. Give me vb6 and native code any day. But i have to make thing all shinny and frilly to keep clients happy. I also need to make things work on newer OS/computers. I do run XP with vb6 in VM if i really need it but i am more comfortable with .net these days.

author: sonicj
author_rank: Frequent Contributor
timestamp: November 10, 2010, 02:51:13 am
content: ableton live is a good model to study for a simple, clean, functional UI.

author: Mechatrommer
author_rank: Super Contributor
timestamp: November 30, 2010, 03:56:05 pm
content: i'm working on logic probing. from what i found out, during dso running mode, it will return 600B's 8b values, as mentioned earlier. however during stop mode (triggered after single capture), dso will return 16384B's of the same format 8b values (just as sigxcpu mentioned) but with 5X more horizontal resolution (sampling) compared to running mode data, so meaning we will get 5X++ more captured data than what is shown on the rigol display (my math says (16384/(5*600)). still struggling to output any usefull data out of it. i'm working on it, i'm working on it. its been several days now. sigh!

author: Mechatrommer
author_rank: Super Contributor
timestamp: December 07, 2010, 09:42:46 pm
content: i'm done with logic probing, but only generic one, not specific spi, uart etc comm (no DUT ready for testing yet), just direct translation 010101. to perfect it will take forever, so alpha/beta testers are highly welcomed... and see how much help this program could do. link on the 1st post updated to version 1.0.2

author: Mechatrommer
author_rank: Super Contributor
timestamp: December 08, 2010, 05:42:03 am
content: i forgot to mention... if you are lost in the program, go and click the "H" button (help) on the main panel (bottom right). looking forward to any bug report for improvement.you may as well link to the other usefull App for this Rigol DSO whether created by you or somebody else. Cheers.

author: Mechatrommer
author_rank: Super Contributor
timestamp: December 10, 2010, 01:52:57 am
content: i'll be uploading ver1.1.1 soon (with VB programming guide on how to program a "companion program"). if you are good enough, you should be able to port it to Windows C Programming. i'll be providing "non optimized code" so if any bugs happening, it will not just terminate disgracefully, at least there is a message box telling whats happening.if it cannot be run indicating there is dll or files is missing, pls inform me, i'll make an installation file for mostly used VB dll, ocx. thats the bad thing about vb, much dependent on other files. but i try it as KISS as possible, even the save dialog form is just a simple stupid InputBox, not a true File Dialog Box (comdlg.ocx).

author: ElektroQuark
author_rank: Unknown
timestamp: December 10, 2010, 09:03:22 am
content: I'm looking for a time break to look at your software.Thank you shafri.

author: Mechatrommer
author_rank: Super Contributor
timestamp: March 19, 2011, 09:56:04 pm
content: Took me 3 days to think:1) Why Rigol didnt provide finite presistent display mode? (only infinite and off) must tried to cut the cost the development time. wouldnt it be nice if say we have finite persistence, eg 0.1, 0.2, 0.5, 1, 2, 5, 10, 30 second? like they did to their Menu Display duration2) XY Mode of Rigol only capable of 200us - 20ms capture (1MSa/s - 10KSa/s), why cant they draw XY down to 2ns? or up to 50secs? i still cannot figure out why?3) I saw other high end DSO can do dV/dt, i wonder how usefull it is. How about d2V/dt2?O well, maybe i just have wasted those 3 days imagining things

author: Franki
author_rank: Regular Contributor
timestamp: March 19, 2011, 11:14:36 pm
content: 1) ability to reinject a previously captured waveform (like a general waveform generator)2) ability to display the Z-transformtion of a signalspecial 3) operations on FFTs and Z-transformtions and inject waveforms resynthesized out of FFTs and Z-transforms into the circuit

author: PeterG
author_rank: Frequent Contributor
timestamp: March 19, 2011, 11:30:24 pm
content: The DS1052x scopes dont have the ability to reproduce there captured signal as an output. However it is be possible to save the captured data and send it to a Rigol FG. I have looked at this and i believe the DSO data can be converted to a format for the FG to read as a Arb signal.Ideally i would be using a pic based device to receive the data from the DSOs serial port and forward it to the FG with a push-button.This would make it a smoother method without the need of a PC.Regards

author: Unknown
author_rank: Unknown
timestamp: March 19, 2011, 11:51:13 pm
content: Quote from: Darkman1969 on March 19, 2011, 11:30:24 pmI'm surprised this isn't a standard feature in their software, Agilent and Tek have supported that for their AWGs/scopes forever.Quote from: Darkman1969 on March 19, 2011, 11:30:24 pmYou would need a PIC with USB host support, and depending on how they implemented USB, support for USBTMC (the Rigol USBTMC implementation is quite... creative I believe).

author: PeterG
author_rank: Frequent Contributor
timestamp: March 20, 2011, 12:03:56 am
content: Rigol DSOs and FGs have serial ports on them so i should be able to get away without having to use USB. Given that the serial leads would be short, there should be no problem using high speeds(128kbs).Regards

author: Unknown
author_rank: Unknown
timestamp: March 20, 2011, 12:47:48 am
content: Quote from: Darkman1969 on March 20, 2011, 12:03:56 amYou sure about that? As far as I can find, the DG1022 (their current budget AFG offering) only has USB according to the datasheet andthis picture of the rear side. Some (older/more expensive) Rigol FGs may have RS-232 ports, but not all of them, unless they hid it somewhere.

author: PeterG
author_rank: Frequent Contributor
timestamp: March 20, 2011, 01:56:38 am
content: Yes, you are correct, the DG1022 does not have a serial port. But the DSO does, my mistake. I should be able to obtain the wave from the DSO via serial and send it to the DG1022 via usb. The usb side will be a nightmare. Anyone here worked with USB on pics?Regards

author: Mechatrommer
author_rank: Super Contributor
timestamp: March 20, 2011, 07:04:45 pm
content: Quote from: Franki on March 19, 2011, 11:14:36 pminject to where? i got a Hantek 3x25me thinking of injecting there... later.Quote from: Franki on March 19, 2011, 11:14:36 pmok, i need to study basic first! Fourier Trasform... have been reading for hours (in wiki, book) it seems everytime i dig more into the detail, there is a new hole (aspect) to dig. esp this discrete stuffs, windowing (blackman hann etc). this highly mathematical stuff drives me crazy! i thought i can finish it at 12pm, but now its 3am already, and i havent got anything!... arghh! tomorrows working!Quote from: Franki on March 19, 2011, 11:14:36 pmWHAT?! is there any easy way?!

author: scrat
author_rank: Frequent Contributor
timestamp: March 20, 2011, 08:07:48 pm
content: Quote from: Franki on March 19, 2011, 11:14:36 pm1) Unfortunately, the scope is only a scope, not a signal generator.2) The Z-tranform of a signal is nothing more than the sum of the 1st sample multiplied by 1, the 2nd by z^-1, the 3rd by z^-2,..., so I wonder how you could display such a thing3) Applying a user defined filtering to the captured waveform would be a good featureI hope Shafri tool for the Rigol gives the possibility to export captured waveforms into an easy readable format (e.g. csv), which could then be imported into Matlab, Excel or other tools. I don't see this option into Ultrascope.If this feature is supported, algorithms would become easily to develop and test outside, and then put into the application, not leaving Shafri alone in this workQuote from: Mechatrommer on March 20, 2011, 07:04:45 pmI think they usually explain these things in a bad way for an engineer (using math only, rather than math and examples), while the core of the thing is quite simple (for example like I told above for the Z-transform). Don't give up, and if you need it, just ask, someone will find the right way to explain.

author: Bored@Work
author_rank: Super Contributor
timestamp: March 20, 2011, 10:40:43 pm
content: Rigol uses USBTMC, not the more common serial emulation USB CDC-ACM. And Rigol has a broken USBTMC implementation. At some time they used that broken implementation both in oscilloscopes and their waveform generators. It was easy to crash the instrument interface after a while if one tried to do normal USBTMC with the instrument. I have no idea if they still do, or if they finally got their ass up and fixed it.If they haven't fixed it, it is not a pretty thing. I would use a real PC, not a PIC to get things running and ironing out the protocol quirks first.

author: PeterG
author_rank: Frequent Contributor
timestamp: March 20, 2011, 11:50:57 pm
content: Thank you for the advice, i will be definitely using a pc before using a pic.The final project ill have a few 'Macro Buttons' mounted on a project box with an LCD that will control the DSO via its serial port. This will allow me to enhance the DSO by me being able to press a button on the box to set up the scope for common tasks without the need of a pc.Sending the data to the FG was an after thought.Regards

author: Mechatrommer
author_rank: Super Contributor
timestamp: March 21, 2011, 06:00:31 am
content: Quote from: scrat on March 20, 2011, 08:07:48 pmwhat kind of filtering? there are megazillions filters in the "soft"world.Quote from: scrat on March 20, 2011, 08:07:48 pmjust why didnt you tell me 10 years ago?!the good part... its super easy! but the bad part is, what kind of data are you expecting? i'm assuming it will be volt,time(s) with the raw data (peculiar format) converted into the right volt and second values in decimals right?Quote from: scrat on March 20, 2011, 08:07:48 pmthanx pal! its a bright day with a bright hope, now i can see the light into FFT Implementation without the nastiness of math formulation herehttp://en.literateprograms.org/Cooley-Tukey_FFT_algorithm_(C)(step by step explanation from pure unoptimized fft to Cooley Tukey FFT in C ) if someone care, but i believe last night reading will pay the price for understanding the algorithm.ps: last night i traced FFT back to its ancestorThales of Miletusat Greek whenNebuchadnezzarrulessometime i can appreciate why others love to be historian. reminds me that one of my friend once wrote on his bag, the meaning is like... how lucky we are that we are granted to use the simple value ofPiwithout knowing how Archimedes got into the mess.

author: Mechatrommer
author_rank: Super Contributor
timestamp: March 21, 2011, 10:38:57 am
content: about the filter, i'm thinking of rejecting the rigol noise (impurity) only, any idea/fact will be appreciated. i'm thinking data averaging, but not like the rigol did which i'm suspecting is like average(capture-n) ie many captures averaged, but maybe like average(data-n) at each captured data. i dont think filtering the actual data (circuit signal) is a good idea, unless its intentional to modify the original data (rigol output but FG input). something like Franki said about getting the output from inverse calculation of freq-domain data.

author: scrat
author_rank: Frequent Contributor
timestamp: March 21, 2011, 11:09:31 am
content: Quote from: Mechatrommer on March 21, 2011, 06:00:31 amI know, that's exactly why I'm saying "user-defined", which means you just give the user the freedom of inputting (by text box, or from a text file) the coefficients of a Z-transform (numerator, denominator) written filter. Then anyone can design its filter and use it. Applying a discrete filter is as easy as calculatingy(k) = u(k)*n0 + u(k-1)*n1 + ... + y(k-1)*d1 + y(k-2)*d(2) + ...at each sample, where u is the input, y the output and nX,dX the num and den coefficients, while k stands for the current sample to calculate.Yes, it's just that easy! Designing filters is not so easy, although you can easily discretize a continuous time filter.Quote from: Mechatrommer on March 21, 2011, 06:00:31 amExactly, time and voltage is the best option, preferably with some info about triggering, acquisition mode, coupling, ... in a header part.You could take as an example the export format of Tek or competitors.

author: saturation
author_rank: Super Contributor
timestamp: March 21, 2011, 01:41:02 pm
content: I found an undocumented key in the Rigol to get XY to 100 Ms/s.https://www.eevblog.com/forum/index.php?topic=553.msg33581#msg33581Quote from: Mechatrommer on March 19, 2011, 09:56:04 pm

author: Franki
author_rank: Regular Contributor
timestamp: March 24, 2011, 12:48:03 am
content: Quote from: scrat on March 20, 2011, 08:07:48 pmThis is something i definitely want to know from the new Hameg scopes. As far as I can tell from their datasheets, there is no data format specifyied, so this is still a big mistery to me :?http://www.hameg.com/612.0.html

author: Mechatrommer
author_rank: Super Contributor
timestamp: July 09, 2011, 02:36:02 pm
content: someone requested it, i have no place to upload, so its here. pls ignore this if not relating to you.edit: if you can notice the changes, then you certainly deserve it!

author: marmad
author_rank: Super Contributor
timestamp: July 11, 2011, 02:00:54 pm
content: @Mechatrommer,I'm running FW 02.05.02 (HW 58) - but your rigctrl113.exe doesn't work correctly - no scope traces visible on screen - and can't control either channel (trigger works). Tested on two computers with the following specs:Win7 Ultimate SP1 x64 - Driver: NI 1.0.0.0visa32.dll 01/07/2009 (System32)visa64.dll 01/07/2009WinXP Professional SP3 x86 - Driver: NI 4.3.0f0visa32.dll 10/01/2008Using Ultra-Sigma on the Win7 system, I see return values of 0/ 1 for SCPI CHANnel DISP queries to the scope - I don't have Ultra-Sigma installed on the XP so haven't tested that there, but I assume it's the same problem.

author: marmad
author_rank: Super Contributor
timestamp: July 11, 2011, 06:40:23 pm
content: QuoteThat was the reason I wrote here - a wasn't sure about the FW you wrote the software for. I think it might be Visa driver - that's all I can think of at the moment.

author: Mechatrommer
author_rank: Super Contributor
timestamp: July 11, 2011, 06:54:53 pm
content: Quote from: marmad on July 11, 2011, 06:40:23 pmmine is FW ver 2.02

author: Bored@Work
author_rank: Super Contributor
timestamp: July 11, 2011, 07:16:47 pm
content: Rigol changed their implementation of USBTMC, not of VISA. Their VISA is just NI's VISA, making use of the USBTMC driver in VISA.The original Rigol USBTMC implementation, also to be found in the DG1022 ARB generator v01 hardware, was rather broken and buggy and was violating the USBTMC standard. Rigol had an own pseudo USBTMC driver for those on Windows, and nothing on other operating systems. Then they fixed enough of their USBTMC so that VISA finally works with Rigol instruments and dropped their own pseudo USBTMC drivers.Since Rigol can't be arsed to maintain drivers software for their old broken USBTMC implementation those having one are stuck with Rigol's old junk. Those happening to have the later sufficiently compatible USBTMC implementation can use VISA and applications written using VISA, but not the old applications.The cut in Rigol application software roughly happens with Windows Vista. Many of the old application stuff and drivers don't run any more on Vista or even newer Windows versions, leaving people with the old USBTMC stuff in XP land. Many of the new stuff doesn't run on Vista or older Windows version. Forcing people with new USBTMC stuff to use Windows 7. Poor sods having Vista are screwed.

author: marmad
author_rank: Super Contributor
timestamp: July 11, 2011, 09:26:39 pm
content: QuoteHmm... I would have thought that at least some of the other people in this thread who tried your software were using FW 02.04 SP1.Well, do you mind changing all instances in your class of "ON" to "1" and "OFF" to "0" and recompiling the .exe for testing? I would think whatever info I gather would be useful for any future software you might write for the Rigol - but if you want me to stop testing I will.

author: Lightages
author_rank: Unknown
timestamp: July 11, 2011, 10:47:51 pm
content: FYI, I cannot use the software eoither and have the same results as you do. I have FW 02.04 SP1 and connect to a Win7 X64 machine. Ultrascope works, Mechatrommer's doesn't. It connects, but no waveform display and no control.

author: marmad
author_rank: Super Contributor
timestamp: July 12, 2011, 01:05:30 am
content: QuoteWell, it's true that SCPI is historically an extension of GPIB, but VISA is the transport layer for the commands.Anyway, now that Lightages has also confirmed that Mechatrommer's software doesn't work correctly (under FW 02.04 SP1), it's clear that Rigol has changed their implementation of SCPI on the DS1052E between FW 02.02 and 02.04; and that they're trying to get it into line with the standards more closely - at least in one respect.In FW 02.02 (and reflected in the DDS1000X programming manual - which has not been updated), Boolean queries return the values "ON" or "OFF". But according to the Standard Commands for Programmable Instruments Syntax and Style Rules:"ON corresponds to 1 and OFF corresponds to 0.Queries shall return 1 or 0, never ON or OFF."In both FW versions 02.04 SP1 and 02.05 SP2, it appears that queries now return "1" or "0".

author: marmad
author_rank: Super Contributor
timestamp: July 13, 2011, 06:19:19 pm
content: I was just playing around with VISA functions direct to the Rigol, while using NI Spy to snoop the amount of actual time each command took. I found that you can do a scan and get 8K samples into the PC in ~40ms - and 16K samples (half-channel) in ~70ms. Long mem (512K) takes ~2.35 seconds to the PC - and half-channel (1M) takes ~4.6 seconds. Those figures all work out to something around 1.7 Mbit/s - or approximately low-bandwidth USB 1.0Sheesh... couldn't they be at least implementing 12 Mbit/s (full-bandwidth) USB 1.0 by now?

author: PSW
author_rank: Newbie
timestamp: January 11, 2012, 10:00:06 pm
content: Quote from: PeterG on October 10, 2010, 07:10:50 amMatlab can read Waveform *.wfmand then you can get the raw data as a list, matrix or a vector. with size is 16384/8192 or 1048576/524288 (in Long MemDepth)it is easy fit with 'cftool(TIME,y)'http://www.mathworks.com/matlabcentral/fileexchange/18999-read-binary-rigol-waveformshave fun.

author: Unknown
author_rank: Unknown
timestamp: January 12, 2012, 09:28:41 am
content: For people without access to (expensive) MATLAB licenses, it looks like this script should be easy to get working in the open sourceOctave MATLAB clone.

author: Lightages
author_rank: Unknown
timestamp: January 27, 2012, 06:55:59 am
content: Any progress on making this work on newer scope Mechatrommer? Hmmm? Please?

author: Mechatrommer
author_rank: Super Contributor
timestamp: January 27, 2012, 08:57:37 am
content: sadly i abandoned this. i treated this as part of my learning process comm with the DSO, and i aint got no "newer" scope, no update/reply on any changes in newer firmware, not much freetime, not much usefullness of the app, not much encouragement pretty much not much everything. i believe every member can develop their own specific need based on the discussion about ni-visa in various threads. any idea? i cant think of any interesting thing right nowsorry pal.ps: i noticed the attachment is gone, i can re-upload by request, but i think it's still the same as before. in the mean time, i'm in "PSU fever" right now, got infected from dave.

author: Lightages
author_rank: Unknown
timestamp: January 27, 2012, 04:37:59 pm
content: OK I understand. I just wanted to know. It seems that some people with software knowledge get started and then stop and move on to other things. I for one would pay/donate for added functionality. With the limited time have for these kinds of things I never have enough time to hack around in software anymore.

author: Mechatrommer
author_rank: Super Contributor
timestamp: January 27, 2012, 05:16:12 pm
content: me here EE newbie

author: Mechatrommer
author_rank: Super Contributor
timestamp: January 27, 2012, 08:27:58 pm
content: i've updated and uploaded the software ver1.20 on the main page. its now should be able to get data from newer rigol FW 2.04 and above.

author: Lightages
author_rank: Unknown
timestamp: January 27, 2012, 08:44:20 pm
content: Thank you. I was just about to answer your PMs and will do so after I try this.

author: Lightages
author_rank: Unknown
timestamp: January 27, 2012, 09:04:24 pm
content: I can confirm that the update connects to the scope and displays the output and has control. There are a couple of bugs but I need to investigate a bit more. Thank you for updating it to work on later firmware.