Archive for January, 2015
Saleae Pro 8 Logic Analyzer Review
When Saleae’s first USB-based logic analyzer burst onto the electronics scene in 2008, it was praised for its ease of use and low cost. For 2014 the company revamped its product line, replacing all its existing models with four new products. Last month the nice folks at Saleae were kind enough to send me a new Logic Pro 8 for review, so I recently had a chance to test the hardware first-hand. In brief, it’s well-polished and good at what it does, though I wish it did more.
But first – what’s a logic analyzer? Much like an oscilloscope, an LA is a tool for examining electrical waveforms in a running circuit – the so-called “device under test” or DUT. But where an oscilloscope is used to view analog waveforms with a continuously varying voltage, a logic analyzer displays digital waveforms whose value is either 0 or 1. Most oscilloscopes have two channels, but typical LAs have at least eight channels, and sometimes 40 or more. An LA also includes powerful software for triggering, decoding, and dissecting the collected data. If you do any kind of digital electronics work, a logic analyzer is indispensable.
In the old days, an LA was a stand-alone tool, like my ancient HP 1631D. Modern LAs such as Saleae’s are more likely to be PC peripherals consisting only of the signal acquisition hardware, with all the display and analysis work handled by a software program on the PC.
Specs
The Logic Pro 8 is the second from the top in Saleae’s product lineup, which also includes the Logic 4, Logic 8, and Logic Pro 16. Priced at $399, it’s an 8 channel logic analyzer with a max sampling rate of 500 Megasamples/sec, though when using all 8 channels the max sampling rate is reduced to 100 MS/sec. The Logic Pro 8 uses USB 3.0 to push all that sample data to the PC at high speed.
Saleae recommends a minimum of 4x oversampling when capturing digital signals, so 100 MS/sec is enough to reliably capture data from digital systems with signal speeds up to 25 MHz. With four or fewer channels in use, the full sampling rate of 500 MS/sec is possible, allowing capture of digital signals up to 125 MHz. It’s important to remember that these are signal speeds, not CPU core speeds. The Beaglebone Black may have a 1 GHz processor, but its GPIO signals will normally be changing state at a few tens of megahertz at most. I’ve personally never built a digital system with external signal speeds above 5 MHz. 100 MS/sec will be more than enough for most hobbyist purposes.
Unique among the competition, all the new Saleae models except the Logic 4 feature input channels with dual digital/analog capability. Each channel can be configured as a digital input, an analog input, or both simultaneously. The analog sample rate is limited to 50 MS/sec with up to three channels, with a bandwidth of only 5 MHz, so it’s not going to replace a bench oscilloscope. But as a quick sanity check for what’s happening in the analog domain for low-speed signals, it’s a nice addition.
Unlike some other logic analyzers that feature external clock and trigger inputs, 8 channels on the Logic Pro 8 means 8 total inputs. There’s no support for external clocking, which is a disappointment. None of the current Saleae LA models have external clock inputs, and they’re the only logic analyzers on the market I’m aware of that lack this feature. I hope to see an external clock and trigger added to Saleae’s future products.
The Pro 8 supports logic levels between 1.2 V and 5.5 V for digital signals, with user-selectable threshold voltages. In analog mode, the input voltage range is -10 V to +10V. Analog signals are captured at 12-bit resolution.
Sample Streaming
All of Saleae’s logic analyzers are streaming samplers, an important detail that affects how they perform. A streaming sampler is essentially the opposite of the more familiar buffered sampler design. Buffered logic analyzers contain dedicated high-speed memory for storage of signal data. Typically the memory is enough to hold a few thousand sample points, and when it’s full, signal acquisition stops. The acquired data is then displayed and analyzed as a post process.
In contrast, a streaming sampler has little or no built-in memory. Sample data is streamed over USB in real-time to the connected PC, where it’s stored in RAM or on the hard disk. This enables huge signal captures containing millions of samples, much larger than what’s possible with a buffered sampler. But when using many channels and high sample rates, streaming can overwhelm the PC’s available USB bandwidth, resulting in failures. Faster PCs and a USB 3.0 connection both help. This design explains why streaming samplers generally don’t have more than 8 or 16 channels – there just isn’t enough USB bandwidth to stream more channels in real-time.
Unboxing and Setup
The Logic Pro 8 seems impossibly small – just a two inch square aluminum puck. It comes packed with a USB cable and two flying lead wiring harnesses, containing eight signal wires and eight ground wires. The wires are terminated with a female 0.1 inch connector, which can be plugged directly onto standard male headers, or connected to one of the 16 included IC test hooks. The whole setup packs away into a cushioned nylon carrying case. It’s all quite nice, and the value of the included accessories is something to consider when comparing the Logic Pro 8 to its competition.
The Logic is so small and light, it can get lost on a desk, or pulled off the desk by the weight of the cables attached to it. This is one instance where Saleae may have too much of a good thing, and a bit of extra size and weight might be welcome.
I was slightly confused by all those ground wires at first. According to Saleae, it’s only necessary to connect one of the ground wires for most applications, but for best results with analog sampling all the ground wires should be connected.
There’s no software CD included with the Logic Pro 8, and only a small quick start card that advises readers to visit www.saleae.com for instructions and software. No matter, anything they included in the box would likely be out of date by the time it was opened anyway.
The client software runs on Windows, Mac OS X, or Linux, and downloading was easy, with no registration or other annoying hoops to jump through. I was surprised by this pop-up, though:
You must use a beta version of the client software if you have one of the current Logic models, including the Logic Pro 8. The release/stable version of the client software only supports the older, discontinued models. I’m probably reading too much into the word “beta”, and Google has conditioned us all to be comfortable with software in perpetual beta, but this strikes me as a little strange. Supplying unfinished beta software to customers who’ve paid up to $499 for Saleae’s latest and greatest hardware risks annoying those customers and spoiling goodwill. Fortunately, Saleae’s customers seem to be an understanding bunch.
Once downloaded, the client installs a Saleae USB driver as well as the actual client application. There aren’t any configuration choices to make, so the whole installation process is quick and painless. Within a few minutes of opening the box and downloading the software, everything is set up and ready to use.
Working with the Logic
For basic setups, capturing and analyzing data with the Logic Pro 8 is simple. Just connect the ground and signal wires to the device under test, hit the friendly green “start” button, and in a few moments you’ll have a screen full of waveform data. Digital and analog data are displayed on the same screen, with the same time scale. From here you can zoom in and out of the captured waveforms, or pan left and right to view different time periods. The zooming and panning is all very smooth and quick.
Viewing a group of assorted waveforms is all well and good, but the real strength of a logic analyzer comes from the “analyze” part of its name. The Saleae client software includes several built in protocol analyzers that can extract high-level data from raw waveforms. For example, the async serial protocol analyzer can reconstruct a serial byte stream from raw RS-232 data on a channel. Tell the analyzer which channel to examine, and the bit rate and parity settings, and it does the rest. The decoded serial data is displayed as an annotation overlay on the raw waveform, and also in a table view. The current version of the software contains over 20 protocol analyzers, including async serial, I2C, SPI, JTAG, MIDI, simple parallel, and many others.
Digital and analog sample rates can be adjusted independently, and the total capture length is also selectable. Unused channels can be turned off. In general, the fewer channels that are used, the higher the sampling rate that the Logic Pro 8 can achieve.
For the basic use case of grabbing some signals and eyeballing what’s happening, the Logic Pro 8 is excellent. It’s amazing how smooth and easy the whole process is, especially compared to other logic analyzers that might have similar specs. Navigating through the waveforms is a pleasure, and helpful measurement cursors pop up wherever you place the mouse pointer. It’s really a pleasure to use.
One missing feature I’d really like to see is a state mode, or state table view. With a complex system, I often find it’s easier to view things as a list of consecutive states, with one state per line, rather than as a collection of individual waveforms plotted against a time axis. The Saleae software does have a list panel showing the protocol analyzer results, but there’s not much functionality to it. When I’ve worked with other logic analyzers in the past, I spent almost all my time in the state view, and almost never looked at the waveform time view. Saleae needs to expand the existing list panel into a full-fledged data view screen, with functionality similar to the waveform view. Here’s what state view looks like on my old HP 1631D:
One minor gripe is the lack of a continuous capture mode. When you press the start button, the client software will capture one buffer’s worth of data, display it, and then stop. Sometimes it’s helpful to use a logic analyzer to do continuous capturing like an oscilloscope, many times per second, constantly updating the results on screen. If you’re capturing the same event over and over, this makes it easy to see if any event is different from the others, or if there’s timing jitter. Unfortunately the Saleae software doesn’t support continuous capturing.
I did experience some software problems during my testing, and the client lived up to its “beta” label by crashing several times. Most of these only required relaunching the client software, and submitting a crash report to Saleae. But in one instance, a crash somehow left my USB mouse and keyboard in an unresponsive state. Even though the PC was still running, I was forced to do a hard reset of my PC.
Triggers
What about more complex signal capture scenarios, requiring a trigger? Pressing a button to begin an immediate signal capture is OK if you’re confident the event of interest will be somewhere in the captured data – either because it happens repeatedly, or you can force it to happen when desired. But many times it’s necessary to define a custom trigger to begin signal capture only when a particular event happens – say a specific value appears on a bus, or a rare error condition occurs.
I was disappointed to discover the Saleae software only supports fairly rudimentary triggering. Similar to an oscilloscope, it can trigger on a rising or falling edge on one channel, optionally requiring a specific hi/low level on other channels. That’s insufficient for capturing complex or rare events. Most other logic analyzers I’ve seen support a large array of different triggering options, like triggering when a bus or serial value is or isn’t present, or is in a particular range, or a set of conditions happens N times consecutively, or logical and sequential combinations of multiple individual trigger clauses. For example, here are the trigger setup options for the Intronix LA1034 LogicPort, a Saleae competitor:
The lack of triggering options may be a result of Saleae’s streaming sampler design. The acquisition hardware is essentially just a high speed data collection port, and it may lack the necessary smarts to check for trigger conditions in real time. From reading Saleae’s support forums, it appears that triggering is actually performed in software on the PC, rather than in hardware. I would have thought that would make it easy to support complex triggering options, but apparently the software isn’t able to compute complex triggers in real time either. In fact, even simple triggers have major problems on the new Saleae hardware. According to the support forums, if any analog channels are in use, the software can’t keep up with incoming sample data while also checking for a trigger condition. It falls further and further behind, and the client’s memory use balloons until it crashes. The Saleae engineering team is working on a fix, but for now their advice is to turn off analog channels when using triggers.
The absence of robust triggering options might not be too bad if it were possible to search the acquired data for a complex trigger-type event after the fact. Instead of triggering on an error condition, you could capture 10 million sample points, and then search for the error condition in the captured data. The Saleae client software does have a basic search capability, so for example you can look for all instances where the value 0xC8 appeared on the serial port. But there’s no capability to search for multi-byte sequences, or combinations or sequences of conditions, or any of the complex trigger conditions mentioned earlier. In a pinch, the captured data can be exported to Excel, where other tools can be used to search, but that’s not a great solution if it’s something you’ll need to do regularly.
External Clocks
Earlier I mentioned that the Saleae LAs don’t have external clock inputs. Why should you care about external clocks? The first reason is speed. When using an external clock (the DUT’s own clock), 4x oversampling isn’t necessary, and it’s possible to capture digital signals all the way up to the LA’s max sample rate. A 100 MS/sec logic analyzer using an external clock can capture digital signals at speeds up to 100 MHz. Exactly one sample is taken per clock cycle, on the clock edge. Without an external clock, 4x oversampling is required, and 75% of the LA’s potential performance is effectively thrown away. In practice you might be able to get away with 2x oversampling and only pay a 50% penalty, but the cost is still too high.
The second reason that external clocks are important is correctness of the captured data. With external clocking, samples are taken exactly at the clock edge, and the values captured are those that were seen by synchronous devices at the clock edge. Without an external clock, samples will be taken some unpredictable amount of time before and after the clock edge, and the true value at the clock edge can’t be known.
Consider a system with two digital signals, A and B, and a separate clock signal. Imagine that the Logic Pro 8 is sampling these three signals four times per clock period, for 4x oversampling, at intervals shown by the green vertical lines. A has a transition shortly before the second rising clock edge, and B has a transition shortly after the edge. But when sampled by Logic and displayed in software, both A and B will appear to transition coincident with the clock edge. What were the actual values of A and B at the clock edge? We can’t tell.
To be fair, the speed penalty described here may not be an issue in most cases. The Logic is fast enough, and the digital signals are slow enough, that a 75% speed penalty isn’t fatal. Likewise the correctness problem may not be an issue in most cases either, as long as signals don’t change values too close to a clock edge, where “too close” means within one sample period. The average person using the Logic Pro 8 to debug a low-speed I2C communication stream won’t have any problems. But when pushing to higher speeds with tighter timing margins, the lack of an external clock is a real handicap.
Analog
To test the Logic Pro 8’s analog input capability, I used a microcontroller to generate a square wave at a few different frequencies, and then viewed it as both a digital and an analog signal. The Logic Pro 8 samples analog inputs at 50 MS/sec, with a 5 MHz analog bandwidth. When examining a 2.66 MHz digital square wave as an analog signal, there was a pronounced ringing and smoothing of the displayed analog waveform, and it didn’t look much like a square wave anymore. At 4 MHz, the analog waveform just looked like a sine wave.
I had initially assumed the analog inputs would be most useful for checking the signal integrity of digital signals – looking for overshoot, noise, or glitches that might cause problems. But given the very low bandwidth of the analog inputs, it’s just not possible to see useful analog domain details, even with low-speed digital signals. So scratch that idea.
What are the analog inputs good for, then? If you’re working on an audio-related project, the analog inputs are plenty fast enough to handle audio frequency analog signals. Or if you’re interfacing with an analog sensor, such as a light or force sensor or a capacitive touch sensor, the analog inputs will come in handy too. For the vast majority of projects, though, I suspect the analog inputs will go unused.
Plugins and Scripting
The Saleae client software offers two ways to extend its functionality: protocol analyzer plugins, and client scripting. Plugins are implemented as C++ shared libraries, and enable the client to be extended to support new protocols, or to add new options to existing protocols. Need decoding of NRZI serial data from a floppy disk? Add it yourself! This capability looks like it’s still a work in progress, and the support page lists a number of incompatibilities between analyzer SDK versions and client versions, and custom analyzers currently aren’t supported with the 64-bit Windows client.
The scripting API enables users to programmatically configure the client software, and trigger captures. Just open TCP socket 10429 on the client PC, and send text commands to control the running client. Because it’s a text-based protocol using a standard socket interface, the test script can be written in any language. This interface is great for using the logic analyzer as part of an automated test framework.
Saleae Logic Analyzers, Past and Present
The original 8 channel Saleae Logic was introduced in 2008, and was later followed by the Logic 16. These remained Saleae’s only LA products until 2014, when they were discontinued and replaced with four new models. The new models offer analog sampling and faster sample rates, but at higher prices than the models they replaced.
Model | Price | Availability | Channels | Analog | Sample Rate, 3 channels |
Sample Rate, all channels |
Logic | $149 | Discontinued | 8 | No | 24 MS/s | 24 MS/s |
Logic 16 | $299 | Discontinued | 16 | No | 100 MS/s | 12.5 MS/s |
Logic 4 | $99 | Available | 4 | 1 | 12 MS/s | 12 MS/s |
Logic 8 | $199 | Available | 8 | Yes | 100 MS/s | 25 MS/s |
Logic Pro 8 | $399 | Available | 8 | Yes | 500 MS/s | 100 MS/s |
Logic Pro 16 | $499 | Available | 16 | Yes | 500 MS/s | 100 MS/s |
It’s not clear to me that the current Saleae models are a better value than the discontinued ones. If you don’t care much about analog capability, than the original 8-channel Logic model at $149 was probably a better deal than the current Logic 8 at $199. For people who need more channels, the Logic Pro 16 is clearly more capable than the Logic 16 that it replaced, but at a 66% higher price it’s only a good deal if you actually need those extra capabilities. For electronics hobbyists working with relatively slow parallel bus-based systems, the old Logic 16 was ideal. The Logic Pro 8 stands out somewhat awkwardly on the price/performance scale. At twice the price of the similar Logic 8, and 80% of the price of the Logic Pro 16, it’s hard to see why anyone would choose it.
If I were Saleae, I would bring back the original Logic and Logic 16 models, selling them alongside the new models. The original models are both good logic analyzers, representing different cost vs performance tradeoffs than those offered by the current models. And I would cut the price of the Logic Pro 8 to $299, to make it more competitive with the rest of the product lineup.
Competing Models
How do the Saleae logic analyzers stack up against low-cost LA solutions from other vendors? I haven’t used any of these logic analyzers directly, but I’ve experimented with the client software for each one and dug through their documentation, to get an idea of their capabilities.
USBee SX and ZX – $169 and $495
These are 24 MS/sec 8 channel streaming samplers like the original Saleae Logic. Unlike the Saleae units, the USBee LAs feature external clock and trigger inputs in addition to the 8 data channels. The USBee client software has similar features to the Saleae client, with equally weak triggering options. The software feels fairly clunky and awkward, although it does have a state view mode. As far as I can tell, the ZX is just the SX with more powerful software. My overall impression of both models is not great.
Intronix LA1034 LogicPort – $389
This is a 500 MS/sec 34 channel buffered sampler. It can also do 200 MS/sec state mode with an external clock. Unlike the Saleae LAs, the advertised 500 MS/sec isn’t for just a few channels, but is available when using all 34 channels. The sample buffer holds up to 2K samples, or more if using sample compression. That’s still puny compared to the millions of samples you get with the Saleae units, but it makes up for it with powerful triggering options, so you can capture only the specific event of interest. The software isn’t as pretty as the Saleae client, but it’s quite useable and powerful, with a nice state view mode and many other advanced capabilities. The only thing I noticed missing is a search feature, although with only 2048 samples there’s not so much to search. I’ve never heard of Intronix before, but the LA1034 is enthusiastically recommended in a couple of electronics forums.
Open Logic Sniffer – $50
The OLS is an open source hardware product, designed by the Gadget Factory and Dangerous Prototypes, and sold by Seeed Studio. It’s a buffered sampler, configurable as a 200 MS/sec 16 channel LA with 8K sample depth, or a 100 MS/sec 32 channel LA with 4K sample depth. The price is a bit misleading, since it’s just a bare circuit board sold without a case or test leads, but a complete setup can be put together for about $75. It supports external clock sources, and has fairly powerful triggering options, but lacks a state view mode. The popular “JaWi client” software is a little funky compared to the polish of Saleae’s software, but for an open source product it’s pretty good. The Achilles’ heel of the OLS is the documentation and setup. Documentation is a confusing tangle of wikis and docs and versions, scattered across three different web sites, with redundant or conflicting information, and frequent links to obsolete information. When you do find what you’re looking for, it’s hard to know if it’s authoritative or current. But for those willing to endure a product that’s rough around the edges, the OLS may be a worthwhile option.
DS Logic – $99
Begun as a Kickstarter project in 2014, the DS Logic is a 16-channel buffered sampler with a hefty 16M sample depth. It samples digital data at rates up to 400 MS/sec, or 100 MS/sec when using all 16 channels, and also includes external clock and trigger inputs. The client software is very similar to Saleae’s – they practically cloned the UI – but it adds a few extra features like advanced trigger options and continuous capture. A $299 deluxe version adds an analog oscilloscope function with 30 MHz bandwidth, and wireless data collection capability.
Conclusions
Saleae Logic Pro 8 – Likes
- Hardware quality
- Ease of setup and use
- Huge capture sizes
- Extensible client software
Saleae Logic Pro 8 – Dislikes
- No external clock input
- Low analog input bandwidth
- No state view
- Limited trigger/search options
- No continuous triggering
So does the Saleae Logic Pro 8 get BMOW’s recommendation? Not quite. It’s a nice piece of hardware with well-polished software, but it’s missing some key logic analyzer functions, and doesn’t offer enough extras compared to cheaper LA models to justify its $399 price tag. For basic electronics hobbyist use, I would instead recommend the Saleae Logic 8 at $199, or either of the two discontinued Saleae models if you can still find them. For more complex work requiring higher speeds, more channels, or non-trivial triggers, the LA1034 LogicPort, Open Logic Sniffer, and DS Logic all offer more functionality for the same price or less, although with less polished software. I’m looking forward to Saleae’s future hardware updates and especially their future software improvements, since three of my dislikes could be addressed entirely in software. We live in interesting times, and it’s exciting to see what the tool vendors will dream up next.
Read 19 comments and join the conversation