A few weeks ago we published an article on the newly released Keysight 1000X, an oscilloscope that marks Keysight’s late but welcome entry into the hacker-centric entry-level market. Understandably, this scope is causing a lot of excitement as it promises to bring some of the high-end pedigree of the well-known 2000X and 3000X models down to a much affordable price. Now couple that with the possibility of hacking its bandwidth lock and all this fuss is well justified.
[Dave Jones] from the EEVblog got his hands on one, and while conducting a UART dump saw the scope report 200 MHz bandwidth despite being labelled as a 100 MHz model. He then proceeded to actually hack the main board to unlock an undocumented 200 MHz bandwidth mode. This created a lot of confusion: some said [Dave] got a “pre-hacked” version, others assumed all 100 MHz versions actually have a stock bandwidth of 200 MHz.
Alongside the question of bandwidth, many wondered how this would fare against the present entry-level standard, the Rigol 1054Z. Is the additional cost and fewer channels worth the Keysight badge?
Keysight’s response to our queries and confusion was the promise to send us a review unit. Well, after receiving it and playing around with it, clearly a lot of Keysight’s high-end excellence has trickled down to this lower end version. However, this machine was not without some silly firmware issues and damning system crashes! Read on the full review below.
Out of the Box:
In addition to the scope, the box comes with a mains cable, two probes, a nice bright yellow envelope containing the calibration certificates and a friendly reminder that its actually Keysight now and NOT Agilent or HP. The supplied probes are nice. The silicone leads feel really nice to the touch, and is a nice change from the stiff PVC insulation we are used to. The probe specs are not anything spectacular, you can switch the attenuation between x1 and x10, and capacitive loading in the x10 mode is a modest 10 pF.
Interestingly, all 100 MHz variants of the scope are suspiciously supplied with 200 MHz probes as standard, yet again alluding to higher than advertised bandwidth. Is this clever marketing to encourage hacking it to the unlock the undocumented 200 MHz bandwidth mode, or simply a ploy to discourage the the 70 MHz variant that is supplied with 75 MHz probes only? Regardless of the intent, this is a commendable gesture.
First Impressions and Layout
As someone who owns a Rigol DS1054Z, the responsiveness of the 1000X took me by surprise. This scope is snappy. All the menus are swift, and there is no obvious slow down if the screen is cluttered with both channels, the FFT, and a math function. Clearly, the relatively lower sample rate and bandwidth are proving to be a walk in the park for the enclosed Megazoom ASICs, otherwise accustomed to some much more gruelling processing in the higher end scopes. Anyone who hates the sluggish response encountered when offsetting waveforms on low-end scopes will welcome all this speed.
The menus and options are laid out very well and are pragmatically grouped. Knowing HP has been making scopes since the dawn of time, this is certainly no surprise. The buttons respond exactly as you’d expect, and more importantly are consistent across the scope. For example, pressing and holding a button, corresponding to any option/feature in any menu displays a help pop up that explains the options and highlights any details.
Furthermore, a double press always navigates you to the previous menu. All variable entries are done with a single rotary knob. The acceleration implementation is excellent, infact the best I’ve seen in an entry level scope. All the rotary knobs have a centre button, which makes it very intuitive to set default values if needed.
The previous generation of entry level scopes were plagued with horrifically low resolution screens. Thankfully, this has changed and the 1000X has a nice large screen that is sharp and adequately bright. It is really comforting to the see the industry collectively move away from small dodgy screens in lower end offerings.
The math functions aren’t anything ground breaking. You get all the usual math functions you’d expect and a few interesting others. You have two results you can work with: f(t) is the displayed math function while g(t) is an intermediate math function, that after being defined once, can be used within any subsequent math calculations. This isn’t anything new but I like the way they’ve done it. Rigol for example, makes you redefine the intermediate function for every different operator, which is unnecessarily convoluted.
One of the very interesting math function included is the Low Pass Filter. Watch the video below, to see the scope demodulate an AM signal, using only the math functions!
Can you explain why this works?
Right, lets get this out of the way. What is the out of the box bandwidth of the 100 MHz version anyways?
To test this, I’ve used my trusty Marconi 2030 RF Signal Generator to output a 1 V Pk-Pk signal. I then measure the -3 dB (0.707 V) point on the scope.
The bandwidth measurement comes to about 135 MHz, an expected safety margin for a 100 MHz scope. Out of curiosity, I measured the amplitude at 200 MHz and it came to about -7 dB (0.45 V).
Whilst investigating the out-of-the-box bandwidth, I was pleasantly surprised by the hardware counter in the scope. I thought, like the Rigol 1054Z, it would start to fail around 100 MHz: wrong! I cranked up my RF signal generator way beyond the -3 dB point of the scope but the hardware frequency counter continued to work. In fact, it worked absolutely fine up to about 435 MHz! I suspect this would continue to work even higher, and was mainly restricted by the falling amplitude due to the limited scope and probe bandwidth. It would be interesting to see how far it continues to work in the 200 MHz “unlocked” version.
Waveform Generator and Training Signals
The 1000X comes with a rather capable built-in 20 MHz function generator. Not only can it generate all the usual square, sine and triangle waves but also has a 20 MHz noise waveform, a pulse, and even just DC. The generator can swing between +/- 12 V into a high impedance load, so any amplitude and DC offset combination within that range is valid. The output impedance is 50 ohms, thus the output drops to +/- 6 V for a 50 ohm load.
Rather disappointingly, the sine wave is the only waveform that goes to the full 20 MHz. The square and pulse waves are restricted to 10 MHz, and even then they look awful. The ramp wave goes up to a mere 200 kHz. This is a 20 MHz generator, and no more.
A very cool addition to this is the ability to apply various modulations to the sine and ramp waveforms. You can do FM, AM and FSK with variable modulation depths. It’s good fun to observe the spectra of the various modulated waveforms on the FFT!
Closely related to the wave generator are the training signals provided on the probe calibration connector. These signals are intended to shed light on a range of waveforms that a beginner can expect to come across and give you a chance to polish up your trigger setup skills. For example, you can see the effect of noise coupled into a waveform. A good way to test your FFT skills and modulation theory is to try one of the RF waveforms. The various digital and glitch waveforms help you understand the more obscure but powerful triggering modes on the scope such as envelope triggering in pass/fail mode. Many of the training waveforms also let you change parameters.
Seeing that the training signals contained much more fun waveforms compared to the actual waveform generator, I rather slyly, tried to use both at the same time. Unfortunatey, this did not work. You cannot use both the training signals and the waveform generator at the same time. As the training signals contain a lot of arbitrary signals it is clear Keysight are routing the waveform generator to the calibration connector and leveraging the DDS-type generator employed for the arbitrary waveforms.
This made me think, is it possible to somehow modify the file system and include your own arbitrary waveforms? Examining the inbuilt file-system revealed some files with “.arb” extensions that cannot be read or written to. Nonetheless, it is clear that even though the waveform generator does have the ability to generate arbitrary waveforms, this is disappointingly restricted by Keysight. For example, the generator on the 3000 X-Series, with otherwise similar specs, allows you to specify arbitrary functions. I bet the 1000X has the same hardware, albeit restricted out of caution to prevent unnecessary toe-stepping of the higher end market.
Frequency Response Analysis
One of the features I was really excited about was the Frequency Response Analysis. This is basically a stripped-down version of the Power Analysis Module provided in the 3000 X-Series scopes. It can allows you use the internal waveform generator in conjunction with both channels to measure the frequency and phase response of a circuit, from DC to 20 MHz. Although a small range, this is a super cool feature to verify audio grade filters, opamp GBP, PLL loop filters, and so on. The dynamic range is very impressive, I have measured it working fine down to about 20 uV (-79 dBm!)
So what exactly is this useful for? Let me tell you about the time it saved me a lot of headache. I was designing a casual PLL loop filter; as you do I started with simulator and proceeded to optimise via trial and error by changing a few components. I found that a certain 1 uF capacitor in my junk bin gave spectacular results, which was not attainable with the other 1 uF capacitors I had. So what exactly is going on here? How could I see the effect of this magical 1 uF capacitor on the overall filter?
Sweeping the filter with the special capacitor revealed a region where the gain would plateau, buying me some phase margin and leading to a stable loop. Clearly, this capacitor had very high ESR. But how much exactly, so this could be replicated repeatably with another capacitor? Using the markers, I measured the start of the plateau at about 3 kHz, leading to a certain time constant and ESR of 50 ohms. Equipped with this knowledge, I tried a different capacitor and added a 50 ohm resistor in series and voilà the loop was stable with almost identical results!
Although an uncommon and hence much welcomed feature for a low end scope, it is unnecessarily restricted. For example, you cant set the sweep resolution or add a DC offset to the sweep waveform, even though the Wave Gen has these capabilities.
Furthermore, the firmware is also not as polished as I would expect, as it cannot distinguish a phase shift of -180 degrees from +180 degrees. This means any time your phase hits -180, the plot erratically jumps to +180 leading to a super confusing phase plot. This should have really been ironed out before the release.
The FFT or Fast Fourier Transform is an increasingly relevant feature of all modern scopes. In the past, entry level scopes used to conceal it deep within some obscure math function menu, embarrassed by the crusty performance that would follow. Now however, even low end scopes have modest bandwidth in the few hundreds of megahertz, higher than required sampling rates and increased ASIC power; all of which have enabled the FFT to be much more usable. Infact, the 1000X is so confident of its performance that it flaunts the FFT by giving it a
physical button of its own.
The FFT function, has a lot of adjustable parameters which is very good to see. You can enter a span, and a centre frequency, and it will calculate and tells you your bin resolution. Also, not only can you perform the FFT on either channel, you can also perform the FFT on an intermediate math function! This is far far better than the FFT available on the Rigol.
Even though the display is quite large, say you want to turn on two channels, perform a math function between them and then perform the FFT on the result. How would you possibly display all of those traces on one screen without it looking like a big mess?
This brings to light another nice feature of this scope. You can turn all the channels off, removing any sign of them on the screen but still perform all the math functions on them. This is terrific and is very different to the Rigol 1054Z where you cannot hide a channel, rather only either turn it completely on or turn it completely off via relay action. The 1000X does not seem to turn the channels off physically at all. Instead it simply hides them. This means if you are just interested in looking at the spectra of a signal, you can use the whole screen, in all its glory, to look at the FFT. None of that split screen nonsense!
The FFT option on this scope is very well implemented apart from a few quirks. For example the scope, for some reason lets you set a rather ambitious and outright silly span of 500 GHz. Another little annoyance is the choice of the colour white for the FFT waveform that coincides with the choice of text colour. If you now position the FFT trace at the bottom of the screen to maximise the visible dynamic range, you end up covering a few vital parameters! I also noticed that the scope was prone to glitch if the FFT was fiddled with excessively. Once, I couldn’t get a few of FFT parameters to disappear even after turning the FFT off, leading to mess of overlapping text strings on the screen.
Keysight is well known for the remarkably fast update rate of its scopes. Judging by the use of higher end ASIC’s I wanted to see what the update rate of the 1000X and how it fares against the Rigol 1054Z.
There is no dedicated external sync available on the scope, however you can make it output the update rate by sacrificing the Wave Gen output.
At the smallest time base of 5 ns, the update rate comes out to a consistent 54 k/s independent of the number of active channels. Performing the same test on the Rigol, we get 14 k/s, and that unfortunately halves each time another channel is turned on. So how exactly does this effect real world use? Consider a clean signal with an annoying infrequent glitch, a slow update rate will not only handicap the ability to characterise the frequency of the glitch but in some cases you might be completely oblivious to its existence.
A good way to illustrate this is to use a glitch prone waveform and use the pass/fail option to characterise its frequency. The slower scope will give us a wrong and optimistic picture of the occurrences. Both scopes were now testing the same waveform, and I left the test running for about 5 minutes. The results were quite remarkable, if not shocking.
The 1000 X had tested a whooping 3,630,000 waveforms during that time and reported 222 failures. The Rigol 1054Z on the other hand, only tested about 475,647 waveforms and reported 33 failures!
Crashes, the Windows CE cursor and Boot Loops
The overall software experience, as you would expect, is quite polished. Apart from the few minor quirks mentioned, I was reasonably happy. While playing with the math functions in detail, in particular for the AM demodulation video experiment shown above, I was shocked to see the scope crash repeatedly if a specific sequence involving saving a CSV file was carefully followed. This not only exposes, but also lets you play with the suppressed Windows CE cursor, if you plug in a PC mouse. Keysight should contact us for hints :)
Hoping this was a rare occurrence, I thought nothing of it. Unfortunately, whilst trying to test the SPI decoding, I plugged a STM32 dev board I had lying around. Oddly, doing so prevented the scope from booting, and it would be forever stuck in this failed boot loop until the device was unplugged.
These are the sort of bugs that can, and probably will, be fixed by a future firmware upgrade, but they’re not nice to encounter anyway.
Seeing a scope of this stature marketed as a lower-end offering is extremely exciting. Its price point and feature set does pose a serious dilemma to someone who would otherwise flock straight to the Rigol 1054Z. Granted, it is priced quite a bit higher than even the four-channel Rigol 1054Z. In my opinion, the substantially faster update rate, familiar software experience, some quirkily pleasant features, and lastly the Keysight badge certainly make up for it.