Rigol DS1074 oscilloscope shows very wrong timing

Looks like a bug to me. I reproduced it on my 1054z using an Arduino with an LED blinking program.

This is the signal with 12M memory depth acquired at 500ms timescale, and then expanded at 200 ms scale. The 'beat' is 1000 ms long. (Ok, technically it's 900ms long plus the overhead, but if I add the first part of the next train I get a nice 1000 ms sequence that makes numbers nicer.)

12M 500ms expanded to 200ms 1000ms

The one above is the result I get with AUTO memory settings as well. But if I set memory depth to 24M I get problems at the 500ms scale. As above, this is the signal aquired at 500ms timescale and then expanded to 200ms timescale:

24M 500ms expanded to 200ms 1040ms

Pulse length appears extended by 40 ms, that's the same 4ms every 100ms shown by the OP (he goes from 600ms to 624ms). Acquisition at 200ms timescale shows the correct pulse length of 1000ms

24M 200ms 1000ms

But if I acquire at 500ms timescale, I get 1040 ms

24M 500ms 1040ms

Here's the Arduino Sketch, if anyone wants to replicate it.

/*
  doubleBlink
  Turns on and off an LED in a predetermined sequence, repeatedly.

  Most Arduinos have an on-board LED you can control. On the Uno and
  Leonardo, it is attached to digital pin 13. If you're unsure what
  pin the on-board LED is connected to on your Arduino model, check
  the documentation at http://www.arduino.cc

  This example code is in the public domain.

  modified 8 May 2014
  by Scott Fitzgerald
  modified 15 February 2016
  by Sredni Vashtar
 */


// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin 13 as an output.
  pinMode(13, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(100);              // wait for 0.1 second
  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
  delay(100);              // wait for 0.1 second
  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(500);              // wait for 0.5 second
  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
  delay(200);              // wait for 0.2 second
}

(I have to say it's been a while since I last updated my scope's firmware - I'm on 00.04.04.01.01 - but the bug has been confirmed othe latest version to date)

EDIT: Following mkeith advice, here is the 1kHz scope test signal, acquired at 500ms timescale and then expanded at 200us, when memory depth is set to 24M.

24M 1kHz signal 500ms expanded to 200us

The period becomes 1.040 ms. Same 4% error. Acquisition at 200us directly will give the correct value of 1.000 ms.

And it gets better! If I acquire the test signal with a timebase of 5s, and then expand it to 200us, the period becomes 800 us!
That's a 20% error.

24M 1kHz signal 5s expanded to 200us

At other timebases (with the same stopped acquisition) I get the correct value. I would love to see how they do the rounding in Rigol.

Anyhwow, this bug is affecting the latest firmware version - as noted by the OP - and since the question has been closed, people interested might want to follow this thread on the EEVBlog forum.


Own DS1054Z too, the latest software (00.04.04.04.03) is installed, this bug shows up too. Had a call with Rigol, they say that this references their bug #297 opened in August 2020 and they had reproduced it internally, but there is no concrete plans for the next firmware release in their system. The support engineer was unable to give any timeline for this (and mentioned the "old hardware that is hard to predict new software version releases"), so, I think, more Rigol DS1xxxZ owners should poll Rigol support and ask them to fix the issue: may be such a pressure will make them to produce a new software version.

The engineer in question was Chris Armstrong (https://www.youtube.com/watch?v=u3ZbcRb6AeM, [email protected]), so people can keep him CC'ed in their bug reports: he seems to be a sane and nice person.

Hope that will help us all.


Thanks for reopening this thread. So I can post my answer.

My first response from Rigol support was this:

I think this a known problem on the DS1000Z series! Please upgrade the firmware to version 04.04.04.03 and the capture problems should be solved.

Follow this link to download actual firmware for your DS1074Z oscilloscope:

https://eu.rigol.com/products/oscillosopes/ds1000z.html

( A short registration is required, but it's done in a minute ) Hope I could help you on a little !

Interesting is the phrasing: "I think..." and "should be". That already gave me the impression that this is a standard answer to all their bugs: Install the latest firmware and it "should be" fixed.

This is on the Rigol homepage:

Rigol Firmware Download

And my scope shows:

Rigol Firmware Version

So I have 3 different versions now:

Support email:  04.04.04.03
Rigol Homepage: 00.04.04.04.03
Oscilloscope:   00.04.04.SP4

As you see: The firware versions at Rigol are not unified.

I wrote another email asking if these 3 versions are the same. The support responded that they are all the same.

Then I wrote a third email: "So I have the latest firmware. But the severe bugs are still there. When will these bugs be fixed?"

I got no answer anymore. I wrote a fourth email to the same support guy a week later. He does not answer me anymore.

The firmware on their homepage is one year old now. The "support" does not answer anymore. So it is obvious that Rigol has zero motivation to fix their bugs.

Please note that this is the firmware for the entire DS1000Z series. So there are multiple oscilloscope models affected by these bugs.


The Rigol firmware is a RAR file of only 1,9 MB. I find this very strange. I expected much more.

The Upgrade Instructions say:

  • MSO/DS1000Z series digital oscilloscope does not support the downgrading operations.

This is another problem. Even if there was a new firmware available: What if the new firmware has a new bug which is even worse than the existing bugs? In this case I have no chance to go back to my previous firmware version. Rigol firmware update is a one-way road. You will never know where it leads you.


The Rigol homepage is a mess. If you go to "Support" -> "Software-Firmware Download" and enter Category: "Oscilloscopes" and search for "DS1074Z" you get no result at all.

If you select under product line: "DS1000Z-E" and leave "keywords" empty you will not find the same firmware as on the DS1000Z page.

https://eu.rigol.com/En/Index/listView/catid/28/tp/6/cat/7/xl/40

Rigol Firmware Download

It seems that DS1000Z and DS1000Z-E are different series. The release notes say:

[Model Supported] DS1202Z-E.
[Latest Revision Date] 2019-09-20
[Updated Contents]
v00.06.01.00.00 2019-09-20
     - The first version is released.
[Previous Versions and Updated Contents]
     - none

So this is not for my scope.