Rohde & Schwarz MXO3 reviewA while ago Rohde & Schwarz contacted me to ask if I'd be interested in reviewing their new MXO3. Sounds like fun and it has been a while since I did an oscilloscope review so let's do it!
Since the RTM3004 review the local Rohde & Schwarz office has moved to a brand new building in Utrecht so picking up the MXO3 gave me the opportunity to get a look at their new offices as well :-)
And it looks cool on my desk. Nice big screen and no less than 8 channels!

A quick summary with the most important base specs:
4 or 8 analog channels
1 external trigger input
<1ps trigger jitter
12 bit ADC
RIS acquisition mode
Options:
16 channel MSO option (5Gs/s, 300MHz bandwidth)
Segmented recording up to 500Mpts in total
Protocol decoding & triggering
50MHz Waveform & pattern generator (5Vpp into 50 Ohm / 10Vpp into high-Z)
Spectrum analysis mode
Power analysis
I'll be reviewing the 8 channel, 1GHz model with most common options enabled / present (including MSO) with firmware versions 2.8.2, 2.9.2 and 2.10.2
The MXO3 comes standard with 500MHz passive probes (one for each channel) and when the MSO option is ordered with two MSO probes. A front cover and a carrying bag where included with the demo unit I received.
What sets the MXO3 apart from the RTM3004 is more memory, much lower trigger jitter, zone triggering, the option to have 8 channels and last but not least, a much higher overall performance level. There are also some changes in the user interface. Where channel color settings are under the channel configuration on the RTM3004, on the MXO3 they live under main menu -> settings -> appearance. So expect a bit of a learning curve when upgrading from the RTB2004 / RTM3004 to an MXO3. Coming from the R&S RTM3004 myself I can't help myself to make a comparison here and there.
With the B105 option the memory gets expanded to a whopping 500Mpoints. However, the MXO3 uses double buffering so the maximum depth is only available when running in single shot acquisition mode or with half the channels enabled. The same goes for the samplerate. With half the channels enabled, the samplerate is 5Gs/s, with more than half of the channels enabled, the samplerate drops to 2.5Gs/s. Still, 2.5Gs/s is enough to achieve the maximum bandwidth of 1GHz. When the digital channels are thrown into the mix, the memory halves again. So with 8 analog channels and digital channels enabled, the memory depth is 125Mpts per channel. But keep in mind that you'll have a combined total of 24 channels on the MXO38! Also, when using the maximum record length there is enough internal memory to have 3 acquisitions in the memory (the current acquisition and two previous acquisitions in the history buffer).
Test planPer usual MO I have devised a bunch of tests to see where the limits are and how certain features work to solve real world engineering problems.
Tests in random order:
- Bandwidth / aliasing
- Fan noise level
- Low level signal triggering
- Trigger jitter
- Frequency (zone) triggering
- Sequence triggering
- Signal noise floor
- Overdrive recovery
- Math
- MSO inputs
- Protocol decoding, required over sampling and how much of the memory is decoded
- Deep memory and decimating long traces onto the display
- Automatic measurements
- FFT function / Spectrum analysis mode
- DVM application
- 12 bit usefullness and noise
- Saving images
- Cursors (outside screen?)
- Operating / using the scope
- Peak detect and roll mode
- Segmented recording and decoding
- Storing and manipulating reference waveforms
- Waveform generator
- Power rail measurements
- PDN analysis (power rail frequency response)
- XY mode
- Waveforms/s
As the manual for the MXO3 consists of over 1700 pages it should be no surprise there is much more explore. However, I had to make a selection of tests for items/features that I find relevant and differentiate one oscilloscope from the other.
The secondary goal is to use the oscilloscope for a while to get used to the operation and in order to spot stability problems / usability issues.
Shahriar (The Signal Path) already did a teardown and took a deep dive into RF performance and triggering. Forum member Martin72 also did a 'short' review on the MXO3:
https://www.eevblog.com/forum/testgear/rs-mxo3-a-short-review/First impressionThe first impression after turning it on: wow... it is bright! Even in a very well lit office. The front panel LEDs are bright and the screen is bright. Fortunately both can be adjusted. I dimmed the front panel LEDs to 15% and the screen to 80%. So there is plenty of headroom to turn the brightness up if needed. What also stands out is that the MXO3 has a matte screen. When the RTB2004/RTM3004 came out, a lot of people were worried the glossy screen would be a problem. R&S addressed these concerns and fitted the MXO3 with a matte screen.
On the front panel the knobs and indicators are neatly organised into groups for triggering, horizontal, vertical and auxiliary functions. Being used to touchscreen equipment, I must say I hardly use any of the buttons on such test equipment. I mostly use the rotary knobs to make quick adjustments. For the rest, the touchscreen is more versatile. I think R&S has ended up with a good balance between having the necessary buttons on the front panel without making it cluttered.
And of course the MXO3 has a single sensitivity (V/div) and position adjustment for the channels. Having 8 vertical sensitivity, setup and position controls would need a huge amount of space on a front panel. Which takes me to the size of the unit: it is nice and compact. Measuring about 37cm in width it takes up just as much bench space as my other daily driver scopes. The analog channels are connected at the front, the digital channels at the right. Unfortunately having 8 analog channels meant that the generator output and external trigger input are located on the back. The front panel does have two USB sockets though for a USB stick and/or to power a universal probe which are typically powered through USB nowadays.
What I'm missing on the front panel is a force trigger button. I use this regularly for some measurements. Fortunately it is possible to add this as a hot-key function on the touchscreen so this functionality isn't lost. I guess keeping the front panel minimalistic meant sacrificing some physical buttons and I'd agree that the force-trigger button would be the least used one.
For an oscilloscope with so many analysis features, the screen is always too small. On the MXO3 this is solved by having multiple tabs (workspaces) allowing the user to create virtual workspaces. After adding a new tab, the 'contents' can be dragged into the display area. This works by dragging one of the active signals (input, math, tracking, spectrum, etc) from the bottom bar into the display area. The display area will then highlight the position where the signal will be placed if you remove your finger. A signal can be placed into an existing grid or a new grid. This is not obvious from the UI but it works pretty well once you know it is there. If the traces are compatible (same X axis), they can be shown together in a single grid but it is also possible to create separate grids. The image below shows layout. A handy shortcut to add to the top bar is the waste bin. This allows to remove content from a tab. After having used the MXO3 for a while I can say the tabs are a great way to get more out of the screen real estate. And of course the tabs can be given a name so it is easy to see what is in which tab.
This image shows a tracking trace (frequency measurement) on a signal with a linear frequency sweep. The other tab shows 3 inputs and the spectrum analyser window.

Other inputs /outputsAt the back there are three more BNCs: 'trigger in', 'trigger out' and the generator output. The 'trigger in' connector is a regular external trigger input which can be configured like a normal input channel (50 Ohm / 1M Ohm, AC/DC coupling). So every input channel can be used to display a signal while having a 5th or 9th analog signal to trigger on (depending on whether you have the 4 channel or 8 channel version). The trigger output signal is a 5V (high-Z load) digital signal to notify other instruments a trigger event has occurred. The generator output speaks for itself.
Probes and accessoriesThe MXO3 comes with probes for each channel. The probes are fixed 1:10 and have tips with a pogo pin (a spring loaded pin). The cable is flexible and the probe itself has a slim design so it is easy to reach difficult spots. The color coding clips that come with the probes only have 4 colors though.
The digital channels need special digital probes. These use a display-port style connector. The RTM3004 uses a wide HDMI style connector. It would have been nice if the RTM3004 and MXO3 digital probes were interchangeable but I assume the wide HDMI connector has become obsolete in the meantime. There is also some room for improvement on the probe leads. It would be nice if these would come pre-numbered (and color coded) instead of needing to put stickers on them yourself.
Fan noiseIf you look at the back of the MXO3 you'll notice it has a huge fan. I estimate it is a 140mm diameter fan. As a result the MXO3 is whisper quiet so it is not annoying to use in my rather quiet lab. However (as Shahriar has noted as well), the BNCs feel quite hot when the MXO3 has been on for a while. I wouldn't object to the fan running a bit faster just to keep the internals of the MXO3 cooler. When the MXO3 is pushed with long traces and heavy measurements, the fan speed does increase a little bit (according to my very sensitive ears). But the sound level stays very far away from becoming annoying.
VerticalThe vertical controls allow setting an offset based on divisions or absolute voltage. A voltage offset keeps the signal centred on the display when changing input sensitivity. A division offset keeps the zero level of the signal on screen. The voltage per division can be adjusted in 1-2-5 steps or variable. One thing to keep in mind is that there is a separate DC offset and trace position. The DC offset typically spans a much larger range compared to the trace position so the DC offset is a useful tool to bring the trace on screen in case the trace position isn't sufficient. In case of the MXO3, the trace position spans 10 divisions. However, the MXO3 has a setting which allows the vertical position knob to either control the trace position or the DC offset so you can set this to your preference. From the channel menu you can adjust both.
What confuses me in the channels dialog is that when disabling a channel, the dialog jumps to the next active channel. Having quick trigger fingers I immediately try to disable the channel because I get the impression the touch was missed. And there seems to be little logic as to which active channel is chosen to display the settings for. I think it would be better that when a channel is disabled, the dialog for that channel stays open. At least that is predictable behaviour.
It is worth mentioning the MXO3 has a very large DC offset range (compared to other oscilloscopes) which reduces the need to use special probes (like a power rail probe) or differential probes in certain situations. Below 60mV/div the DC offset range is +/-3V while above 1V/div, the offset range is +/-250V DC. Together with the 12 bit resolution, this enables to use common probes or even have direct connections to do measurements which would require special (expensive) probes on oscilloscopes with a lesser DC offset range and less resolution (less bits).
Channel labelsEvery channel can be given a label. The input not only allows to use an on-screen keyboard but it also allows to input the characters by drawing the characters one by one with your finger. This works quite well. There is also a hot-key to add a smiley to the text :-)
HorizontalThe horizontal (time/div) setting goes to 200ps / div. Given the very steady triggering I'd say it wouldn't hurt to make the lowest setting 100ps/div. The post-trigger delay can be up to 5000s which is more than large enough. For time critical measurements the accuracy of the timebase will need to be taken into account though as the MXO3 doesn't have a frequency reference input. If necessary, an alternative way to compensate for time offsets needs to be used. Like measuring a 10MHz reference clock along with the signal under test so an event can be related to the 10MHz reference precisely (either visually or through a measurement). I have found that when setting the horizontal position to 1s, the signal drifts by about 1ns per second on the unit I have tested with.
Bandwidth / aliasingLet's get an RF generator hooked up. First thing I want to look at is how the sin x/x reconstruction holds up at 2.5Gs/s. It turns out the sin x/x reconstruction works up to 1.1GHz before serious distortion starts to happen. Interestingly the MXO3 has the same small signal behaviour as the RTM3004 when the input signal is above the bandwidth. But when testing the RTM3004, it doesn't seem like a big problem after all. All in all it looks like the MXO3 has the same signal post-processing system.
I measured the bandwidth on channel 5 at 5Gs/s with averaging enabled to get a clean signal. I measured using a -20dBm and a +9dBm signal. The reason for using 2 different amplitudes (levels) is that for small signals, there has to be an amplification of the signal which could affect the bandwidth and frequency response. For higher amplitude signals the signal path is likely direct (or even attenuated). During the measurement of each input level the same V/div setting is used (kept constant) as to make sure the same attenuation / amplification is in effect. I used 10mV/div and 200mV/div. The bandwidth is measured compared to the level at 10MHz.
This is the resulting graph:
Deep memoryWith a maximum of 500Mpts (half channels, no digital channels) the MXO3 has plenty of memory. Although the MXO3 can slow down a lot when deep memory is enabled. It can take a little bit of juggling to find the right tradeoff between setting the right memory length versus getting most speed. The latter is especially true when a measurement is enabled as the MXO3 bases its calculations from acquired data.
The amount of memory available depends on how many channels are enabled. From testing I derived the following list: 500Mpts with digital only OR half the analog channels only, 250Mpts with half analog channels + digital, 125Mpts full channels.
Acquisition modesThe MXO3 has four acquisition modes: sample, peak-detect, envelope and averaging. HD (High definition / High-res) mode which uses oversampling to get more bits from the ADC at the expense of bandwidth, can be enabled separately regardless of the acquisition type. To make things easy, the bandwidth can be adjusted so you have a good insight in what to expect from the measurement. In my opinion defining HD mode as a bandwidth limit is a good choice as it is immediately clear what the effect on the signal will be. I'm more interested in what part of the original signal will be included and what part will be lost rather than the number of bits. The status information does indicate the number of effective bits based on the setting.
In averaging mode the number of averages has to be set in the N-single field which is also used in the history / segmented recording setup. What I like is that the average trace remains when the horizontal position and time/div are changed after acquisition has been stopped. So you can analyse an averaged trace in more detail.
The same menu also has the settings for the samplerate (SR) and record length (RL). By default these are set to manual to achieve the fastest waveform update rate while using the highest samplerate to fill the screen. But it is possible to set either. Setting the samplerate and record length allows to have full control over the timespan an acquisition takes regardless of the time/div setting. A useful situation is looking at a specific part of a signal (say an I2C transaction) and when it fails, there is a long trace which can be analysed to figure out what lead to the failure and what happens afterwards.
Of course the MXO3 supports history and segmented recording where history is an automatic segmented recording mode which simply uses the remaining acquisition memory to store previous acquisitions. Segmented recording has the typical settings for record length and number of acquisitions to make before the segmented recording session is complete.
Peak detect and roll modeSomething I like to test is whether peak-detect works in roll mode. For this test I created a 10ns pulse which repeats every 200ms. By forcing the memory length short, I made the MXO3 undersample the signal. With peak detect enabled, the pulse still showed up in roll mode so this test is a pass. The reason I find this test important is because I like to check whether interrupts on a microcontroller fire on time (through toggling in I/O pin). The interrupts take nanoseconds to execute nowadays and may not be very frequent. Using roll-mode gives a nice realtime overview of how the system behaves.
Signal display (colors and persistence)The signal display settings have been 'hidden' in the settings menu. I did some tests around various trigger modes. I found that with persistence mode off, I still get two overlaid acquisitions every now and then. With persistence enabled, the previous acquisition is shown dim. This feature can be handy when wanting to compare a new measurement with an old measurement quickly (without going into the history and so on). The previous acquisition can be removed from the screen when moving the position a little bit.
Several overlapping acquisitions:

The last one (after wiggling the horizontal position):

In addition to persistence on / off it is also possible to set the persistence time or have infinite persistence. In normal trigger mode, the persistence only fades with new triggers. It doesn't fade if there are no new acquisitions which I think is a good thing. Without new information, it makes little sense to remove the information which is already there.
The display modes for a trace are located in the setup menu under appearance -> colors. Besides the analog channels, the way all possible traces are displayed can be configured. The MXO3 offers various ways to color a trace based on where a trace spends most or least of its time. Besides temperature, spectrum and false colors there is also a single-event setting which makes rare / random events stand out. The screenshots below show a signal where 1 in 50000 pulses has a different duty cycle.
First using normal display mode:

Now with single event mode. The pulses with the alternate duty cycle are very clearly visible!
HistogramsThe histogram function can be used to show where a signal spend most of the time. Both vertical and horizontal histograms are supported. It is also possible to define a window for the histogram function so a part of a trace can be examined in more detail. I would have liked it if there is some (temporary) visual hint about the size of the window but maybe I got too used to visual hints. The size of the histogram itself can be adjusted as well.
No window:

With a window:
Waveforms per secondThis is always a hot item on the forum. Martin72 has already touched this subject in his review and determined the MXO3 does achieve the over 4 million waveforms/s spec. Hardly a surprise with a company like R&S making the claim. Still, it is not all about waveforms/s but how much of a signal is captured. In the acquisition menu there is a menu item called speed. This lists the number of waveforms/s, blind time and percentage of the signal being captured. The latter is the most useful piece of information here IMHO as it tells me how complete the picture is. With some tweaking of the time/div and memory depth, percentage can be brought very close 100% which means whatever the signal looks like, very little remains hidden. Interestingly, getting close to 100% is
not where the highest number of waveforms/s is!

TriggeringTriggering is just rock solid. The trigger jitter spec is below 1ps RMS. A nice feature of the trigger system is the ability to adjust the hysteresis window. This helps to reduce the trigger lensing effect and get a more realistic view of how a signal would be seen by an input (like a digital signal which has relatively large threshold). Together with the ability to deskew the channels, the MXO3 allows to make very accurate (low tens of ps level) delay measurements between signals. Better than you'd get from a typical time interval counter (which typically can't measure below 50ps and/or has a large assymmetry between the input channels).

The minimum trigger level to get a stable trigger on a 100MHz sine wave is 1/5th of a division (20mVpp at 100mV/div). This is with the hysteresis set to 0 manually. The automatic hysteresis setting requires about half a division of signal. But this is good enough. At 1/5th of a division a signal is basically a flat line unless zoom is used.

Zone triggering is helping to qualify whether a trigger event should lead to updating the trace on the display. With zone triggering it is super easy to trigger on malformed parts of the signal or just to find gaps. But keep in mind that zone triggering is not a trigger in itself. The fact the MXO3 is put into sequence triggering mode gives that away. The first step is to find a trigger event (which can be any of the trigger types like edge, runt, width, slew-rate, etc). The next step is to qualify the trigger event using the zone triggering conditions. This can be used to define rather complex trigger conditions using multiple zones and logical combinations between zones (including using the frequency spectrum!).
As a third alternative the trigger system has a sequence mode which is typically found on older logic analysers. The sequence mode uses two conditions (A and B) which must become true sequentially for the trigger event to 'happen'. These conditions also include a counter. A third (R) condition can reset the trigger state. So this basically is a programmable state machine to detect a very specific combination of events. As each condition can be set to use one of the trigger modes, the possibilities are endless. This is probably not a feature you'd use every day but if you have a problem which occurs very rarely, having sequence triggering can be worth more in saved time than the purchase price of the MXO3. Spoiler alert: Unfortunately the sequence triggering can only be used with the analog channels.
A special feature of sequence triggering is combining a regular trigger event and bus decoding. This can be used to check the response of system on an input. For example: a user presses a button (input goes low) and the system sends a message. Using sequence triggering, the A event can be the button input and the final trigger event can be the start of the message. This allows for triggering on very specific conditions and getting rid of irrelevant data.
Another feature is to let the MXO3 freerun without trigger. It will just capture & display without caring about where the trigger point is.
What is not there, is a short trigger hold-off delay after a trigger in auto trigger mode. Having this helps to keep a trigger event on screen for a short while when the trigger is set to auto mode. This way you can see the signal when it is idle and see trigger events happening. IIRC the RTM3004 does have this feature. There are pros and cons to both approaches and I guess most of R&S' customers didn't like the delay after a trigger in auto trigger mode. Since I like this feature for some of the measurements I make, I was kind of hoping this could be configured somewhere in the trigger menu in the hold-off section but I have not been able to find it. To me the most logical place for this setting would be the trigger hold-off menu.
While on the topic of trigger hold-off: the trigger hold-off function does have some interesting settings though. Besides setting a fixed time delay before a new trigger is accepted (which is the standard hold-off function of many oscilloscopes), you can choose between ignoring a number of trigger events (instead of a time delay), a random time (between two limits) and a time delay based on the horizontal time/div setting.
Sequence triggering in actionAs mentioned above sequence triggering only works on analog channels. Nevertheless I found it interesting enough to dig into it a little bit deeper. So I created a pattern consisting of a 0.5MHz square wave with missing pulses (channel 3) and a signal with seemingly random pulses (channel 1). Something you can't get a stable trigger on very easily.
The sequence state machine goes from idle to state A (trigger event A), from state A to state B (trigger event B) OR from state A to idle through a reset trigger condition or timeout. Once state B is entered, the trigger conditions are met and a trigger is fired. There is a little bit more to it as it is also possible to set a delay when in state A before starting to look for triggers that take the sequence to state B.
My first thought was to trigger on the missing pulses and then look for the longer pulse. However, the event counter only works for trigger condition B, not trigger condition A. Still I wanted to test this feature. So I setup a trigger to look for a minimum width pulse on channel 1 using trigger event A. Once in state A, 4 missing pulses need to be detected using trigger condition B. I setup trigger condition B to fire when the signal stays low for more than 2.5us. If trigger condition B is not met within 100us, the reset timeout kicks in and the trigger sequence goes back to idle.
This seems to work OK-ish. A problem I spotted is that every now and then the trigger fires after 3 events instead of 4. I don't see why this happens. It would be nice if the trigger A condition also had an event counter. After all, sequence triggering implies looking for a sequence of events. In my example it is only possible to trigger on missing pulses
after a pulse. Not the other way around.


Still, for a real world project sequence triggering worked like a charm. I needed to look at a protocol for which each message starts with two wide pulses. Sequence triggering was the answer to get the start of the frames triggering rock solid.
Spectrum zone triggering exampleOne of the features of the MXO3 is that it can qualify a trigger based on the frequency spectrum of the signal through zone triggering. For this you need to setup spectrum analysis, draw a zone trigger box around the frequency spike of interest and set the triggering to zone triggering. What happens is that the MXO3 triggers on the input signal but also checks whether the zone conditions are met. This allows for rather complicated trigger setups. As a test I used an RF generator which I set to alternate between 1.1MHz and 2.1MHz (so a 100ms burst of 1.1MHz and a 100ms burst of 2.1MHz). In addition I used a function generator to feed in bursts of a 333kHz sine wave. Using the zone triggering I can trigger when the 1.1MHz signal is present AND when the 333kHz signal is present. But it is also possible to trigger on the 1.1MHz when the 333kHz signal is NOT present. Now this feature isn't an alternative for alternate triggering. With the triggering setup to trigger when the 1.1MHz signal AND the 333kHz are both present at the same time, it depends on the trigger source channel which waveform is displayed as a stable waveform on screen. Using the single trigger mode can help to get both signals stable at the expense of needing to press the button for every acquisition. For some reason it is not possible to set a trigger hold-off time combined with zone triggering. If you can slow the trigger rate down using trigger hold-off, you could see both signals stable at the same time.



12 bit usefulnessThe specifications of the MXO3 has a long list with noise floor levels at various sensitivities and bandwidths so I'm not going to dive deep into that. In the end I'm interested in whether 12 bit can help to get more details in a signal so let's throw a real world problem at it! A few years ago (time flies!) I tested a Korad KEL2010 DC load which has a 50Hz ripple of about 1mApp at the output (after I did some modifications to the KEL2010). In that test I used a 10m Ohm current shunt. This means that the signal (=measure current) going into the oscilloscope has an amplitude of 10uV peak-peak. At 1mV/div and having 10 divisions, the range is 10mV. As a 12bit ADC has 4096 discrete steps, each bit spans about 2.4uV. So in theory the input signal amplitude should be detectable by the ADC. On the Yokogawa DL708 scope I used for that test (also 12 bit) I had to enable low-pass filtering, line triggering and averaging to get a visible trace. On the MXO3 doing the same measurement is not a problem at all when using HD (high-res) mode to have low-pass filtering combined with averaging (and line triggering). The only limitation I have found is that the trace offset and cursors move in steps of 10uV so you can't make a cursor measurement in the zoom window at uV levels.

The harmonics also show up in the frequency spectrum:
Overdrive recoveryThere is a limit on the signal amplitude you can apply to the input of an oscilloscope before you get distortion in the signal. The time it takes to recover from such a situation is something to keep in mind when using an oscilloscope in a situation where the amplitude may exceed the range. Because the MXO3 has a large DC offset range, it can handle large amplitudes before being overdriven. However, when overdriven it takes about 500us before the input circuitry recovers according to the test shown in the screendumps below.
The same signal. first normal, then overdriven.

Saving imagesSaving images is a matter of pressing the button with the camera on the front panel. By default the images end up on a USB stick if that is plugged into one of the two USB ports on the front panel. It just works out of the box.
MeasurementsOne of the first things I like to know about measurements is whether these are taken on acquired data or whether decimated data is being used. A quick check is to input a signal (preferably a square wave) and let a DSO measure the rise time. If the risetime starts to increase (or show that it can't be measured) with increasing time/div settings, it is a sign that the oscilloscope is using decimated data ((even though the samplerate / memory depth are high enough to resolve the risetime properly). When testing the MXO3 it turns out the measurements are performed on acquired data. Nice! I did find something odd though. I tried the pulse counting function and found out that the maximum number of pulses that can be counted is 1 million. At first I thought the samplerate was too low but after increasing the memory depth it was still hitting this limit. After a bit more testing & tweaking it turned out the limit for pulse counting really is 1 million pulses. It would have been nice though if this result would be flagged as invalid or overrange. With deep memory enabled, it is easy to get more events in the memory than can be counted.
For measurements which use edges, the reference levels can be adjusted as well. The reference levels can't be adjusted directly but must be selected from a defined set of reference levels. This allows the same reference levels to be used across several measurements instead of setting the reference level for each measurement.
The same goes for selecting the part of a signal which is measured (gating). The MXO3 has separate gate configurations which can be applied to a group of measurements.
Zoom modeZoom mode just works. Besides drawing a rectangle in the main window to select the zoom area, it is also possible to use the time/div and horizontal position knob for finer adjustments which is handy when wanting to zoom in deep into a signal. I have added some images in this review showing zoom mode in action. The fact that the zoom window has an adjustable size makes it possible to have sensible tradeoffs between the amount of original signal being visible versus the amount of zoomed-in signal.
MSO inputsThe 16 digital inputs are divided over two 8 bits pods. A nice feature is the adjustable hysteresis. One of the problems I had with an MSO from Agilent was that it would create false pulses because the hysteresis was too small to deal with a slow edge from an I2C bus which in turn (annoyingly) disrupted protocol decoding. The digital pods come with special miniature probes (one for each channel) with a short wire attached to it which can be pushed onto a header pin. A ground wire can be attached to each probe as well in cases where improved signal integrity is needed.
For testing I created a clock signal and a 4 bit counter with the pattern generator. The digital inputs can be grouped into logic groups. A group can be displayed as a bus. It is also possible to define one input as a clock signal so jitter between the signal doesn't cause false values in the bus display. So far so good. Unfortunately, it is not possible to share digital inputs between groups; an input can only be used once for display. However, it is possible to share the digital input which is used for the clock.
Unclocked parallel bus:

Clocked parallel bus:

Something I was looking forward to test is sequence triggering in combination with the digital channels. It turns out this isn't possible. Sequence triggering only works when using analog channels. Bummer! I was hoping the sequence triggering was able to replace more complex triggering like you find in a real logic analyser. A real logic analyser has a programmable trigger state machine where you can define events to either advance to the next state, go back to the previous state or get to the last state where the trigger occurs. This is very helpful to find more complicated problems and is still relevant for doing FPGA development work. The sequence triggering in the MXO3 is a simplified version of having a trigger state machine but it could still be very useful for digital channels.
But overall the integration of the digital channels is good. The height can be increased / decreased and it is clear whether a signal is high (green) or low (purple). Alternative a single color (user configurable per digital channel) can be used as well. In case of the single color, a thick horizontal line means high a thin horizontal line means low. The minimum height for 8 digital channels is 2 vertical divisions. And of course it is possible to display less channels if needed.
CursorsOf course the MXO3 has cursors. The cursors are referenced to the time and voltage of the acquired trace and not to the location on the screen. This means you can expand a signal and place a cursor very precisely on a point in the signal. After that you can contract the signal and move over to a different point to place the second cursor. It doesn't matter if this causes a cursor to become off-screen. In the cursor menu there is an option to bring a cursor back onto the screen in case it is 'lost' somewhere in the acquisition. This workflow allows to make precise measurements using the cursors on an oscilloscope.
In addition it is also possible to have the same cursor measure across multiple sources so -for example- the voltage difference between two (or more) signals can be measured. I have already used this feature while using the MXO3 for a project I'm working on.