adventures of an electronics & software guy

Logic Analyzer Software Review

I was looking into the Openbench Logic Sniffer (OLS) client, an open source logic analyzer software to be used with the Logic Sniffer from Dangerous Prototypes and Gadget Factory, so I thought it might be worthwhile to look at other alternatives, including commercial products. In the next few posts, it will probably become obvious why I’m doing this.

Since I do not have any of the hardware, I must make it clear that I am only reviewing the software that is meant to be used with their analyzers. Good logic analyzer products will usually make their software available free, with either some demo files or a means to generate random or test waveforms.

Saleae Logic 1.1.15

Zooming in and out is achieved by clicking or right-clicking in the waveform window, respectively. The zooming is animated, allowing your eyes to keep track of which portion of the waveform is being zoomed.

Random data generation (simulation). It generates random data if you click the “Start Simulation” button on the top, which has no meaningful data. However if you add a I2C analyzer, it generates some random I2C bus data, allowing you to see how a I2C capture might look like.

Analyzers. You can add analyzers for the captured signals. The analyzers require that you either select one or more channels, depending on the protocol you are trying to analyze. Once activated, the active analyzers sit in the right pane, allowing you to change channels later on, or remove the analyzer altogether, which removes the annotations. You can also export analyzer data from the right pane.

Annotations. The annotations are smart. When zooming out of the waveforms, the annotations will definitely get squashed as more data is being displayed. Logic compensates for this by displaying lesser information in the annotations.

Cursors. It has support for two cursors but the UI is a little unintuitive. In the Measurements pane on the right, you will notice T1 and T2, which are underlined, hinting that they are clickable like hyperlinks. After clicking on T1 or T2 and moving your mouse over the waveform, the clicked cursor will appear and follow your mouse. Depending on which channel your mouse is over, the cursor also snaps to the signal transitions in that channel.

Extensibility. Although Logic is not open-source software, Saleae has community support with API documentation and a user forum where you can develop analyzers for it. You probably can’t add support for alternative input devices. Access to the forum and API documentation requires registration, which I didn’t do.

OpenBench Logic Sniffer (OLS) 0.9.5

Zooming in and out is achieved by the Ctrl+mousewheel action. The zooming action is centered around the mouse cursor, so you won’t lose sight of what you are zooming into. There’s also a minor nit, which prevents zoom from working when you mouse-over the wrong area such as the time “ruler” at the top, or the blank part of the waveform window.

I do not know if there are bugs in the software or if it is intended behaviour, but I cannot change the waveform colours and background as the tabs are disabled.

Random data comes from a “test device”. Since each device displays a settings dialog, you can select the type of test data, the number of channels and samples to be generated from that dialog. It includes different types of test data, such as I2C data.

Cursors. To perform measurements between two points, you will need to use cursors. OLS supports up to 10 cursors, labelled T1 to T10, which you can also use as bookmarks. Under the Tools menu there is an option called “Measure”, which launches a dialog where you can view the time at which each cursor is placed, as well as measure the time difference and frequency between any 2 cursors. You can also measure the frequency and duty cycle of a channel as a whole. The problem with the cursors is that they do not snap to the signal transitions, therefore to precisely measure the time difference, you need to zoom in all the way to set each cursor, which becomes a chore.

Analyzers can be applied from the Tools menu, which also display a settings window to select the channels and other settings. After analysis, data is generated in the same window, which can be exported as a HTML file, as well as annotated in the waveform over the respective sections.

Annotations are added by analyzers. When zooming out, the annotations will shrink and when they can no longer accommodate the contained text, it disappears altogether, showing empty bubbles in the waveforms. It could be made better if it displayed a shorter version of the text, much like Saleae Logic does.

Extensibility. The whole project is licensed under GPLv2, so you can pretty much extend or change anything. There is ongoing work to define an API for writing new device “drivers”, tools for analysis, exporters and more.

32leaves LogicAnalzyer (LA)

While I applaud the authors for trying to develop an open-source logic analyzer, I have to respectfully say that it is crap.

Zooming cannot be done with the mouse. You have to select a toolbar icon called “Set Scale” and manually enter a scale value in ns/pixel. Worse still, zoomed out waveforms have scaling artifacts, making them look very unsightly.

It is also slow, especially when redrawing waveforms while you’re making a selection. I have a pretty top-of-the-line workstation, but I can still see the selection being redrawn, especially when parallel selection has been enabled. This doesn’t contribute to a good user experience.

LogicAnalyzer has the concept of “sinks”, which is an unnecessary concept to communicate to the end-user and it doesn’t help at all. I selected “Random data” to generate some data I could play with, after which I was prompted for sinks. Among the sinks available was the “I2C analyzer” and the “Editor sink”, so I added both and it “oops” on me. If I had selected the I2C analyzer it just shows a table full of the decoded values and I couldn’t see the waveform at all, and likewise for the editor, it shows the waveform which I can’t analyze later.

At this point, I gave up playing with the software any further.

ChronoVu 3.06

While all 3 platforms were supported, the installers for the “bus decoders” were separate downloads. This means if I were to install the software on a Windows PC, I would download the main installer, as well as the 4 additional installers, one for each decoder.

ChronoVu lacked the ability to generate random data or simulate a capture for me to play with. It had sample files but they were split into “setup files” and “data files”. The data files seemed like just regular square waveforms of different frequencies and duty cycles, so I couldn’t analyze them.

Zooming in and out had to be done by toolbar buttons. Again, this irritates me, but not as much as LogicAnalyzer.

Cursors can be set by left or right clicking at points in the waveform, which are marked with L and R markers, but I do not know what you can do with this. I am also unsure how you can measure the duration and frequency between the markers.

Conclusion

It should be obvious after reading the reviews that I favour Saleae Logic (I do not work for them). It is the best logic analyzer software I have seen so far, and I like the intuitive layout a lot. I didn’t have to read any manuals to figure out how to use the software at all. However, their software works only with their logic analyzers, so I would recommend buying this if you can afford it.

If you wish to use the SUMP logic analyzer or the Open Workbench Logic Analyzer, it is clear that you should use the OLS client. If the issues I raised can be addressed, it would be even better.

If you are looking to buy a logic analyzer, I suggest you look for one with extensibility to their software. The software is just as important as the hardware. I have seen those expensive machines (or hardware) which works with their proprietary software that runs only on Windows, looks like shit and is a total chore to use.

If you are going to spend a lot of money on a hardware product, make sure their software is worth your money too.

Hi Janssen, thanks for your work on the OLS! I’ve been playing around with it and maybe I might write an analyzer for it or something. I’ll file the bugs (and feature requests) on GitHub as soon as I’ve confirmed them.