Logic analyzers historically have been the heavy artillery in an engineer’s arsenal. For many of us, the name invokes mental images of large HP and Tektronix iron with real CRT screens. Logic connections were made through pods, with hundreds of leads weaving their way back to the test equipment. The logic analyzer came out when all else failed, when even a four channel scope wasn’t enough to figure out your problems. Setting them up was a pain – if you were lucky, the analyzer had a PC keyboard interface. If not, you were stuck typing your signal names into the front panel keyboard. Once setup though, logic analyzers were great at finding bugs. You can see things you’d never see with another tool – like a data bus slowly settling out after the read or write strobe.
There have been a number of USB based logic analyzers introduced in recent years, but they didn’t really catch on until Saleae released their “Logic” line of devices. Low cost, high-speed, and easy to use – these devices were perfect. They also inspired an army of clone devices based upon the same Cypress Semiconductor parts. DSLogic designed by DreamSource Labs, can be thought of as an open source evolution of the original Saleae device.
DSLogic appeared in 2013 as a Kickstarter campaign for an open source logic analyzer with an optional oscilloscope extension. I think it’s safe to say that they did well, raising $111,497 USD, more than 10 times their initial goal of $10,000 USD. These days both the DSLogic and the oscilloscope extension are available at The Hackaday Store. In this review we’re focusing on the logic analyzer portion of the tool.
Click past the break for the full story!
Inside the box
The DSLogic ships in a fine multi-layer cardboard box which I marveled at for about 0.5 seconds before tearing it up to get at the goods. The unit itself is a flat (9mm tall) aluminum box similar to the Saleae logic in construction. One end allows the probes to pop on to their .100 headers. The probe header itself is quite something. Each of the data lines is actually a superfine coaxial cable. There were some issues with this cable assembly breaking in the early versions of the tool. Mine was an updated version, in which all the grounds are ganged at a small PCB on the connector end. While using coax doubles the connections, it’s vitally important to have proper grounding and signal integrity when measuring digital signals at speeds up to 400 MHz.
The only disappointment in the package were the included test clips. They’re the cheap kind that consist of a .100 pin soldered to some spring steel. The plastic parts of these clips tend to fall apart (in fact, a few had all ready fallen apart in shipping), but are easy to snap back together. I can understand Dreamsource Labs’ decision to go with the cheaper clips – they do work, they’re just a bit harder to work with. Considering the cost of quality clips from Tektronix, (several dollars each), I can’t complain too much.
DSLogic’s specs are rather nice – 400 MHz max sampling rate, 16 channels, and 256 Megabit on-board memory. Of course you can’t do all of this at once. At 200 MHz, the DSLogic drops down to 8 channels, at 400 MHz, it’s a 4 channel device. Most of the internal logic is handled by a Xilinx Spartan 6 FPGA. At speeds like this, programmable logic is the way to go. Inputs to the DSLogic are protected by a ST DVIULC6-4SC6 “ESD protection device”. The DVIULC6 is an array of clamping diodes, often found in HDMI or Ethernet interfaces.
DSLogic’s software is DSView, currently at version v0.93 on their website. The software is based upon Sigrok, which is the front end used to drive many of the Cypress based tools. DSView adapted it for their own hardware, and host the source on their Github.
The software should be familiar to anyone who has used a logic analyzer before – especially a USB device. Signal names and triggers are easily available on the left side of the interface. Inherited from Sigrok is a nice set of decoders, including USB. I tested this out by teeing the DSLogic to the data+ and data- lines of a common USB to serial board. I connected the board to a PC and captured the USB enumeration. DSLogic captured the data and DSView actually did display the USB transfers. While it’s not a replacement for a full USB protocol analyzer, this setup would make debugging USB hardware a lot easier than using a scope.
I tested a number of other hardware setups with DSLogic, and the hardware does perform well – as long as the logic levels are clean. Like any other logic analyzer, DSLogic is not a scope, so every edge looks perfect – even if the actual signal is a mess.
DSView is definitely a work in progress, but it does get the job done. The most glaring omission is the fact that you can’t save a setup. This is an issue in Sigrok’s Pulseview as well. It’s a major hinderance when using DSLogic for anything more than quick hardware checks. Setting up meaningful signal names on a 16 channel device takes time, not to mention complex triggers and decoders. This problem is made even worse by the fact that the software will sometimes toss away the setup without warning. Whenever I cranked up the sample depth beyond the buffer size of the DSLogic, DSView would switch to stream mode. Stream mode uses the host computer’s main memory as a buffer, but is limited to 25 MHz. The annoying part is that DSView reset my decoders and channels back to default values.
This all may become a moot point if and when DSLogic’s hardware is ported into the mainline version of Sigrok. That functionality is currently listed as a work in progress on the wiki page.
In closing, DSLogic is a nice piece of open source hardware for analyzing digital signals. The software side does need some work, though. From the looks of DSView’s Github repo, changes are being made, albeit slowly. Since this is an open source project, maybe someone in the community will be inspired to help out DSView, or better yet, incorporate Dreamsource Labs’ changes in the mainline Sigrok project.