Dave Jones, from the EEVBlog, recently did a review of the Saleae Logic, and he basically bashed it because he’s been working in the EE field for decades and owns equipment worth many thousands of dollars.
This post isn’t really a review, it’s more like a piece of advice. I have written this from the point of view of a hobbyist, especially a poor one. The Saleae Logic holds a special place in my heart because I’m pretty sure it’s responsible for a lot of my success.
Plus, watching Dave use the Saleae software is cringe worthy. The triggering options were pretty obvious and intuitive, but he just didn’t see them. Also I think he didn’t setup the UART analyzer options properly. I’ve never read the manual and I’ve figured out the software pretty much inside out by now.
Low Cost Logic Analyzers
Logic analyzers might sound like really expensive equipment, and they are. Good ones can cost thousands of dollars.
But assuming you are a hobbyist or a student who just need make a few sensors talk, I seriously recommend you to save money for a low cost logic analyzer as soon as possible. Like an oscilloscope, it’s like having a third eye that sees electrical signals with bullet time (multimeters are too slow).
A good example of when it came in handy is when I was making my own Wiimote extension. I used a logic analyzer to log all the I2C traffic. The traffic is encrypted, but I found the decryption algorithm. I simulated the decryption algorithm on my computer with the logged I2C traffic to verify the algorithm first, then I implemented it in my device.
Another good example is when you are using a LCD display. It probably has many different signals and if anything goes wrong, then nothing works and you have to wonder why. Maybe the reset line was driven low but it never went back to high? Maybe some other part of your code toggled the a pin halfway through a data transfer by mistake?
If you have a problem but can’t use normal debugging techniques due to timing restraints, then a good solution is to simply toggle a pin and watch it happen using a logic analyzer. You can tell what event happened and when it happens, without ever really freezing your code.
I ordered my first logic analyzer along with some parts that allowed me to build a MP3 player. I was able to build it on a breadboard from scratch, and code it from scratch, all in one night. I’m pretty sure it was because of the logic analyzer, which let me narrow in on problems extremely quickly.
Oscilloscope vs Logic Analyzer
An oscilloscope might be better for some applications like seeing maybe your bus is too noisy or if an overshoot is so high that it causes a reset. It can probably do everything a logic analyzer can do plus more if it had the right software (some do), but oscilloscopes are usually too limited by the number of channels that are available.
Just so you know, I don’t actually own a real oscilloscope. I actually only own a cheap logic analyzer.
Logic analyzers can be used for some timing, but not too precise. Oscilloscopes might be better for that.
If you’re logic analyzer says you’ve received a 0x23 and your software says you’ve received a 0x22 and you are sure that memory isn’t modified, that’s when you start to suspect problems at the electrical level. This is when an oscilloscope might be required.
Choices
I will only talk about the ones I have experience with.
Saleae Logic
My personal favorite. I think they could be credited for bringing down the prices of logic analyzers and making them available to hobbyists. Their software is so top notch that their competitors had to copy it. The aluminum construction is absolutely beautiful. It comes in a carrying case that must be worth $10 alone. The hooks that are provided are great. The cables are extremely flexible and memoryless (I have a many logic analyzers by now and I still use the Saleae ONLY BECAUSE OF THE AWESOME CABLE).
The software updates have slowed down tremendously recently. There is a SDK that allows you to write plug-ins but I haven’t seen much being published. If a USB analysis plugin is available, then I would consider buying the bigger Logic16 version.
The nearly unlimited sample memory means that even if it is missing features like advanced triggering, it doesn’t matter because you can literally record all day and just look for that trigger point yourself. The data can be exported very easily and the format is great so it’s not really hard at all.
Saleae / USBee / USB Blaster Combination: Mini Logic
I picked this up because it’s basically a Saleae Logic, but $100 cheaper, plus it can become an USBee or USB Blaster.
It’s big, and the cable sucks, and it screams Chinese ripoff (it is, really, you can’t really morally defend it).
But it is only $50 compared to $150. I only bought one to see if it works as advertised (it does), and maybe lend it out when somebody asks to borrow one.
Open Bench Logic Sniffer
When this was new on the market, I got one because it was supposed to be cheap but more capable than the Saleae Logic. Plus I wanted to support open source stuff. The problem was that even a few months after the launch, a lot of the bugs that was never fixed meant that most of the features were falsely advertised.
It also highlights the many problems of open source:
- the hardware was sold with the expectation that the software is written by somebody else and it can be constantly updated
- I had to constantly watch out for new updates because it had a bug that made it useless to me until it was fixed
- people were more interested in keeping things “standardized”, “cross platform”, “compatible”
- this meant that bug fixes were not important at all
- the GUI was Java, not a lot of good GUIs are written in Java… but hey it’s “cross platform” and “easy”
- they kept using serial port standards, in anticipation of other upcoming hardware that never arrives
- serial ports are horrible because you have to select the correct COM port number, and no two programs can use the same port at once. I suggested using USB without the virtual COM port because I thought having a VID/PID pair would mean the program can automatically select the port for you, but this suggestion would never be accepted because it’s hard for other people to get VID/PIDs and it’s harder to code native USB stuff.
- some developers start a cool half done software client for this product, post it online, get bored (they don’t really have any real incentives, can’t blame them), and just drop the project
The bugs might be fixed now, but it still leaves a bad taste in my mouth. So I still use my Saleae Logic, even though Open Bench Logic Sniffer can out perform it specifications wise.
The provided cables also suck.
$50 isn’t that bad either.
I might be interested in redesigning one but specifically for use with smartphones and tablets, if you want to help out with this effort, let me know.
USBee
Basically the story is that Saleae Logic is loosely based on USBee AX, but USBee was more expensive and the software kind of sucked (it did have slightly more features but the user experience sucked). Saleae Logic enters the market, targeting hobbyists, gets good press, was successful. USBee goes “oh shit” and rips off Saleae in almost every way.
But apparently USBee AX can do some low speed USB decoding… I think I was able to capture a packet or two so this feature does indeed work.
$300+ isn’t really low cost, I don’t own one of these. I’m only talking about my $50 clone version of the USBee that I mentioned.
Awesome article! I have an Open Bench analyzer myself, and have also been frustrated with the software development, or lack thereof. I’m hearing more and more good things about Saleae — what version do you have? How many channels?
What would you recommend for a hobbyist? I like that Open Bench has up to 32 channels with the expansion board. But I’m not well versed enough to know when or how often having that many channels would be necessary or applicable.
I’ve used every single version of the Saleae, from the old 8 pin version, currently I own an old Logic 16 from years ago, and my workplace has four old Logic 16 and 2 of the newest Logic Pro 16.
To give you an idea, 8 channels is enough for one SPI and one I2C with some other signals. 16 channels is definitely enough for 99% of what is done even professionally in my job function.
The new Logic 8 is still much better than the old Logic 16 I have. The Logic 4 might be a bit too limited, you can see an SPI bus but you wouldn’t have any more lines to trigger off of. The new Logic 8 is a good choice, $400 is about the same cost as an oscilloscope, and this is definitely more useful than an oscilloscope for many maker/hobbyist/hacker/arduino type projects.
Remember that if you run out of channels, you can always problem solve, isolate problems down further, narrow down possibilities, etc.
Good to know, thanks for the followup! I think I’ll aim for the new Logic 8.