PICOSCOPE 5444D MSO -  USB Oscilloscope - Review

Table of contents

RoadTest: PICOSCOPE 5444D MSO -  USB Oscilloscope

Author: dhmarinov

Creation date:

Evaluation Type: Test Equipment

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?:

What were the biggest problems encountered?: No major issues encountered!

Detailed Review:

        Before we start I want to thank the E14 team for selecting me as s Roadtest participant and therefore giving me the opportunity to work with the P5444D.

For my review I decided to focus more on the user interface aspects of the product rather than its electrical characteristics as the format of the device suggests

that it is going to be used for on-field measurements rather than extensive research.



The kit includes:

  • The PicoScope 5444D MSO 200 MHz with 4 channels.
  • An USB cable.
  • 4 passive probes with 200 MHz bandwidth.
  • A power supply an couple of adapters.
  • 2 sets of wires and camps???
  • 2 manuals – one quick start guide for software suite and one for the data logger.
  • A bag.


Since the scope needs a software to operate, the first step is to install the software. It can be found here and after installation

two icons can be seen on the user’s desktop – the PicoScope 6 and PicoLog 6, where the PicoScope is the oscilloscope suite

and the PicoLog is the software that allows you to use the device as data logger.



First I will focus on the PicoScope, then I will switch to the PicoLog. The main operating modes of the suite are Scope Mode, which is basically the normal operation,

Persistence Mode, which stacks the signal over time and Spectrum scope, which displays the inputs in frequency domain.


  1. Persistence mode - superimposes the signal over time. This mode has 4 sub-modes
    • Digital Colour - stacks the signal over time and gives different colour to the different intensities.

               “The colours indicate the frequency of the data. Red is used for the highest-frequency data,

                 with yellow for intermediate frequencies and blue for the least frequent data.”



          On the video above you can see how I switch from scope mode to persistence mode. Notice that the time scale gets adjusted.

          As the time passes the signal gets stacked on the previous measurements and areas in which the data accumulates more often, such as the divisions around 0 V, get painted in red,

          whereas areas with less frequent measurements are coloured in yellow and blue. Around the 35th second of the video I remove the input and this is expressed by narrowing of the red region.


    • Analog Intensity - stacks the signal but only for limited time i.e the old measurements fade away. Also there colour does not change according to the intensity of the measurement.
    • Fast - stacks the input, but instead of the full waveform, a decimated version of the signal is displayed. Also the measurements remain as song as the function is used,

               but the colour of the image does not change according to the intensity.

    • Advanced - this allows you to control the advanced options of the other three sub-modes.


     There are also some colour preferences. For example in Advanced sub-mode the colour scheme can be set to Phosphor,

     which will make the current signal more visible by decreasing the opacity of the older measurements. Here is another video in which I switch between different sub-modes.






     Here you can see my attempt of making an eye diagram of couple of signals







     2.Spectrum analyser


     Another mode is the Spectrum analyser, which is basically a FFT of the input with various options and sub-modes:

    • Magnitude: normal operation
    • Average: shows the average of the measurement of the frequency bins.
    • Peak hold: shows the latest measurement of the respective FFT bins.

     There is no persistence mode in the spectrum analyser, however, there is something similar - Peak hold, which once again holds the measured values,

      but does not stack the measurements of the same frequency bin over time. Instead a new measurement of a certain frequency bin, overwrites the old value.

     Still, in combination with the signal generator in sweeping mode the peak-hold option can be used to analyse the frequency response of your DUT.

     To evaluate this functionality I made a very simple circuit - a state variable filter: https://www.electronics-tutorials.ws/filter/state-variable-filter.html .

     I applied a sine sweep from 10Hz to 10 kHz, from the signal generator. Then I set the spectrum analyser to Peak Hold and started to slowly build the spectral profile of the circuit.




     On the video above you can see the frequency response of the band-pass output of the filter. I takes some time! The FFT size is 1024 samples, set the spectrum analyser to 0-10 kHz,

     and if my calculation are right then the FFT spectral step is ~ 10Hz (in other words the frequency of analysis), hence I set the signal generator increment to 10Hz.

     After waiting for ~ 20 minutes I got the following result coming from the band-pass output.



As you can see the measurements between 2 and 4.5 kHz have higher values than the rest, which is as expected. Once the measurement was done, I had to "restart" the spectrum analyser

by changing the modes of operation. If not then the result of the next measurement will not be accurate and there will be some leftovers of the previous measurement

unless you accumulate FFTs for significant amount of time i.e. a couple of minutes in order to have all FFT bins updates.

It would be nice if there is an option to clean the spectrum analyser measurements in Peak Hold mode. For the other two outputs I got the following results:


Magnitude response of low-pass output.



Magnitude response of high-pass output.



     3.Serial Decoding


The scope has 16 digital inputs and hence the ability to decode digital protocols. There is also a wide variety of protocols that can be decoded.



3.1 SPI


First I measured some SPI data. For this test used my Zedboard and a FPGA implemented SPI. The first measurements were not that successful.

The SPI was running at what appears to be 10 MHz (according to my configuration).



The recorded wave shapes are correct, however,  the result from the Serial Decoder seems to be left-shifted by one bit (the actual data is x"826A40AA"). Slowing down the SPI frequency to 1 MHz leads to the correct result.



One thing that is missing though is the second data channel after all a SPI has MISO and MOSI.


3.2 I2S


Once again deploying my FPGA, I used the decoder with no problem.  In the Serial Decoding window pane you can see the decoded data, which is correct.

There is one thing though - look at how the packets are enumerated – from 1 to 8.



The problem is that there are two words per frame and it is not indicated how the data relates to each other – is 1 and 2 from the same frame, or is it 2 and 3?

Nevertheless this is a minor issue.




One note about the decoder – it would be nice to be able to specify custom protocols. My other scope (from LabNation) can do it and it costs only 1/10th of the P5444D price, therefore the desire have this functionality does not seem so unreasonable.



4. Signal Generator

Apart from the oscilloscope, there is a signal generator and just like most signal generators, this one provides control of basic parameters

like amplitude (0-2V), frequency (0-20MHz), offset (depends on the amplitude of the signal) and waveform (sine, square triangle etc). Nothing surprising here.



The interesting features, however, are the arbitrary wave, the sweep mode and the trigger.


4.1 Arbitrary Wave Generator




Using the arbitrary waveform generator is actually quite easy - the "Arbitrary" button leads you to a wizard, which is drawing-based. There are some presets like sine square and saw tooth.

The cycle is divided into N amount of samples and then by entering the Line Drawing Mode you can click on the desired amplitude for each point or linearly connect several points.

However you also have the possibility to draw the waveform continuously like you would do in Paint. Depends on your waveform requirements.

You can also record the signal from the scope and use it as waveform. To do this you have to place the time rulers within the region of interest or indicate the sample number.

One thing you should know is that once you enter the arbitrary waveform generator, you cannot adjust the time rulers. And of course you can import and export wave forms in .csv format




On the video above you can see how I import the signal I measure and the video below shows you how I create my own signal in the arbitrary wave generator and apply it.





4.2 Sweep Mode




As the name suggests this mode allows you to sweep the signal. The user can choose between 4 sweep modes: Up, Down, Up Down and Down Up.

Last two modes are similar because the logic follows that after Up there is a Down, then Up again and so on. In other words there is no discontinuity between the individual sweeps like there would be in Up or Down mode.

At leas I didn’t dind a difference between Up Down and Down Up. The minimal frequency increment is 30 mHz and the maximum depends on the start and stop frequencies.

The signal generator uses time to increment the frequency of the generator. At first this seems to be fine, but if you look in detail, then this way of measuring time can introduce some unpleasant effects.

Let me explain. When using the sweep mode the frequency is incremented every n seconds.

There are two reasons why this is a problem :

                                                                           Fstop - Fstart = 19990 Hz


Then dividing result of the previous operation by Finc, gives us the amount of increments needed in order to reach from Fstart to Fstop.

                                                                           19990/Finc = 1999 amount of increments


Finally multiplying the N increments by Tinc results in the amount of time it takes to complete one sweep operation in other words

               1999*Tinc = 1999*1ms = 1999*1*(10^-3) = 1.999s.


That's fine, but for some applications it is too long.  But my question is - why incrementing the frequency after certain amount of time instead of amount of cycles. 1ms is 1/10th of a 100Hz signal, but for 10 kHz, 1ms is 10cycles.

This does not give the same opportunity for all frequencies to develop.


  • Second: the first point subsequently results in signal discontinuity and the introduction of undesired harmonic content. Let’s examine the following case - sine sweep from 100Hz to 300Hz with increment of 100Hz.
  • In order to achieve full cycle for 100Hz the time increment has to be N times 10ms, if not the sine wave gets interrupted. Notice in the video how as I decrease the time between increments the lower frequencies of the sine wave get interrupted.



A better option would be if the increment happens every N amount of cycles. This will fix both problems. In the end this may not be a problem in certain conditions,

but it should make you aware of how you configure the settings of the signal generator.


4.3 Trigger




This option allows the user to trigger the signal generator whenever a certain event occurs like the measured voltage crossing it’s trigger threshold. It is also possible to trigger the generator manually trough a button.

Another option is the amount of cycles per trigger, which as suggested determines the amount of cycles the signal generator outputs per trigger. This however changes if the sweep mode is engaged.

In this case the amount of cycles indicates the amount of sweeps per trigger.  Once the sweep has reached its final frequency value the signal retains its frequency until the next trigger is received.

Also it seems there is some waiting time between triggers as once the signal has been sent out, the signal generator does not trigger right away.

In the video below you can see how I trigger the signal generator and what the difference is between having the trigger mode on and off.




One last think about the signal generator – there is a white noise generator, but it would be nice to have it as an option like a parameter that can be added to the other wave shape in this way the user could “corrupt”, an otherwise ideal signal on purpose.




5. Custom probes

The PicoScope software allows you to define the characteristics of the probes you use in order to compensate certain effects introduced by the probe.

It also allows you to define your own probe profiles in case you want to measure parameters other that voltage. You have the ability to scale the input and add some offset, which is fine with linear sensors.

But if the output is non-linear then this option is useless. For this you can use the second option which is a look-up table of predefined input and output values.

In my application I wanted to measure the frequency of a monophonic signal and plot the result over time. This example is surely not the best because the scope can already do that.

But let's say the user wants to measure RPM of a motor whose sensor generates 4 pulses per revolution. This would require to measure the frequency of the signal and scale the frequency measurement result before obtaining the actual RPMs.

(Actually it is possible to measure RPM instead of frequency in the Measurements bar). This seems not to be possible when creating a custom probe.

In fact it is possible to do such transformation, it just does not happen in the custom probe feature. Instead it is possible to do it in the math function. Anyway back to the custom probe.

Since I wasn’t able to execute my initial plan I come up with another one - use the lookup table in order to correct a custom sensor input.

However, in this experiment the non-linear input will be a sine wave that will be “linearized” through the lookup table. In MATALB I took a sine wave with amplitude of 1 (Volt) pk-pk and length of N samples (1024).

Then I created a vector whose content is described by the following formula: vector = 2*n/N-1, which is basically a straight line from -1 to 1, and each step is incremented by 2/N.

Then I plotted the sine-ramp relationship by putting the sine array on the X-axis and the linear vector on the Y-axis.



From the plot I extracted a polynomial that describes the resulting curve.


Then I applied the sine array to the polynomial and the result, which is supposed to be the corrected

signal, I wrote in the lookup table.



Also when you write the table, make sure you write column-wise, put the input values in the first column and the corrected values in the second column.

And make sure that there are no repeating values in the table, otherwise the custom probe wizard will report an error and you will have to fix the table.

Finally, I imported the table and updated the probe. (In the video the probe was already applied to the signal, that's why the signal generator shows 900mV, but the scope measures 450mV,) Let's see what happens...




Looks like it works. The Amount of values in my table are about 1024, whereas with 8-bit resolution you have 256 possible values, which means that in this experiment I probably have managed to cover all possible input values, granted that the input ranges from -1 to 1.

Let's see what happens when the input gets outside the predefined range.




That's right - the signal gets saturated. The conclusion is - you can correct non-linear inputs, but you should be very familiar with your input and make sure you cover all possible values.




6. Math Operations


Just like in most digital oscilloscopes, you can apply some mathematical operations on the input signals.

This one, however, gives you way more advanced options like performing trigonometric operations, filtering and access to signal parameters like frequency, and duty cycle of the input.










To demonstrate this feature I decided to execute the plan I had for the custom probe – plot the frequency of an input. This I did by taking signal from the signal generator instead of the groove box as initially planned.

In the video below you can see how I access the Math wizard and then apply it to the input. This results in a second, black graph being displayed.

The new “signal” represents the frequency of the input and it can clearly be seen how it goes lower, as the input frequency decreases.





7. Advanced Triggering and Alarms


In addition to the standard triggering functionality, PicoScope is also capable of detecting specific digital values (when using the logic analyzer), pulse width and interval between pulses etc.

These events can be used to trigger various events such as beeping, saving the data in the buffers or executing a program.


7.1 Masking

This feature creates a boundary around the desired input and it allowed fluctuation values. The ideas is that this tool will help the user to detect unwanted spikes and dips into the input.

Once a fault is detected crossing the predefined boundary, the scope stops so the signal can be examined. The illegal values are clearly colored and it is quite obvious where the imperfections are.

When setting the mask have in mind that the mask is fixed for this exact parameters of the input. If frequency changes, the mask will not adapt to the changes and this will be detected as crossing the boundary of the mask.

Also apply the mask to 1 or two periods of the input, otherwise the mask will only detect errors happening at the peak and trough of the wave. I used this feature to record data when such fault occurs.





It works as expected and you can record data in various formats like CSV, .mat and PNG. However, at certain point the alarm started triggering all the time even when there were no mask fails.

You can see this happening in the second video.




One more thing – once the software starts recording the buffer it gets difficult to stop it. Apart from that it is really easy to use both the mask and the advanced triggers.

What I find really nice is that you can have multiple actions per event.



7.2 Digital and Logic trigger


Whereas Masking is concerned more about the integrity of the signal, the digital trigger offers more abstract view of the input by detecting a predefined pattern on the digital inputs.

For a moment I thought you can also specify a sequence of digital levels for each input, but this is not the case. Anyway, the digital trigger is quite easy to use – simply specify the condition for each input at which you want to issue the trigger.

The Logic trigger is pretty much the same as the digital except that you can also use the analogue probes for triggering and you can issue the trigger when a combination of events occur.






7.3 Advanced edge


This option provides the user with the ability to trigger on both edge of the input. In the video below I use both edges to trigger the signal generator.




7.4 Window


This mode is similar to the masking feature in a way that you specify the upper and the lower boundary for the signal. Notice how as soon as thee input exceeds 1V the signal is getting locked at t = 0.                                           







7.5 Pulse width and interval


In addition to detecting crossing thresholds, PicoScope also offers detecting a predefined pulse width (Pulse Width) as well as interval between pulse edges (Pulse Interval).

It is also possible to establish a range of pulse widths and trigger whenever one of the boundaries is crossed (Window Pulse Width).










7.6 Level dropout


This feature measures the time after rising or falling edge and activates the trigger once more than the predefined time has elapsed.






7.7 Window dropout


Similar to the previous option, this feature detects when the signal enters a specified range and stays longer than required.



7.8 Runt


  This option analyses a sequence of pulses and if some of the pulses have lower amplitude that the rest, then the trigger is activated.

In the video below I use the signal generator to create square wave and feed it into the scope. Then with the arbitrary wave generator I create a pulse waveform whose every 2nd cycle has lower amplitude.



I am not sure why I am not getting the result from the datasheet. For some reason it is not triggering as expected. Maybe the settings are not correct. This needs further investigation.







Here are some other things I have decided to share.

  1. In Multi scope view (when you have many scopes) you can adjust the vertical axis but not the horizontal.
  2. Measuring different parameters of the input is also quite easy – click Measurements + on the bottom and put the desired settings. It would be nice to have a “custom measurement”, just like the custom probe.
  3. You can have many “scopes” or view like the spectrum analyser and the time-domain scope at the same time, but you cannot put different signal into different views. And if possible then it’s not so obvious how to do it (I didn’t find anything about this feature in the manual).

    d.When having two scopes, one for the time-domain and one for the spectrum analyser, the frequency grid of the spectrum analyser is tied up t the time axis of the time-domain view. The problem is that when the frequency grid is zoomed in, the time grid is zoomed out???




    e. It would be nice to adjust the time and voltage settings of the scope  with custom values and not only presets.

    f. You cannot run the PicoScope and PicoLog in the same time (at least that's what I experienced)

    g.8 vs 16-bit resolution


    h.I found some strange issues when switching between the bit resolution of the scope channels


The input is not supposed to change, yet it does as the bit depth changes. I didn’t manage to recreate the issue, therefore it is not something to be taken very seriously. I just thought of sharing it anyway.


    i.Buffer preview example.




Couple last words : I have also prepared some additional information( about the PicoLog, more serial decoding and some analogue measurements) but it will come around end of January in my personal blog.

I tried comparing the scope to other USB scopes, but it seems there are no other products that really be compared to the product. I get the feeling that USB scopes are aimed toward hobby and the education market.

This scope is not one of them. There a couple of factors that led me to this conclusion.

1. Most USB scopes are rather affordable

2. The PicoScope suite is way more sophisticated compared the one from LabNation (and probably the other USB scopes).

3. For the same amount (of money) one can buy a standalone scope from a reputable company. Take a look at

     Rohde & Schwarz RTB-2004  or  Tektronix MSO2024B

   Sure these scopes are a bit more expensive but more or less are in the same class in terms of performance.

   What this means is that PicoScope aims to deliver high performance and quality in a USB package. This in return targets uses who need the reliability, performance and mobility like professionals who work  outside the lab environment.  


To conclude:

-    The software is super easy to use (for most parts).

-    The above mentioned "issues" should not discourage people from buying/using the device, because they can easily be fixed in the software.

-    I am not able to comment on the price exactly as there are not that many products that can compete with this product.



Best Regards

  • Hi Dimitar,


    Very well done and well presented road test. Thanks



  • Great roadtest review!  I am still working on my review, but I did enjoy getting your take on the scope and seeing the areas that you covered.

    Well done!


  • Thakns, I will look into it.

  • I found something that can be may be related to the product. Check it out:


  • Interesting and detailed review of the picoscope.


    I think you can set different voltage levels by building a custom probe, not sure about different timebases, I have never needed anything other than the pre-selected ones.


    Kind regards.

  • Thanks for your detailed review of the software ... something I'm actually quite fond and familiar with.

    When having two scopes, one for the time-domain and one for the spectrum analyser, the frequency grid of the spectrum analyser is tied up t the time axis of the time-domain view. The problem is that when the frequency grid is zoomed in, the time grid is zoomed out???

    I believe this is a common thing to all mixed domain oscilloscopes as it is a mathematical relationship with the number of samples recorded (i.e. size of buffer) and the amount of frequency resolution you can attain with FFT (e.g. see https://electronics.stackexchange.com/questions/12407/what-is-the-relation-between-fft-length-and-frequency-resolution). If you want finer frequency resolution, you must capture more time domain samples to compute a longer FFT, thus the time view would appear zoomed out. While you could in theory zoom in on the time view under this condition (some scopes do allow you to do this), the computed FFT display actually corresponds to the whole buffer, so it's normally more intuitive to have them linked as you observed or some form of overlay to indicate the window of samples used to compute the FFT graph.


    The input is not supposed to change, yet it does as the bit depth changes. I didn’t manage to recreate the issue, therefore it is not something to be taken very seriously. I just thought of sharing it anyway.

    I suspect what you might be seeing might actually be an important issue. I suspect the flexible resolution is basically interleaved ADC operation, and if the offset in timing between ADC samples is not exactly perfect, the sampling jitter can cause waveform irregularities similar to those you observed. However, without peering deeper into the sample rate and frequencies, I can't be too sure.


    I am not sure why I am not getting the result from the datasheet. For some reason it is not triggering as expected. Maybe the settings are not correct. This needs further investigation.

    I suspect your runt mode configuration settings may not be correct - you may have set the voltage thresholds too wide. Do consider that the actual threshold is a little wider than set due to the hysteresis setting, and a runt pulse is detected when it crosses just one threshold but not the other. I suspect your low threshold was so close to the ground level or even below it that the signal was never exiting the bottom threshold at all.


    - Gough

  • Nicely written and detailed review of the PICOSCOPE 5444D MSO. I was waiting for the reviews of this device as I want to suggest it to a friend to buy. If you want to do a comparison with RTM from R&S I am open to doing that.


    But maybe it will be like comparing apples to golden mangoes image