Review: DSLogic Logic Analyzer

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

dsl-cableThe 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.

Hardware

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.

Software

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.

usb-signalThe 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.

dslogicI 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.

The TL:DR

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.

41 thoughts on “Review: DSLogic Logic Analyzer

      1. I’m looking for a manufacturer. Lets assume I want 500 individual cases…. Or standard of the shelf cases…

        I can’t find anything nice. Lots of ugly plastic things, Not even SickOfBeige in something more than single items…

        /me sucks in sourcing.

        1. Keep in mind that the DSLogic team is located in China. I’m pretty sure that they have a lot of businesses there that want to fulfill such machining needs for cheap.

        2. Typically, this sort of stuff is completely custom (since it’s easy to design and machine, and relatively small). Just go to your local machine shop and have them make you some?

  1. I bought one during the kickstarter campaign, but I haven’t used it yet. The one time since then that I’ve wanted to use a logic analyzer instead of a scope I needed more than 16 signals.

    After an initial wave of complaints about the quality of the leads, they did offer a set of higher quality leads at a reasonable price, which I also bought. I’m surprised that they’d still be shipping with the lower quality leads.

  2. I currently need a way to listen in on 3 digital signals at once at a sample rate around 10khz. Does anybody have a recommendation for the most cost effective tool that would do that? Is it the DSLogic, or are there even cheaper alternatives anybody could recommend?

      1. Can an arduino sample fast enough? I tried to use a Parallax Basic Stamp 2, but it only executes 2000 instructions per second so I couldn’t see a way to get anywhere near a high enough sample rate.

        1. For 10 KHz an arduino should be adequate. A better solution would be a Parallax Propeller based product such as a QuickStart, which can devote a cog to collecting samples with clean timing without having to also save and display.

        2. A $3 “Arduino” form China runs at 16MHz. To have 10k Sample/s means that each of the sample have 1600 cycles to execute. That’s very crappy coding if you can’t meet that requirement.

          Someone that can write embedded C code and accessing the I/O port directly should easily be able to read an I/O location, compare it with a condition, store it in RAM, update pointer in 20-30 cycles range easily.

          1. Don’t forget that you either store the data or stream it. if you store it, you are limited by a few sampled. But if you stream it you should be able to do about 8 bits at about 100Ksps

          2. You should be able to get 1.5k worth of samples (or a bit more) in a 328.. With careful use of for triggering. that should be plenty of samples. FYI: In comparison oscilloscope defaults to 512 points per channel. You can also use SPI SRAM for the storage.

            I supposed if you run it so that your sample rate exactly matches the transmit speed of the serial port to not having to poll nor buffer to maximize streaming. The 328 is a bit messed up in their port mapping for grabbing 8 full bits at a time..

          1. Yeah, I’ve got one of the cheap Chinese ones and it works fine with Sigrok. Sigrok comes with its own open source firmware that supports most of the cheap Cypress FX2 based logic analyzers.

    1. I use the Open Bench Logic Sniffer. I got mine from Seeed years ago, but they have it on HaD store too. It is $50ish and does everything that I want to do with a logic analyzer.

      (I wrote a review of it for the HaD store, but it is no longer showing… not sure if they got rid of user reviews overall, or if there was some DB troubles…)

      Cheers

    2. You can pick up clones of the original Saleae Logic for less than $10 off of ebay or aliexpress. These offer 6 channels at 20 MS/s or something. I honestly don’t know if and to what extend these clones are actually legal. All I know is that I started out with one of these clones without being aware they were clones. When I found out about Saleae, and their current crop of products, I purchased a genuine Logic 8.

      1. Run your (turbo pascal) program in DOS, and disable things like keyboard interrupts, then use a bit of ASM instructions to read the 64-bit CPU counter in Pentuim chips to decide when to read a sample. (RT-linux didn’t exist at the time I played with this)

  3. The DSLogic p****d all over the sigrok codebase, making their changes virtually impossible to merge back upstream. I’d honestly rather see people contribute to sigrok directly than the DSLogic fork. The fork is – as far as I’m aware – a dead end.

    1. Oh, and by the way – DSLogic is not open hardware either. They don’t provide the PCB files nor do they provide properly licensed HDL files (copyrighted by Xilinx). And they censored one of the sigrok authors when he asked on their forums about giving back to sigrok. Go figure. I really wish Hackaday would do proper research before posting such reviews. People like the DSLogic team seriously harm the open source scene and it should be made known.

      1. Second that. I bought mine on the kickstarter campaign because they promised free software support. What we’ve got has nothing to do with community based free software as we all like it and contribute to. AFAIK sigrok guys are quite pissed about the behaviour of the DSLogic guys.

  4. I bought one after reading Steve’s review on BMOW. It’s pretty good, better than using a Papilio with the Sump client. The software has some rough edges. As an open source project I was hoping the software would have improved quicker. Of course being a software developer by trade, I can squarely put some blame on my on shoulders for not contributing. The Sump client hasn’t had active development in years either.

    It’s a nice product for the money though.

  5. I have one of these. The hardware is nice.

    The software is still a little lacking. I am still learning about this stuff in general and the software is pretty straight forward which made it easy… Except for when trying to do protocol decoding. The settings were finicky. I found that the configurations would disappear occasionally and I had to re-add the decoder. The other thing is exporting; it can only export binary data for each channel (at least it did 2 months ago). I decode some SPI signals and its awesome, but i cant export the byte data. Makes it impossible to do any automated analysis (unless there is a better way that i do not know about).

  6. Has someone experience (i.e. a direct comparison) between DSLogic (+ oscilloscope extension) and analog discovery?

    Thinking already quite some time to get one of these. It would be nice to know which one delivers more usability/$$?

  7. I have an 8 channel Salae which is splendid – it was expensive but well worth it. I’d like more channels but I seriously can’t afford the $599 for the pro-16. I’d also like the oscilloscope function – not necessarily analog but a continuous triggered display rather than capture and dump. I’m not sure whether this is up to the quality ofthe saleae though.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s