OpenScope MZ Development Kit - Review

Table of contents

RoadTest: OpenScope MZ Development Kit

Author: avnrdf

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?: Saleae Logic 4 (now discontinued). Cheap Chinese logic analyzers, but they don't include as many features (waveform generator, oscilloscope etc.)

What were the biggest problems encountered?: Buggy software - UI would randomly freeze and require a reboot. Missing features - the Logic Analyzer has no protocol decoder.

Detailed Review:

EDIT:  Managed to get Sigrok to decode CSV files that are exported from Waveforms Live. Check the Logic Analyzer section for more details.




Digilent's OpenScope MZ, the new entry level device in their instrumentation lineup which sells for $89.


Digilent's instrumentation lineup also includes the Analog Discovery ($259 - EOL), Analog Discovery 2 ($279) & the Digital Discovery ($199), though educational pricing drops the prices of the first two down to $159 & $179. All three of these support Digilent's Waveforms software and are much more capable (and pricier) than the OpenScope MZ.




  • Connectivity
    • WiFi (802.11g)
    • USB 2.0 (High Speed Required)
  • Oscilloscope
    • 2 Channels
    • 12-bit resolution per channel
    • 6.25 MS/s sample rate
    • Flat bandwidth up to 1 MHz at ±0.5dB
    • 2 MHz of bandwidth at -3dB
    • 1 MΩ of input impedance
    • ±20 V input voltage range
    • Maximum buffer size of 32640 samples per channel
  • Arbitrary Waveform Generator
    • Sine, triangle, sawtooth, square and DC outputs
    • 10-bit resolution
    • 1 Hz to 1 MHz frequency
    • 3 V pk2pk output with ±1.5 V offset
    • 10 mA output current
    • 25000 sample buffer size
  • Logic Analyzer and GPIO
    • 10 Channels multiplexed between the Logic Analyzer and as general purpose IO
    • 3.3V CMOS logic for both the Logic Analyzer and GPIO
    • 7 mA source and 12 mA sink when used as GPIO
    • Logic Analyzer has a sample rate of 10 MS/s
    • Maximum buffer size of 32640 samples per channel for the Logic Analyzer
  • Power Supply
    • 2 Channels
    • ±4 V output voltage
    • 50 mA per channel
  • Other features
    • Two external triggers
    • USB powered device
    • 4 user LEDs


The OpenScope doesn't come very close to its more expensive siblings in performance or specifications, but its significantly lower price makes it more accessible to hobbyists, amateurs & makers.


An oscilloscope, a logic analyzer, power supply, data logger &  power supply are needed to comfortably work with electronics: all of which are too expensive for a hobbyist to consider purchasing (even any one of those!).

Digilent has packaged all these tools into one device: the OpenScope MZ which is sold for an affordable price. It includes all of the above mentioned features and is available at a relatively accessible price.


The Competition


OpenScope MZAnalog DiscoveryAnalog Discovery 2
Digital Discovery 2Saleae Logic 4Saleae Logic 8 Saleae Logic 8 DSCope Kit
Saleae Clone
Kingst LA1010
Kingst LA1016
$89$259 (EOL)$279$199$109 (EOL)$149 (old)$399 (current)$99 (Logic) + $129 (Scope) = $229$5 (China)$49$88
Analog Channels2ch 12bit2 ch 14bit2ch 14bit 18 (shared)2
Analog Rate6.25 MS/s100 MS/s100 MS/s 6MS/s10MS/s

200M @ 1ch,

100M @ 2ch

Analog B/W2 Mhz5 Mhz30 Mhz 600kHz1Mhz30Mhz
Analog Vin+/- 20V+/- 25V+/- 25V 0-5V0-5V+/- 25V typ,  100V (max)
Digital Ch10161632488 (shared)16816
Digital Rate10 MS/s100 MS/s100 MS/s<800 MS/s12 MS/s24 MS/s100 MS/s16ch @ 100Mhz, 4ch @ 400Mhz24 MS/s

100M @ 3ch

16M @ 16ch

100M @ 16ch
Digital B/W3Mhz25Mhz50Mhz20 Mhz20 Mhz
Digital Samples10+ Billion10+ Billion10+ Billion16M * 16 = 256M10G10G
Digital Vin5V tolerant3.3V1.8, 3.3 & 5V1.2, 3.3 V

2.5V - 5.5V

2.5V - 5.5V2.5V - 5.5V0 - 6V0 - 5V0-5 V+/-50V
Pattern Generator16ch, 100MS/s16ch, 100MS/s16ch, 100MS/s2x <10Mhz2x <20Mhz PWM
Waveform Generator+/- 3V 10MS/s2x +/-5V  100MS/sx +/-5V  100MS/s
Power Supply2x 0-4V 50mA 0-5V 50mA0-5V 0.7A*4x 1.2-3.3V 0.1A
Digital I/O
SoftwareWaveforms LiveWaveformsWaveformsWaveformsSaleaeSaleaeSaleaeDSLogicSaleaeKingst VISKingst VIS
Sigrok supportWIPYesYesWIPYesYes
Protocol AnalyzerNoneYesYesYesYesYesYesYesYesYesYes
ExtraWifiN/W, Spectrum, Voltmeter


  • While the Saleae Logic 4 clones are a lot cheaper (<$5) and offer better performance (24 MS/s), they're only logic analyzers. The hardware is a replica of the Saleae Logic 4, and while they're even advertised to support the software, I'm not sure how legal it is (although it works) since Saleae hasn't licensed the software. One alternative is to use Sigrok/PulseView, which has support for most Cypress FX2 devices.
  • The lineup from Kingst is interesting: a range of logic analysers with PWM outputs that range from $30 to $200+. The specifications of these devices beat the OpenScope MZ, and they've got better software support too: either the proprietary Kingst VIS or Sigrok. Again, they're only logic analyzers.
  • Saleae seems to have abandoned their lower priced products: the Logic 4 has been discontinued, and the new (and better) Logic 8 is $399. Comparing the OpenScope to the now discontinued Logic 4 and original Logic 8, both have better specs (both, analog & digital), but miss out on a few features like the waveform generator & wireless support.
  • DSCope seems to be good based on reviews, but is double the price for both analog & digital capability. Specs are a lot better, but the price range puts it in profesional territory.
  • Digilent's Analog Discovery: A lot pricier (and more capable), but the educational discount narrows the gap to 2x the price or roughly $80 more.


The OpenScope is a unique device: it might get beaten when it comes to specifications, features or price, but it will always win at at least one of those.

Cheap logic analyzers are aplenty: if you're looking for a logic analyzer, buy one of those since they've got better software & perform better. However, if you're in the market for an oscilloscope, the OpenScope MZ if your best bet, and it includes a few more features too.




The package with OpenScope MZ reached just after Christmas (around a week later than it should have) because of a delay at customs (they're very busy around that time of the year.)

The package was in a good condition, and the OpenScope box was in the middle of bubble wrap.


The OpenScope box is small: 10cm x 9cm x 4cm, and very light:


A simple paper box that folds open: The leads with the connectors are on top, and the OpenScope is below that.


In the box:

  • OpenScope MZ
  • Flywire cable assembly
  • Digilent cardboard packaging with protective foam



The front of the OpenScope contains most of the parts: the 30 pin connector, micro USB port, Microchip's PIC32MZ MCU (which is responsible for all the instrumentation functionality) and Microchip's MRF24 WiFi module. Also on the front is the FTDI FT232 USB-UART IC, an ON Semiconductor 3.3V linear voltage regulator and all the instrumentation circuitry (resistors, op-amps etc). There are a couple of LEDs and 2 buttons on the front too.

Walk Around the OpenScopeimageimage

The back does not have much. There are rubber standoffs in the 4 corners, which raise the height of the PCB so that it doesn't touch the surface below, and also provide a little grip so that it is less prone to sliding. In practice, the standoffs do reduce slippage, but since the board is very light, even a little tension on the USB cable is enough to lift one side of it up.


There is a SD card slot on the bottom, and a few SMDs. The marking on the board I received says that this revision is 'F', while schematics available online point to a newer 'G' revision (though schematics for earlier revisions are also available).

Overall, the board looks to be designed and manufactured neatly. Most of the components are SMD (except the connector which is a through hole) and seem to be soldered well.

OpenScope MZ Pinout Diagram



The main connector is a 15x2. The colors of the wires are different to make them easier to identify. Plugging in the connector the first time took a little effort because the pins on the PCB were bent dow

n, which didn't leave enough space for the connector to slide in between the pins and the PCB.


To get started, simply plug in a micro USB cable. The board takes a few seconds to initialize (it took more time when I plugged it in for the very first time, if I recall correctly, Digilent's documentation says that this is because it initializes the driver).



Product Overview & Documentation:


Digilent has published a couple of videos which detail the process of connecting, setting up and using the functions of the board.


The OpenScope MZ was on Kickstarter. That page is an interesting read because it contains details of the iterations that the device went through.

Digilent also published a Learning Edition Workbook, which goes through the basics of setting up the OpenScope and using its functions.


Here's an interesting 3 hour long video (of which I've watched only half) going through the design of the OpenScope:


The presentation slides can be found at


OpenScope MZ Reference Manual (PDF - Digilent)

OpenScope MZ firmware on Digilent's GitHub


The documentation (schematics) and the Microchip Masters video (+slides) are very interesting because they go over the design decisions, and more importantly, serve as a bridge between what I learnt in my analog electronics engineering course and how instrumentation is implemented in practice.

OpenScope MZ Hardware Block Diagram (Click to enlarge)

*I've used images and documentation from here as a reference*


Installation & Setup:


First install the Digilent Agent (which is free).


Digilent Agent runs in the background. Right-click on the logo and select "Launch WaveForms Live".


Waveforms Live will automatically open in a browser window:

                                         User Interface communications setupimage

Architecture wise, the OpenScope was designed with both: serial & wireless connections in mind. The command parser is common, which allows 2 sources (Waveforms Live browser page & app) to be used simultaneously.


It gives you a couple of options: You can connect wirelessly (though not the first time since you need to set up the board and enter the network credentials), simulate a scope, or connect via the Digilent Agent.


It automatically notified me to update the firmware



It took around 15 seconds to download & flash the new firmware:


After that, you can enter your WiFi password to allow it to connect wirelessly (which are then stored in the Flash)


The first time it runs, it needs to be calibrated. The calibration process involves connecting 2 sets of wires together. It automatically generates a couple of outputs, which it reads back and uses to calculate the calibration values.

These values are also stored in the flash.


Software, Features & Testing:


WaveForms Live Android App:


Digilent has released a Waveforms Live app for Android, which is free and can be downloaded from the Google Play Store. The UI is identical to the UI of Waveforms Live that is available on a desktop (through the browser).

I'm not sure whether the app is simply a wrapper (which would be easier to implement), or a completely native application. The main reasoning for developing the app was that they manage to use more of space on the display, some of which would have been taken up by the browser.


The Play store states that the last date that this was updated was on the 1st of June, 2017 (Version 1.0.2).


imageimage image

The features are identical to the desktop version (except for the missing Bode plot function).


One thing to remember is that the OpenScope needs to be added to a WiFi network before it can be accessed, which needs to be done using a USB cable (i.e. on a computer via the USB-UART interface).

If you do plan on using the OpenScope with your phone somewhere outside, first configure it to connect to your phone's hotspot.

The UI does seem to indicate that it can store credentials to multiple WiFi networks, but when I added more than 3, all of them got wiped out.


When it connects to the WiFi network, connect to it using its IP address. The onboard LEDs blink to indicate the IP address: "When connected to a Wifi network the 3 user LEDs display the last octet of the OpenScope MZ's IP address by blinking the number of times corresponding to that digit of the last octet in decimal. For example an OpenScope MZ with an IP address ending in '123' would blink LD1 once, LD2 twice and LD3 three times."


Portrait mode gives you better access to the instrument panel:



Landscape mode is better for viewing:



The Android app supports pinch to zoom, which can be used to change the time base.


The OpenScope MZ supports simultaneous connections to the Android app and the desktop web page. It is a little buggy, but works most of the time. The control is independent: for example if you change a setting on the desktop and acquire data, the mobile screen will not update automatically.



Waveforms Live in a browser:


Waveforms Live can be accessed from a browser. The OpenScope cannot be used (as per documentation) with Waveforms 2015. It is not (yet) supported by Sigrok or PulseView either.



Instrument Panel:


The Instrument panel occupies the right side of the browser UI. The buttons on the top are the typical trigger buttons, and an option to control the time base lies below that (which can also be adjusted using the scroll wheel on a mouse).




The OpenScope has a 2 channel, 6.25M/s (2 Mhz (-3db) bandwidth & 12 bit resolution) oscilloscope. The voltage range supported is +/- 20V, with protection upto 40V and the input impedance is 1MΩ, with a maximum sample depth of 32640 samples.

The ADCs of the PIC32MZ are used for sampling, and if I recall correctly, 2 channels are interleaved per channel to increase the sampling rate. On the input side, a combination of an analog switch & op amp are used to provide variable gain. A buffered precision voltage reference is used to provide an accurate & stable voltage reference.


The trigger sources are the 2 analog oscilloscope channels, and the logic analyzer. For the oscilloscope channels, a voltage level can be selected, with the option of a rising, falling or crossing edge. To continuously stream data from it (live update like a bench oscilloscope), simply set the trigger to OFF and click RUN.

         Analog Input on the OpenScope MZ 3V reference for the Oscilloscopeimage

To control the timebase (time-zoom), simply use the mouse scroller.

The OpenScope will automatically adjust the sampling rate and the number of samples it takes to obtain the highest resolution possible. i.e. the further you zoom in (each grid is measured in microseconds), the sampling rate will increase. As you zoom out, and each grid is in milliseconds, the sampling rate will decrease. The user can manually override this either by locking (forcing/setting) the sampling rate or total samples.

One problem I noticed is that even in the 'live-stream' mode, if I zoomed out too much, and each grid was a second (for a total of 1s * 10 = 10s), the OpenScope would try to sample data for 10 seconds so that it could fill the screen. During this time, the UI would tend to seem unresponsive. So if you zoom out too far, the OpenScope will sample data for that period and will seem unresponsive during that time.


In the following screenshot, the OpenScope has been set to continuously sample and stream data:

Note how the sampling rate has increased to the maximum (6.25MS/s) to ensure the best resolution. I have also increased the Y offset and the volts/grid.


The voltage source of these samples was a 6V power adapter for a cell phone.


Same device, but I zoomed out. The sample rate has reduced to 2.324MS/s.


There's an option to set cursors for voltage & time. Here, I moved the Y cursors to try to approximate the peak ripple (which is also displayed in the math menu).

The MATH menu calculates a few parameters too: frequency, period, amplitude, Vpp, Vmax, Vmin, Vmean & VRMS.


I also set up a 555 in Astable mode: Channel 1 (yellow) is connected to the output & Channel 2 (blue) to the capacitor.



FFT (Fast Fourier Transform) is supported, allowing the OpenScope to be used as a frequency spectrum analyzer.


Zoomed in on the FFT:


Logic Analyzer/Digital IO:


Setting the trigger source to the Logic Analyzer shows these options: Rising edge, Falling edge, Rising/Falling edge or OFF. Each channel can be set independently.

User IO Pinsimage


The digital I/O ports can be switched between the logic analyzer, or simple I/O. In I/O mode, each channel can be set as input or output. One way of using this is to remotely trigger I/O lines, which could be helpful in debugging.

In terms of I/O I was hoping that it would be possible to perform burst data transfers: eg. for testing WS2812 LEDs. Enter the data, and allow the OpenScope to burst it out on a particular pin. This might be possible given that the OpenScope is programmable, though I'll need to have a closer look at it. Not too sure, but on further review it looks like this might be possible using Digilent's other instrumentation products.


The Logic Analyzer has 10 ports, and has a rate of 10MS/s. It mentions 50MS/s on the box, but if I recall correctly, the designer (in the Microchip Masters video) mentions that though the PIC32MZ is theoretically capable of 50MS/s, using that rate would stall all other transfers: including the UART, which is used to get data out, which is why it has been limited to 10M/s.

What's most disappointing is that there is no inbuilt protocol decoder (though Digilent clearly states this on the website). There was a request for this feature on the forum, and a feature request was opened on GitHub, but there doesn't seem to be any update.

While the logic analyzer capability is better than nothing, the absence of a protocol decoder makes it difficult to use.


I hooked up the OpenScope MZ to the I/O lines of a Nokia 5110 LCD (84*48 pixels, monochrome), which uses a Philips PCD8544 controller (SPI):



This thread on the Digilent forum has details on how to export data from Waveforms Live to Sigrok:

Sam Kristoff exported the channel data from Waveforms Live to a CSV, deleted the header columns and imported the CSV to Sigrok:




Imported to Sigrok:


I tried the same, and all I got was this:


I used Kristoff's formatted CSV file (which worked for him), and the import settings he suggested. The Sigrok SPI decoder remains blank for some reason (do let me know if any of you figure it out).


I reinstalled PulseView and this was the result:



One packet got decoded and the rest remained blank. This is definitely not a OpenScope/Waveforms Live issue since I'm using the same CSV file that Kristoff exported (and which worked for him).


EDIT: I reported the issue here, and after doing some checking on their own, a Sigrok dev filed a bug. They suggested using a non-zero sample rate when importing the CSV for now, which works fine:




Sigrok/Pulseview do not support the OpenScope, and the developers are not currently working on adding support in the near future.


Personally, I think that Digilent should work on adding Sigrok support as soon as possible. Sigrok is much easier to use than Waveforms Live because it has protocol decoders (although it misses out on a couple of features). While Digilent could add protocol decoder support to Waveforms Live, spending that time on adding Sigrok support would be a much better investment: Sigrok is regularly updated with tons of protocol decoders and even decodes data from common ICs. Allowing Sigrok to interface with the OpenScope (even if it's just for the Logic Analyzer), would be great: once the hardware/firmware/drivers are added to Sigrok, Sigrok will basically take care of all software features.


The PIC32MZ is a 3.3V IC, which means that the OpenScope cannot be used to interface with 5V TTL parts like the Arduino Uno. I'm not sure whether it is 5V tolerant (I seem to remember a discussion about this in the Microchip Masters video).

The OpenScope targets makers on a budget (who commonly use 5V parts) so this could be a deal breaker.


The PIC32MZ2048EFG124 (datasheet) has +5V tolerant pins. I cross referenced the schematic with the pins on the datasheet, and the logic inputs seem to be +5V tolerant. I have used it with a Arduino Uno (+5V TTL - Atmega328p), and it continues to work fine - no magic blue smoke; yet. Don't take my word for it: I will not be responsible for any damage. The Magic Blue Smoke Refilling Kit has been discontinued, so there is no way of reviving any fried electronics.


Bode Plot:

    I tried this out using a RC network. You get the option to set the start & stop frequencies, step size and sweep type. The frequency settings are buggy: they tend to change on their own, and at times the OpenScope will not perform the sweep in the range that was set.

There is an option to export the result as a PNG or CSV.


The time to generate the plot depends on the frequency range and the step size.


Second order RC low pass filter:



Waveform Generator:


The Waveform Generator can be used to generate Sine, Triangular, Ramp, Square or DC outputs with a 10 bit resolution & 1 Mhz (max) frequency. The output is adjustable to 3V pk-pk with a DC voltage offset of 1.5V

Schematics ( and the Microchip Masters talk) show that a R2R ladder is used as a DAC. A SPI DAC was used in earlier pre-release versions, but was replaced with an opamp & R2R ladder to reduce the cost.

One ADC channel is used to sample the output from the waveform generator, which forms a closed loop error compensation system.

image                   Function Generator schematic Feedback circuit for the Function Generator

The waveform generator is easy to use: just set the options and activate it. One minor issue is that everytime any parameter needs to be changed, the waveform generator needs to be turned off first.


In the following image, the Waveform generator has been set to generate a 1kHz 3Vp-p sine wave with a 1V offset. The output is fed back into the OpenScope through channel 1 (yellow), which is detecting a 999.9Hz 3.018Vpp sine wave with a 1.026V offset.




I originally planned to use a IC 741 op amp an a non-inverting amplifier, but I connected the IC wrong and fried it.   image

I went ahead used a simple resistive divider: the waveform generator output is connected to channel 1 (yellow), and to channel 2 via the resistive divider(blue).                














Power Supply:


DC output DC output feedback

The OpenScope MZ can be powered only from USB, and this severely limits the power it can spare. Both the outputs can be independently configured to output 0 to 4V, and can source a maximum of 50mA. While this doesn't put it in the league of a typical bench-top power supply, it is good enough for powered small circuits: a couple of ICs or logic gates (CMOS, not TTL!). 50mA is too little for a ESP8266 (which draws a lot more than that when transmitting), but this should be adequate for powering up a low power ARM or MSP430 core.


Data Logger (BETA):


Data from both the analog channels can be streamed to the browser. I tried exporting the data, but it didn't seem to work (it wasn't working for the oscilloscope/ logic analyzer too for that session - resetting the devices usually fixes it).

The user can set sample rate and the number of samples, or let it stream continuously.


Firmware & Programming:


The Instrumentation protocol format (JSON) is available, and the OpenScope MZ can be programmed using the Arduino IDE or Microchip's MPLAB-X IDE.

I originally planned on testing this out, but realised that this will need a little more research before I tinker with it.


What Digilent needs to do:


  • Add a protocol decoder to Waveforms Live: Manually counting bits is not fun and takes too long. Support for common protocols like SPI, I2C and UART (serial) is a bare minimum.
  • Add Sigrok support (even if it's just for the logic analyzer): While adding the protocol decoder to Waveforms Live is an option, I feel that Sigrok support will be even better. As I mentioned earlier: Sigrok is well supported by the community and is regularly updated with higher level decoders (for the actual data formats of certain ICs). If Digilent could figure out the firmware/driver/hardware side of things and get the OpenScope to speak Sigrok, the OpenScope will have access to every decoder that Sigrok has (something which will be difficult to add to Waveforms Live). I don't know what the plan for Waveforms Live is in the future, but Sigrok support would definitely help (because of the protocol decoder updates),
  • The software is buggy: it tends to stop responding occasionally, but it's nothing that a reboot (of the page & the OpenScope itself) won't fix. While it is inconvenient, it's not that big a dealbreaker. While I wouldn't place this very high up on the list of things to include in the next few updates, a stability oriented update would be great.




The OpenScope does what it was advertised to do: Digilent managed to ship a device with an oscilloscope, logic analyzer, function generator, data logger & (tiny) power supply for less than $100. The specifications might not seem very impressive, but do remember that this is targeted towards hobbyists: the product is meant to make the tools a hobbyist needs accessible for a low price. The software will need a little more work till it's stable, but in its current state, its stable enough to be used barring the occasional hiccup. The OpenScope is packed with software features, but misses one of the most important: a decoder for the logic analyzer.

There aren't many competing products: Saleae discontinued the Logic 4 (which had slightly better specifications, but missed out on a few features), and most low cost devices are simply logic analyzers.


The OpenScope MZ includes a oscilloscope, logic analyzer and function generator with specifications that are certainly adequate for a hobbyist and at $89, it is the best option for hobbyists, students & amateurs that are getting into electronics.