Free DS6000/DS1000Z software - Page 1
Forum section: electronics / testgear

author: Karel
author_rank: Super Contributor
timestamp: June 09, 2015, 09:34:01 am
content: http://www.teuniz.net/DSRemote/

author: Anand
author_rank: Contributor
timestamp: June 09, 2015, 10:20:39 am
content: Very cool!For the visual signal representation, do you get raw samples from the scope and draw them?If so, how fast is it?(I'm using Perl / GD::Simple and it takes a whooping 12 seconds to generate an image from 1Meg points).

author: dom0
author_rank: Super Contributor
timestamp: June 09, 2015, 10:31:52 am
content: Quote from: Anand on June 09, 2015, 10:20:39 amLooks to me like a screen grab from the scope itself.Quote from: Anand on June 09, 2015, 10:20:39 amAs expected from a software renderer (Although GD2 is also one of the slower software renderers, QPainter is, for example, much faster, and can render about 15 Mpoints/s on an average desktop machine). These things should be done on the graphics card, a while ago I wrote a many-trace renderer that easily handled a few dozen Mpoints with fluent scrolling and zooming - that's just not hard in GL. In fact, if you optimize this a bit more (and don't need streamed writes as I required), you'll be quickly able to render almost as many points as fit into the RAM of the GPU fluently.

author: Anand
author_rank: Contributor
timestamp: June 09, 2015, 07:18:20 pm
content: Quote from: dom0 onTodayat 13:31:52Can you help me go in the right direction with some reading materials / code (if available) etc.?What programming language / modules / apis etc.?

author: dom0
author_rank: Super Contributor
timestamp: June 09, 2015, 07:51:56 pm
content: OpenGL and GLSL (plus utilities and the like, but Qt has those built-in anyway) is pretty much all you need, but since it's a somewhat intricate API/ecosystem it will probably take some time for a complete beginner to success.OTOH rendering graphs is notthathard (cf. with what you usually do in 3D), especially if you don't need a lot of fancy features (like dashed or dotted or so lines, which are actually not that easy toaccuratelyimplement on the GPU). Also, outsourcing certain things to the Qt side of things certainly makes things simpler, e.g. text rendering. The widget I talked about above is about 2000 lines of code, so it's not much actually.

author: miguelvp
author_rank: Super Contributor
timestamp: June 09, 2015, 10:30:20 pm
content: Quote from: dom0 on June 09, 2015, 10:31:52 amLooking at the code it seems to be grabbing the waveforms. But only looked at the code for 2 minutes.Edit: Oh, it can save both waveforms and display, looks interesting.

author: Karel
author_rank: Super Contributor
timestamp: June 10, 2015, 07:49:37 am
content: It downloads the waveform data and plots it on the screen.You can resize the window, you can even make it fullscreen.The number of waveforms/second depends on the model. The DS1054Z is slow,depending on the number of channels active, 8 waveforms/second.The DS6000 is faster with the screenupdates, but slower when you want to save a screenshot.The DS6000 uses fullspeed USB (12Mb), The DS1054Z uses highspeed USB (480Mb) but there is no advantage in that.It looks like the oscilloscopes are optimized for fast internal updates, not for fast updates via (usb)tmc/scpi/lxi.Anyway, the program (including the plotting and painting algorithm) is much faster than what the oscilloscopes can provide.The (connection of) oscilloscopes are the bottleneck, not the program.In addition, instead of using the dials to change the timebasescale or triggerlevel/position,you can drag the yellow/orange arrows aside the the plot in order to change those levels/position.

author: miguelvp
author_rank: Super Contributor
timestamp: June 10, 2015, 08:10:41 am
content: Karel I did play with the MTU to achieve the 4 second transfer time over Ethernet (on a DS2000 series one), before that change I was getting the screen capture in 2 minutes and 41 seconds.Still being all text based it's probably not too quick but still fast enough to control the scope if you look at the request and response timing with the proper maximum transmission unit set right:Response time from the scope is just about 3ms from each request getting the screen chunks.I only adapted an existing script to use forum member alex.forencich vxi11 python script and change the MTU to do a screen capture over ethernet:https://www.eevblog.com/forum/testgear/python-based-instrument-control/msg676772/#msg676772But I would guess for simple commands the MTU would not be exceeded so it might be just the initial processing that takes some time.

author: alsetalokin4017
author_rank: Super Contributor
timestamp: June 10, 2015, 05:19:18 pm
content: Quote from: Karel on June 09, 2015, 09:34:01 amI would love to try this software, but when I go to install the libqt4-dev package, my system tells me it will _remove_ a lot of installed packages that I use all the time! (Ubuntu). So I chickened out.... I really don't want to give up Kodi, Stellarium, KStars, WINE, the Gnome interface, etc.

author: Karel
author_rank: Super Contributor
timestamp: June 10, 2015, 05:50:49 pm
content: Quote from: alsetalokin4017 on June 10, 2015, 05:19:18 pmThere must be some error. Ask for help here:http://ubuntuforums.org

author: alsetalokin4017
author_rank: Super Contributor
timestamp: July 09, 2015, 10:36:24 am
content: Quote from: Karel on June 10, 2015, 05:50:49 pmWell, I decided to install it on another computer. Linux Ubuntu 14. The qt4 packages installed without wanting to remove everything else! So I used git to retrieve the DSRemote files from github. The program compiled without errors and runs... looks beautiful. BUT... I can't connect to the scope. I have the DS1054Z connected to my LAN router, and can telnet to the scope with no problems, can control it fully over the telnet connection, so I know the LAN connection part of the chain is all good. But when I run DSRemote, the only thing I see under the Settings menu is "Activate", which apparently does nothing. There is no place to tell it that I want to connect using LAN and an IP address.I'd really like to get this working. It would be a great boon to me to be able to access the scope using the DSRemote software from the computer in the other room, while the scope is sitting nice and comfortably in my lab.

author: Karel
author_rank: Super Contributor
timestamp: July 09, 2015, 11:42:12 am
content: Quote from: alsetalokin4017 on July 09, 2015, 10:36:24 amHow does the settings menu look like?Mine looks like this: (see attachment)After clicking on apply, go to the device menu and click on connect.

author: alsetalokin4017
author_rank: Super Contributor
timestamp: July 09, 2015, 03:17:41 pm
content: Quote from: Karel on July 09, 2015, 11:42:12 amI just get a single small dropdown box below the "Settings" in the top menu bar, with the single word "Activate" in it. The main screen looks just like yours, but I never see the Settings box that you show. Clicking on the "Activate" item does nothing.

author: alsetalokin4017
author_rank: Super Contributor
timestamp: July 09, 2015, 04:05:30 pm
content: Ah, OK, I got it working now, by starting the program as root. So it's a permissions issue.Thanks! There are still a few bugs to work out but it's working well enough for my purposes now.Now I can show people my work without having to let them stumble around in the lab itself!

author: Karel
author_rank: Super Contributor
timestamp: July 10, 2015, 07:49:52 am
content: There's a newer version available that fixes this problem (it was related to how Ubuntu's Unity desktop deals with dropdown menu's).By the way, never run normal programs as root...

author: alsetalokin4017
author_rank: Super Contributor
timestamp: July 10, 2015, 10:22:28 am
content: Quote from: Karel on July 10, 2015, 07:49:52 amI did have a sneaking feeling that it had something to do with the Unity desktop. I usually use Gnome Classic on my main computer but the one up front is running Unity.QuoteOf course not.So is the newer version on github? So how do I proceed then, to uninstall the old and install the newer? Do I simply delete the dsremote directory entirely and start over?

author: Karel
author_rank: Super Contributor
timestamp: July 10, 2015, 11:00:58 am
content: Quote from: alsetalokin4017 on July 10, 2015, 10:22:28 amYes.Deleting the directory and starting from scratch is one option.Another option is:Open a console, cd to the source directory and enter the following commands:make distcleangit pullhttps://github.com/Teuniz/DSRemote.gitqmakemake -j16sudo make installEdit: changed "git pull" to "git pullhttps://github.com/Teuniz/DSRemote.git"

author: alsetalokin4017
author_rank: Super Contributor
timestamp: July 10, 2015, 01:49:00 pm
content: Thanks...OK, that's all taken care of now and the Setup window appears as it should, and the scope connects. But there is still a problem with at least two things:First, the horizontal timebase. It gets "stuck" at 100 ns/div and won't go to slower settings -- see the first screenshot below for the SCPI commands it is sending as I try to go to longer timebases. It does this whether I use the mouse, scrollwheel, or keyboard shortcuts to try to increase the timebase setting.Second, the program still fails to connect if there is some complex setup on the scope. I've tried removing item by item from the setup to see what is preventing the connection, and so far I've had no luck. If I start the scope from Default setup and add all 4 channels with basic settings, the program connects and works fine. But if I try to connect to the complex setup the software fails. See the second screenshot below. You can see that the program did set up the channel settings, vertical scales, baseline positions properly, but apparently failed before it set the trigger level (should be up at CH3 somewhere) and disconnected.The third screenshot below is from the scope itself, showing the setup and waveforms that were current when the program failed to connect in the second screenshot.So... starting with the complex setup, first I removed the Labels from the channels. Connect failed.Then I turned off the Math trace. Connect failed.Then I turned off the Vernier vertical scale settings and set the odd ones to 10v/div. Connect failed.Then I turned off all channels except CH1. Connect failed.Then I set the number of Averages to 2 in the Acquire menu. Connect failed.Then I gave up to go get breakfast.

author: Karel
author_rank: Super Contributor
timestamp: July 15, 2015, 06:23:48 pm
content: Latest version solves the "timebase getting stuck" bug.The "not able to connect" problem is caused by a bug in the firmware.When a certain setup file is loaded in the scope, the trigger sweep mode is not set correctly.When this happens, the command :TRIG:SWE? returns "command error".A work around is to press the trigger mode button on the scope at least once, after loading the setup file.It's reported to Rigol.

author: alsetalokin4017
author_rank: Super Contributor
timestamp: July 16, 2015, 07:51:25 pm
content: YES!I can confirm both of those. The timebase setting problem is solved now, and I can connect to the complex setup by cycling the Trigger Mode setting on the scope so that one of the mode lights comes on,before I try to connect with the DSRemote software. Thanks !!The "bug" is that the scope evidently sometimes doesn't really know what the Trigger Mode is, and none of the three Mode lights come on, and in the Trigger Menu the Sweep menu item that should read "Auto", "Normal", or "Single" is blank. For some reason my complex setup sometimes causes my scope to not have any LEDs on in the Trigger Mode panel, and has the Sweep item blank, until the Mode button is pressed.

author: Karel
author_rank: Super Contributor
timestamp: August 29, 2015, 03:24:57 pm
content: There is a new version of DSRemote:http://www.teuniz.net/DSRemote/What's new is that it uses multi-threading in order to keep the gui responsive and snappy.

author: timofonic
author_rank: Frequent Contributor
timestamp: August 29, 2015, 04:37:25 pm
content: What do you think ofSigrok? Why using this software instead?Just a question, I consider more universal projects to be more future proof.

author: Karel
author_rank: Super Contributor
timestamp: August 29, 2015, 05:06:42 pm
content: Quote from: Circuiteromalaguito on August 29, 2015, 04:37:25 pmCorrect me if I'm wrong but it doesn't support the DS6104. It also does not save the scope's (deep) waveform data in the EDF format.Have you tried Sigrok? If so, do you like it?

author: Karel
author_rank: Super Contributor
timestamp: January 09, 2016, 01:51:43 pm
content: There's a newer version of DSRemote that supports FFT.

author: scottie4442
author_rank: Unknown
timestamp: April 02, 2016, 06:11:56 pm
content: Tried to get DSRemote working on my Linux Mint 17.3 laptop. I followed the instructions and got the git downloaded, compiled and installed. Ran dsremote and it starts fine but when I try to connect to the scope it says "cannot open device /dev/usbtmc0". I have check ls -l /dev/usbtmc* and it is coming up on usbtmc0, so that is right. I also put the udev rule in so that the permissions are correct for this device, I do have rw permissions for group usbtmc and I am a member of the group. not sure what to do after this. any help would be appreciated. Thanks

author: scottie4442
author_rank: Unknown
timestamp: April 02, 2016, 06:21:58 pm
content: Quote from: scottie4442 on April 02, 2016, 06:11:56 pmOk I have done more searching and found this, when I run a dmesg the usbtmc seems to come up fine and recognizes the scope. The last line though shows " usbtmc 3-1:1.0: Device sent too small first packet: 4 < 12", not sure what this means or how to fix it.

author: Karel
author_rank: Super Contributor
timestamp: April 02, 2016, 06:33:23 pm
content: Quote from: scottie4442 on April 02, 2016, 06:21:58 pmWhat is the model of your scope?What is the firmware version?Start DSRemote in a console and look what messages are printed when you connect.

author: douardda
author_rank: Regular Contributor
timestamp: April 10, 2016, 10:01:50 pm
content: Hijust to let you know I've been able to use DSRemote with my DS1054Z (unlocked) on my debian jessie laptop. Nice work.Just a few notes:- I had to remove the qt version checking at the beginning of the qmake file (it did not detected properly the qt4 from the debian package; I've not tried to figure out why),- you should simplify the instructions of the "Download the source code:" with a simple "git clonehttps://github.com/Teuniz/DSRemote.git"- "make -j 16" is a bit aggressive for the system, you should lower this value (4 seems quite a decent "default" value)David

author: Karel
author_rank: Super Contributor
timestamp: April 11, 2016, 05:45:34 pm
content: Quote from: douardda on April 10, 2016, 10:01:50 pmI guess you should have used qmake-qt4 instead of qmake.qmake will use qt5. This is because distro's are in the transition from Qt4 to Qt5 and the Qt5 version on Debian Jessieis pretty old & contains too many bugs.http://unix.stackexchange.com/questions/116254/how-do-i-change-which-version-of-qt-is-used-for-qmake

author: Axk
author_rank: Regular Contributor
timestamp: July 03, 2016, 02:47:36 pm
content: If anyone wants to speed up waveform saving from DS1054Z a bit when using DSRemote you may want to try this:in the source folder edit save_data.cppchange#define SAV_MEM_BSZ (250000)to#define SAV_MEM_BSZ (1000000)rebuild the same way as building it the first time:qmakemake -j16sudo make installI've tested over LAN on saving 24M points and before the change it took 2:20 vs 1:27 after the change, not a huge improvement but still.I've tried going even higher with the parameter value but DS1054Z crashes with an out of memory message and the requests sent by DSRemote fail, so this is about the maximum you can get with the scope I suppose.Over USB I'm getting roughly the same result after the change, I've not tested it before the change with USB but suppose it should be similar to the LAN result because the connection is not the bottleneck in both cases.

author: Karel
author_rank: Super Contributor
timestamp: July 03, 2016, 07:01:54 pm
content: Quote from: Axk on July 03, 2016, 02:47:36 pmDon't you think there's a reason why the author choose this particular size for the buffer?Please have a look at page 229 (2-213) of the Rigol Programming Guide July 2015:Code:When reading the waveform data in the internal memory, the maximum numberof waveform points can be read each time the :WAV:DATA? command is sent isrelated to the return format of the waveform data currently selected, as shownin the table below.BYTE 250000WORD 125000ASCII 15625

author: RoGeorge
author_rank: Super Contributor
timestamp: October 20, 2016, 05:09:32 pm
content: This post is just to easily follow the subject.

author: f1rmb
author_rank: Regular Contributor
timestamp: October 21, 2016, 05:21:48 am
content: Quote from: RoGeorge on October 20, 2016, 05:09:32 pmCan't you just click on the "notify" button ?---Daniel

author: Axk
author_rank: Regular Contributor
timestamp: November 08, 2016, 01:26:43 pm
content: Quote from: Karel on July 03, 2016, 07:01:54 pmI'm not suggesting the author was not reading the manual, and that I've tested it in all possible circumstances, just my observation that it worked with the bigger buffer size and was a bit faster.

author: RoGeorge
author_rank: Super Contributor
timestamp: November 08, 2016, 05:08:19 pm
content: The maximum buffer size depends of:- what the scope is doing at the moment: It can be more then 1 500 000 points for a single trace in stop mode, and it can be as low as 250 000 points for 4 ch, 6 mil samples + stats active (binary mode).- oscilloscope firmware version

author: Karel
author_rank: Super Contributor
timestamp: December 04, 2016, 05:15:58 pm
content: DSRemote now has partially implemented the serial decoding, at this moment only UART is supported.Other decoding protocols can be set and controlled via DSRemote but only UART is visualized inside DSRemote.

author: Dwaine
author_rank: Frequent Contributor
timestamp: December 05, 2016, 01:47:19 am
content: Thanks. Compiling now. I appreciate your work on this software. I use it all the time

author: Karel
author_rank: Super Contributor
timestamp: December 08, 2016, 04:59:15 pm
content: DSRemote has implemented SPI decoding.

author: Karel
author_rank: Super Contributor
timestamp: December 08, 2016, 06:12:08 pm
content: Probably it's a bug in the firmware of the scope that triggers this error in combination with certain USB host controller chipsets.The reason that this problem occurs on Linux is probably because the kernel developers are more strict with the USB standard.To give you an example, connect your DS1000Z to a USB port and enter dmesg:Code:[ 569.775078] usb 1-2: new high-speed USB device number 4 using ehci-pci[ 569.911485] usb 1-2: config 1 interface 0 altsetting 0 bulk endpoint 0x82 has invalid maxpacket 64[ 569.911499] usb 1-2: config 1 interface 0 altsetting 0 bulk endpoint 0x3 has invalid maxpacket 64[ 569.911976] usb 1-2: New USB device found, idVendor=1ab1, idProduct=04ce[ 569.911987] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3[ 569.911991] usb 1-2: Product: DS1000Z Series[ 569.911994] usb 1-2: Manufacturer: Rigol Technologies.[ 569.911998] usb 1-2: SerialNumber: DS1ZA17040xxxx[ 569.934523] usbcore: registered new interface driver usbtmcThe scope presents itself as a highspeed USB device but set the maxpacket value for the bulk endpoint to 64 bytes.The USB standard says that a highspeed USB device MUST set that value to 512 bytes!I reported this bug to Rigol but no answer so far.My impression is that they don't care about Linux...

author: Karel
author_rank: Super Contributor
timestamp: December 08, 2016, 06:50:18 pm
content: Perhaps you could file a bugreport as well and include that screenshot.The more people complain, the more likely that they'll fix it...Another thing you could try is to put a non-highspeed USB hub between the scope and your pc.That way the scope will be forced to fall back to full-speed. Maybe that solves your problem.The scope isn't very speedy anyway...

author: Karel
author_rank: Super Contributor
timestamp: December 18, 2016, 04:06:46 pm
content: DSRemote now supports extended vertical dynamic range i.e. it supports 10 vertical divisons on the display instead of 8.How does this work?The DS1000Z series shows only 200 lsb's over the whole vertical range of the display (25 lsb's per div.).The 56 lsb's which are left are simply not shown. So, the scope uses only 78% of the dynamic range of the adc.DSRemote adds two extra divisions and uses 250 lsb's for the whole vertical range, so it uses 98% of the dynamic range.This is an improvement of 25% of the dynamic range.Grab a copy and see for yourself.

author: Karel
author_rank: Super Contributor
timestamp: December 29, 2016, 02:42:23 pm
content: DSRemote now has a "Wave Inspector". (click on the "Save" button)The Wave Inspector is a separate window that shows you the whole waveform memory up to 24Mpts.You can use the keyboard shortcuts or the slider at the bottom to navigate through the data in a quick and comfortable wayor zoom in/out.Serial decoding for UART and SPI works also in the Wave Inspector.Now, the old argument that the DS1054Z decodes only what is on the screen, is no longer valid when using DSRemote.Happy New Year!

author: Karel
author_rank: Super Contributor
timestamp: May 14, 2017, 04:44:16 pm
content: DSRemote now supports Record & Playback function.It's under the "util" button.

author: BravoV
author_rank: Super Contributor
timestamp: May 14, 2017, 05:22:23 pm
content: Thank you for all your hard work !

author: DavidMassey
author_rank: Newbie
timestamp: July 06, 2017, 08:35:48 pm
content: I just got my DS1054Z (upgraded to the 100MHz version with patch code) and was hoping I could somehow lock channel 1 and 2 together as far as gain control adjustments so I can turn the knob and both channels would increase/decrease at the same time. I'm using the scope to monitor audio from the left and right channels of my TEAC reel-to-reel deck for head alignment and frequency response purposed using a $100 calibration tape. Doesn't seem to have that feature and was wondering how hard that would be to implement into your code. I was thinking if the software detected any two or more channel select buttons pressed at the same time would lock the gain control to the channels pressed. Turning the knob would change the vertical gain of all selected channels together.Thanks for any consideration of this feature!

author: Karel
author_rank: Super Contributor
timestamp: July 09, 2017, 12:51:14 pm
content: Issues regarding DSRemote can be submitted here:https://github.com/Teuniz/DSRemote/issues- or + will increase or decrease the vertical scale of the active channel.Shift- or Shift+ will increase or decrease the vertical scale of all active channels.Pull again from Github and recompile for the latest changes.