|Product Performed to Expectations:||10|
|Specifications were sufficient to design with:||8|
|Demo Software was of good quality:||10|
|Product was easy to use:||5|
|Support materials were available:||6|
|The price to performance ratio was good:||10|
|TotalScore:||49 / 60|
[UPDATE: look below for this marker for the places I extended after the first review]
When you work on projects with digital sensors, or which use digital logic bigger than just a few logic gates, you run quite fast into the "I need to look at the signals to see what happens" situation. Or you just that new-fangled sensor with an incomplete data sheet and need to check what it really is doing. You might even already use a BusPirate to experiment, but need higher sample rates and a better GUI interface. Or you have a oscilloscope with serial decoding and trigger, but need more channels. This the moment you want to buy a real logic analyzer.
You use it to look at high-speed signals, signal buses more than just a couple of bits wide, to decode serial protocols on-the-fly and to trigger data acquisition on combinations of all of them. You might think of buying a cheap USB logic analyzer off ebay, get a Salae Logic or even a scope that supports serial bus decoding (such as the Keysight DSO 1000X series reviewed here recently). But Digilents Digital Discovery stands out because both its software and its hardware are much more capable than all of them.
When you open the package you reveal a nice and sturdy plastic case. This allows you to permanently use it later on for storing the tool, and it won't break like so many cardboard boxes do after a while. I really like that, especially since the box is large enough to store additional cables and SMD grabbers too. The Digital Discovery is quite small, so it won't take up too much space on your bench. And since its in a plastic enclosure you don't need to fear to short anything out while working. To get an impression, see the unboxing blog entry from Digilent itself.
Digilent only added the bare essentials - an USB cable and two probe cables (one for the 24-bit connector and one for the 8-bit one). There is no cable for the second 8-bit port, which means to use the full capabilities you need to purchase one by yourself. There are also no SMD grabbers, which means you are quite limited where you can use the DDD out-of-the-box. So I bought some grabbers by myself, and looked at how you can connect the logic analyzer to your circuit under test:
In the end I mostly went with the longer pin headers for breadbord work, and used the more expensive (but slimmer) SMD grabbers for working with other boards (e.g. the EFM32 board I used for working with the SHT21).
The high-speed probes are similar to the provided normal wires, but since they are used for higher frequencies you should not use SMD grabbers with them. Instead, its best to provide dedicated test points with pin headers on your circuit.
Speaking of these probes, two nitpicks: the high-speed adapter supports 24 pins, but it only comes with 16 of them. And currently you cannot by additional wires (though they should be available soon). The Waveforms2015 software also allows you to select 400 and 800MHz sample speed for port 24 and upwards, but there is no high-speed adapter for these ports. So I'm wondering what I'm supposed to do then...
To use the Digital Discovery you need the Waveforms2015 software (don't use the older Waveforms software, it will not support the Digital Discovery). One reason for me to do this review is that Digilent properly supports Linux - and I was not disappointed. Installation is easy since it comes as DEB or RPM package (even for ARM platforms such as the RaspBerry Pi). One suggestion though: for Debian-based systems, provide a PPA so it gets updated automatically. I never had it crash on me, so it seems quite stable. I found one bug (when I was using the pattern generator together with the logic analyzer) which hopefully gets resolved in the next update.
I made a screen cast to give an overview of all the functionality, and the basic usage:
WF15 is build in a modular way, since it supports also the Analog Discovery tools. Digilent made quite some effort to reduce the need to switch between the different tabs representing the modules, by making use of the tab header itself. You can use it e.g. to start acquisition in the logic analyzer, or toggle the power supplies.
I was originally confused by the actual functionality of the Supplies module. When shooting the video I thought that, apart from configuring the power supplies, it allows you to also turn on and off the individual GPIOs. In reality this screen allows to configure the pull-up and -down resistors for the inputs (and it even says so...). I don't know why this happens, but maybe the buttons / selection can be changed e.g. from Down to Pull-Down to make this more clear. In a similar way I find the way the Static IO module works not really intuitive. But since I did not use it that often (read: never, apart for the video) it does not matter that much.
[UPDATE: I just found out that you can add labels to the input / output ports. This makes it very handy to test a circuit. Instead of adding buttons and LEDs you just connect the logic analyzer, and press the buttons there]
One feature I really wish for is to have certain modules multiple times. Especially the Protocol module could use this. Right now you can only work with one single configuration, and cannot look at e.g. UART and I2C bus at the same time.
Using a PC as logic analyzer feels different from using an oscilloscope. There are much better options to structure and design the UI, since the interface elements are not limited to knobs and buttons. (I have not used a touch-based scope such as the new Rohde & Schwarz - they are surely different). Using the logic analyzer with all its options feels simpler and faster than with a scope, and the bigger screen surely is a plus. On the other hand, its needs real estate on the work bench, and a scope feels more like a 'real' laboratory equipment.
This is the most important tool in the box. You can use it as the swiss-army-knife to analyze anything thats happening in a digital circuit 8as long as you can access the signals). Thats why I looked at it first. On a breadboard I build a demo counter circuit, using a LTC6990 VCO and then a CD4520 (two 4-bit counters) and a CD4017 (10-stage Johnson counter):
I cascaded the two counters of the CD4520 as ripple counters, which means there will be a glitch when the first one overflows. Using this demo circuit, I made another screen cast using the Logic module:
I would like to see better default values. From my experiences its more usual to use the record mode than to use a live view on your signal. In digital circuits you have less repetitive signals (when compared to analyzing analog signals with an oscilloscope), and due to their complexity they take longer to understand. Thats why you don't want them to change on the screen when looking at them, and so you use single-shot recording. And when doing so, you also want to have a larger buffer size (together with a sample rate) so you can zoom into interesting sections.
Something I did not really understand is the buffer handling together with how tabs work. Sure, you can define a maximum number, and can fill them up according to you trigger settings. But when I change the currently showed buffer, and record again, all buffers with a higher number are discarded? One can also open multiple tabs, but then you cannot change whats showed in them (selecting another buffer always changes the first tab). Tabs also cannot have different zoom levels (at least this did not work every time I tried), so this all seems confusing. I ended up using only one buffer, and never used tabs. But I can see the value in this feature - it can allow you to see multiple recordings and to compare them, or even look at different parts of the same acquisition.
Buffers are similar to the segmented memory feature on oscilloscopes which also allow to store multiple aquisitions. But storing them on the PC allows to do much more with them (when the UI inconsistencies are solved) such as having different views of the same buffer. And using a mouse means you can navigate more easily.
Something that Digilent does not mention prominently is the large acquisition memory. The Digital Discovery comes with a 2GBit DDR3 memory chip, which means that even with 32bit it can store up to 64M samples. The software seems to limit that to a little bit more than 32M samples, but this can allow you to sample quite long running sequences of data. There are scopes with such big sample memory, but they tend to be expensive.
A recent addition (added only in the last version of the software) is the sync mode. This mode allows to use an external sample clock. I used this feature, together with the pattern generator, for a somewhat unusual goal: reading data from a ROM.
The pattern generator is a tool to generate inputs for your signal under test. You might for example have built a decoder circuit which, based on certain input signal combinations, activates certain output signals. Then you can just use the pattern generator to run the circuit through all possible input variations, and record the outputs. Or you use it to generate a specific signal sequence (simulating e.g. button preses) to see what your circuit does then. I have yet to find out how to configure Waveforms2015 so the start of a pattern triggers the acquisition of the logic analyzer. One can configure the LA to trigger on the pattern generator, but it does not work. The reference manual mentions trigger outputs, but I cannot find anything about it in the software or the manual. Maybe its some left-over from the Analog Discovery documentation.
But I worked around that by generating a clock signal in addition to the ROM address signals and triggered on that:
That's where I found the bug mentioned above - working that way lead to the logic analyzer somehow missing the first 8 clocks so they appeared at the end. Maybe it can be solved by making the connection between the generated clock and the sync input signal externally.
But I still think this shows how mighty this tool is. Being able to feed defined signals into your circuit and then react and trigger on them can be a very valuable under the right circumstances.
To show how this can be used, I connected a SHT21 temperature+humidity sensor to the Digital Discovery and explored it interactively:
I find especially the scripting very useful, although I would like to see the Sensor mode being more powerful (e.g. allowing printing the results of the loop).
If your serial device is already part of a more complex circuit, you need to listen to the serial bus to see whats happening. To do this you have two options: the logic analyzer and the protocol tool:
So whatever your use case is, the Digital Discovery has you covered. Its noteworthy that using the Spy mode of the Protocol module makes you independent of the sample memory depth - it is running continuously. This is even better than using segmented memory on an oscilloscope since there are no time constraints.
Although I already showed a ton of features and capabilities, I skipped quite a lot.
The pattern generator can do much more than just generating counters - e.g. pulses and user-defined patterns. is a separate scripting module where you can control all the modules and e.g. do complex interaction sequences between pattern generator and logic analyzer.
The logic analyzer has much more complex trigger sequences than I showed (e.g. counting edges), and the protocol triggers can also be much more complex (even listening for data). So probably I could make this review twice as long to show everything. Go ahead and download the software - it comes with a demo mode where you explore it.
I also did not explore the ability to define custom protocol decoders using the script engine. This could be really powerful - but I hope that Digilent will add more protocols natively in the future (I think custom protocols cannot be used for triggering easily)
Is the Digital Discovery worth its money? Surely it is - there is no other Logic Analyzer I'm aware of that comes with as many features and capabilities. The really big sample memory means you can have large record sizes at high sample frequencies and do not need to rely on transferring it to the PC in real time. The extensive triggering capabilities of the logic analyzer (esp. with serial signals) making working in complex circuits a breeze.
Comparison with an oscilloscope depends on your use case. When you are looking for logical software problems, the logic analyzer is the tool you need. When you are hunting for signal integrity issues, you probably need a scope since it allows you to see the real waveforms of the signal lines. The logic analyzer will only show digital values, and noise or other disturbances will not show up. But a scope with serial decoder and triggering can still be a valuable tool until you work with more complex circuits.
So even if you need just a logic analyzer its a must-have tool. And the additional capability such as the protocol tool, the pattern generator and the scripting capabilities make it even more valuable and versatile.
What I did not really like is that the documentation is currently lacking. Most of the Waveforms2015 help content is written for just the Analog Discovery. It is not yet updated to the current software version, and in quite some places it is either not adapted to what is shown with the Digital Discovery, or only explains very basic things (such as enumerating the GUI elements instead of explaining what the actually do). I would like to see a more extensive documentation which also explains the concepts and how to really use the tools.
Digilent should also think of providing more accessories out-of-the-box. Not being able to use all the ports was a big surprise, and not having SMD grabbers in the box too. I can understand that they are separate for the Analog Discovery, but for the Digital Discovery one will always need them. So plan to spend some more money one this stuff - but even then the Digital Discovery is still really good value for the money.