I recently opened the mailbox to find a little device about the size of White Castle burger. It was an “Analog Discovery 2” from Digilent. It is hard to categorize exactly what it is. On the face of it, it is a USB scope and logic analyzer. But it is also a waveform generator, a DC power supply, a pattern generator, and a network analyzer.
I’ve looked at devices like this before. Some are better than others, but usually all the pieces don’t work well at the same time. That is, you can use the scope or you can use the signal generator. The ones based on microcontrollers often get worse as you add channels even. The Analog Discovery 2 is built around an FPGA which, if done right, should get around many of the problems associated with other small instrumentation devices.
I’d read good things about the Discovery 2, so I was anxious to put it through its paces. I will say it is an impressive piece of gear. There are a few things that I was less happy with, though, and I’ll try to give you a fair read on what I found both good and bad.
Up Front: The Price Tag
Let’s get one thing out of the way up front. This thing isn’t cheap ($279, list price). You have to look at it from the standpoint of value. You are getting a lot of instruments in one and — unlike some others — you can use them (mostly) at the same time. The other thing I was surprised about is that it came with the usual plug with lots of little wires ending in female header sockets. The reason this surprised me is the scope is pretty capable (see below) which means you really want a good set of probes on it. They do sell a $20 board that has BNC connectors on it (but be sure to get it at the same time as the cheapest shipping is almost $20).
I understand the unit is already pricey for this market, so adding another $20 to it (and more if you included cheap probes) might not be very attractive. But for what the scope is capable of, it really ought to include the BNCs. Looking at the Digilent web site, it appears that they are targeting the education market with this device. That means they’ve priced it high and probably offer educational users discounts, especially in quantity.
The Specs
The scope can do 100 megasamples per second and uses a 14-bit A/D. If you have the BNC connectors, you can get 30MHz. The inputs are actually differential (although the device isn’t ground isolated). The waveform generator can go to 12MHz.
Speaking of the capabilities, here’s what Digilent says about it (with a few edits):
- Two-channel USB digital oscilloscope (1MΩ, ±25V, differential, 14-bit, 100MS/s, 30MHz+ bandwidth – with the Analog Discovery BNC Adapter Board)
- Two-channel arbitrary function generator (±5V, 14-bit, 100MS/s, 12MHz+ bandwidth – with the Analog Discovery BNC Adapter Board)
- Stereo audio amplifier to drive external headphones or speakers from waveform generator
- 16-channel digital logic analyzer (3.3V CMOS and 1.8V or 5V tolerant, 100MS/s)
- 16-channel pattern generator (3.3V CMOS, 100MS/s)
- 16-channel virtual digital I/O including buttons, switches, and LEDs
- Two input/output digital trigger signals for linking multiple instruments (3.3V CMOS)
- Single channel voltmeter (AC, DC, ±25V)
- Network analyzer – Bode, Nyquist, Nichols transfer diagrams of a circuit. Range: 1Hz to 10MHz
- Spectrum Analyzer – power spectrum and spectral measurements (noise floor, SFDR, SNR, THD, etc.)
- Digital Bus Analyzers (SPI, I²C, UART, Parallel)
- Two programmable power supplies (0…+5V , 0…-5V). The maximum available output current and power depend on the Analog Discovery 2 powering choice:
- 250mW max for each supply or 500mW total when powered through USB
- 700mA max or 2.1W max for each supply when using an external wall power supply
So even they think the BNC board is important. They also left off one of the coolest features — there is a scripting language all over the place for things like custom triggers or orchestration.
I mentioned you could use most of these things at the same time. There are limits, but they are easy to understand. For example, the network analyzer uses the scope channels and the waveform generator. So if you are using the analyzer, you will tie up those resources. That makes sense.
The device is built on an FPGA so it doesn’t suffer from the problem micro-based ones do with respect to sharing timing. All the instruments work fine at the same time. They do, however, share buffer memory. When you connect, you can select from several configurations. Want a 16K buffer for the scope channels? Ok, but it will cost you memory on some of the other peripherals. It makes sense that there is a fixed amount of memory and it is nice that you can make your own choice for how to allocate, within certain parameters.
Basics
Since the device is just a box with some wires coming out of it, the software is everything. Luckily, the software is cross-platform (thank you for that). It is very busy, because there are a lot of features, so you have to explore things. Most items have balloon help (although some don’t, like the UART trigger dialog). The online help is rudimentary and not likely to help you unless you are really new to this stuff.
Still, you can figure most of it out with a little work. For example, here’s the waveform generation screen with a sine wave that has some noise at the extremes:
The main screens have lots of little buttons like the ones on the scope screen:
See the buttons at the top right? The leftmost one shows an overview of the entire buffer. The second one turns on the hot track cursor (the red automatic cursor visible on the waveform). The gear sets some options and the Y button sets the labels.
The gear button is especially annoying. Look down the right-hand side of that screen. There are three more gear buttons! Granted, those are easy because, obviously, those are options for channel 1 and 2, but in some cases, it is hard to remember exactly which gear button is hiding some obscure option you are looking for.
Digital
The digital section works about the same. You can trigger across instruments (so you can trigger the scope when an SPI value comes in the digital ports). There’s fair protocol conversion for things like UARTs and the like. The documentation on these is pretty sparse, though (or I didn’t find it) so expect to experiment. For example, my normal scopes let me invert an RS232 signal before decoding it. I didn’t find an option for that. Maybe it is smart enough to figure it out. Or maybe I could just flip the scope leads. But without trying it, you can’t tell.
In fact, I had a lot of trouble with the protocol decoding. I wrote a really simple Arduino program just to generate a test pattern:
void setup() { // put your setup code here, to run once: Serial.begin(9600); } int ct=0; void loop() { if (ct++==1000) { ct=0; Serial.write("B"); } else if (ct==1) { Serial.write("C"); } else { Serial.write("A"); } delay(1); }
My idea was to trigger on the letter B and maybe even watch it with the scope. At first, I didn’t have the delay at the end of the loop. I was sending as fast as I could. I could decode the data, but triggering didn’t work. I didn’t realize it at first, because it was in auto mode, so it would eventually trigger itself and I was perplexed that I couldn’t find the “B” in the data stream.
Once I went to normal triggering, it simply didn’t trigger at all. I theorized that it wasn’t able to figure out which bit was a start bit in the middle of a stream like that. In all fairness, my Rigol DS1154Z couldn’t figure it out either. However, a very brief delay (1 or less) allowed the Rigol to grab the data reliably and trigger. I never got it to work with the Discovery.
In all fairness, a new version of the Analog Discovery software appeared right after that and now it works, although it requires a longer delay between characters than the Rigol does. In addition, the manual trigger button at the bottom of the screen doesn’t appear to work — at least, not while waiting for a serial trigger. Turns out, I later figured out that unlike a manual trigger button on a conventional scope, this button only works if you have the trigger set to manual. You can’t override a normal trigger with the button. Seems like the button ought to be disabled if that is the case.
The UART trigger, it turns out, is just a wizard (see right) that sets a complex trigger for you. You can also trigger on a break or an idle condition. Obviously, you can’t (with this dialog) do multiple characters or anything else exotic. You might be able to do it with the actual complex trigger that it defines for you.
Here’s the actual letter B trigger. There is not much help for some of these screens, including this one. Most of it is easy to figure out, but still, it would be nice to have the balloon help, at least.
The Verdict
It may sound like I’m being harsh on the Discovery 2. I guess I am, but I am actually mostly impressed. The hardware seems to be great. The software needs some work, though. If this were a $50 product, it would be a no-brainer. If the software were open, it would get fixed and enhanced very quickly.
However, it isn’t. For the price of the unit — especially adding in the BNC connectors — you could buy a pretty nice 2-channel scope. True, the Discovery is a lot more than that, but it also has its limitations. We’ve seen cheap function generators, power supplies are a dime a dozen, and there are plenty of logic analyzer options. The network analyzer — if you need it — might be the one game changer. The ability to script everything together could be a big deal, too, if you do a lot of automated testing. It isn’t quite like having GPIB keeping a rack full of gear working together, but in some ways, it is similar and maybe even better for most of us.
On the plus side, it is compact and portable. It is everything in one package at one price. If you really bought all the things the Discovery can do, you’d spend more. But you’d also probably get a little more, too. For example, the largest buffer you can field for the scope is 16K per channel. That’s not much these days.
I was intrigued with the network analyzer and I’ll post when I’ve had some time to play with it. That is the one piece of gear you’d be hard pressed to replace at the price.
Is it good? Yes. Is it perfect? No. Should you buy one? That’s going to be a personal decision. It is too pricey for an impulse buy. It is definitely useful but only you know if it is useful enough to part with a few hundred dollars. Maybe a hackerspace or other group could put together a group buy and negotiate a better bulk price–I don’t know, but it never hurts to ask.
I’ve looked at cheap scopes before, and some of them were PC-based too. They aren’t in the same class as the Discovery 2, but they are also a fraction of the price. The closest thing I can think of to the Discovery 2 is LabTool (which I mentioned obliquely in an earlier post). It is cheaper but suffers from using a microprocessor, so it can’t do everything at once, and the more you do, the fewer samples you can take. On the other hand, it comes with BNC connectors.
Further Review
This review shared my thoughts on the Analog Discovery 2 but I didn’t actually demo it. For more on that you can see a video from Digilent that shows you a lot of the features below. There’s also a video from [Nezbrun] that compares it to the older Discovery that this unit replaces.
Filed under: Featured, reviews, tool hacks
No comments:
Post a Comment