Most electronics DIY projects I’ve worked in the past have involved digital communication protocols such as USB, UART or PS/2. Sometimes when first twiddling with a new protocols, everything works nicely. Other times, things don’t quite work the way they should. In the latter case, a logic analyzer is an invaluable tool, essentially a multi-channel logger of digital signals, which you can use to hopefully pinpoint where things are not going as they should. Nowadays most of these are connected to PC, so you can capture a piece of communications between two devices, and analyze what is happening with a dedicated software.
I started my logic analysis with the inexpensive Bus Pirate, but after a while also got Saleae Logic unit I used to view the PS/2 traffic in my knock sensor project. Later on, I have gotten the PicoScope 2208B which has both analog oscilloscope functionality, as well as digital logic analysis capabilities.
So when I was contacted by IKALOGIC, the makers of ScanaQuad series of logic analyzers, who offered to send me a unit to try out in return for a review, I though I was in a good position to give it a spin and also have previous experience to compare it against. I also had a project in mind to test drive the SQ200 unit I got: my recent MIDI-USB adapter, which is a combination of slow 32 KHz serial signals, and quite fast USB signalling.
Note: I received the review unit from Ikalogic without cost, but with freedom to form my own opinion about the device. I’m giving praise where it’s due, but not pulling any punches where something will nag me or compare unfavorably against the devices I’ve had first-hand experience in the past!
Unboxing the ScanaQuad SQ200
The unit arrived well packaged, and inside the plastic wrapping I uncovered a matte black cardboard box with the unit name. A grade above no-name Chinese vendors, but of course not an iPhone “unwrapping ceremony” kind of thing either. Inside, there was the unit, USB cord and logic probes neatly packed (click for larger images).
There’s nothing complicated in taking the unit into use: Just attach the USB cable, the probes, and you’re set. Build quality of the unit is very good, with grey matte surface with nice finishing, four screws and a product spec sticker on the backside, and logo, markings and a power/activity LED on top.
Size-wise, the SQ200 is slightly larger than the very compact Logic unit I have from Saleae (it’s an old model, don’t recall the exact model code), which I rate as the gold standard in product casing, with Apple-esque metal feel (aluminum?) and solid construction. The Saleae unit actually has 8 channels despite it’s smaller size. On the comparison image you can also see PicoScope 2208B with 16-channel MSO capability. Compared to that, both IKALOGIC and Saleae units are quity tiny (still, the palm-sized 2208B is extremely compact as well, given the 2 high frequency analog channels and waveform generator).
Overall, the IKALOGIC SQ200 is physically very good, I’d rate it 4.5 stars out of 5 if I had to give marks. Only issue I was not very fond of were the tips of the logic probes: They are hook-shaped and quite thick, not fitting into through-holes of my protoboards. I have separate IC microhooks with pincer-shaped ends that are easier to use with most projects. The other two units I have to compare skip this issue, as they have no hooks at all, but only female wires that you plug something into. This is of course not a major issue, as you can use the SQ200 hooks to grab a finer IC hook, but still something that might be improved upon.
IKALOGIC SQ200 Features at a Glance
The ScanaQuad product line ranges from the 69€ SQ25 with 25 MHz sampling rate with memory for 256k data points to the SQ200 with 200 MHz sampling rate and 4M data points per channel that sells for 149€. The top-of-the line model being reviewed here has enough sampling frequency to theoretically analyze 100 MHz signals, but in case you want to analyze timing between logic edges, you want more samples between the edges, so up to 20..25 Mhz would be feasible here, giving you 10..8 samples to analyze timing in more detail. Here are the highlights:
- 200 MHz sampling rate
- 4M data points per channel (so 20 ms capture at full rate, 4s at 1 MHz etc.)
- 4 channels and ground
- USB cable and probes included
- ScanaStudio software with 30+ protocol decoders, including I2C, SPI, RS232, CAN, 1-WIRE, JTAG
- Yes, it can analyze up to full-speed USB 2.0 (tested), but not high-speed (dedicated USB 2.0 analyzers are expensive, btw.)
- Extensive protocol triggering capabilities (not just “leading edge” or “falling edge”)
- Digital pattern generator (can be mixed with capture)
- +-35V input protection (easily enough for 99.5 % of logic analysis work)
- 2 differential input pairs, adjustable in/out voltage and input resistance
- Price: 149€ plus taxes and shipping
The price curve is not very steep, so I’d definitely get at least the SQ50 model at 89€ with 2x the frequency and 4x the memory of SQ25 (price difference is like McDonald’s meals for two), preferably the SQ100 or SQ200 models if you want to tinker with USB signals.
The main limit of this device will be the memory and number of channels. Four channels will work for several UART signals or two two-wire protocols (like USB and SPI), or 3+1. In most use cases this will be plenty, and you can usually work around in cases where you need more channels by splitting your analysis to smaller parts. Memory-wise, there’s no “streaming mode”, so you’ll first need to capture everything to memory, and then transfer to PC. When analyzing USB signals, even the 4MS buffer will fill up in fragments of a second, so there’s no “just turn it on and start pushing buttons on your project” way of working. Fortunately, the capture triggers are very good.
And to be honest, if you are looking for more memory, the PicoScope 2208B MSO with 32MS memory starts at 519€ and it goes up from there as you add memory and speed, so you are looking at wholly different price segment.
In summary, I’d say that compared to the competition out there, and the capabilities of the device combined with ScanaStudio software (more on that below), I’d rate the price-performance ratio of the ScanaQuad range quite excellent and very competitive.
I wanted to try out the protocol decoding capabilities of the logic analyzer, as well as stretch the sampling rate a bit, but keep the setup still simple. For this, my MIDI-to-USB adapter based on ATmega32u4 was excellent test subject. Logic-wise, there is 31.25 kHz UART signal coming from the MIDI device, then going through an optoisolator, with identical but slightly delayed UART signal coming out and into the ATmega. The microcontroller has native USB capabilities, and it sends USB MIDI signals to computer.
To get to the USB signal, I had to use additional breadboard with two USB breadboard headers between the device and my computer — strange that there aren’t many ready-made breakouts for USB sniffers in AliExpress, or even AdaFruit or Sparkfun. Once that was done, I connected two channels of IKAlogic into D+ and D- of the USB, and the other two into both sides of the optoisolator. The test setup with its two breakboards, a set of jumper wires, IKAlogic and a MidiLink USB->MIDI adapter I used to feed the MIDI signals into my own MIDI->USB one was not a beautiful sight (see picture below), but electronically it worked without a hitch.
I used MIDI-OX to send note events from the MIDI OUT of the MidiLink, and Pianoteq to listen to USB MIDI events coming from my adapter. Before firing up the ScanaStudio analyser suite, I actually didn’t have an idea what USB speed the MIDI messages were coming through, and what delay was added by my DIY adapter to the MIDI signal. It was time to find out!
ScanaStudio Logic Analysis Software
An USB logic analyzer device is quite simple in its operation. The most basic one just receives a signal to start capturing, then fills the memory it has with the readings from the input ports, and once the memory is full, sends data over to PC for analysis. Streaming analyzers limit their capture rate so they can do a continuous stream, my $5 DIY logic analyzer is a good example of such a device.
The IKAlogic is a more sophisticated device, that can change it’s channels between input and output, send signals through its outputs and configure the capture rate, amount of memory captured, and do custom triggering to start capture. But still the effectiveness of the kit is dependent on the software on the PC side. In IKAlogic’s case, that software is called ScanaStudio, and it is available for Windows, Linux and Mac. You may want to take a moment and read the highlights from ScanaStudio web page and watch their video (with heartwarming stock music :) to get a full tour.
I wanted to measure some signals, and the software to help me with that. I had previous experience with Saleae’s software which is simple and very easy to use, so I had high expectations, and I was happy to find out the ScanaStudio was similarly straightforward and intuitive to use. You fire up the software, create a new workspace, choose your device (there’s a demo device if you want to try it out without hardware). After that, it’s just choosing the capture mode, target voltage, sampling rate and memory configuration, and starting the capture. The advanced features like customizing views, annotating the captured signals and setting triggers are available but tucked away in collapsed menus, so they won’t get in your way if you don’t need them.
For my first test run, I had the UART lines connected. I chose a frequency of 1 MHz for capture, giving me 1 us timing accuracy for signals, and long 4 second capture time, meaning I could just start capture, send some notes from MIDI-OX, without setting up any triggering. Here’s my first run after a few minutes of getting to know the interface:
I had added UART protocol analyzers at 32 kHz, so once zooming in (the signals are the main highlight of the UI and take up most of the space, and it’s easy to drag and scroll, and zoom in with a mouse wheel) I was greeted with familiar MIDI messages. The 0x90 is “note on”, and data 0x39 and 0x64 signify the note and the volume, respectively. ScanaStudio displayed the signal, start and stop bits, and the timing information between edges when hovering a mouse between them. Easy to understand and effective.
An interesting thing was, that the OUT signal from optocoupler is the one on green, and it actually precedes the IN signal. Is this a break in time continuum? No, I don’t think so, it’s probably just the fact that on the IN side, signal is lower voltage (it’s more of a current chip with a resistor in series with the optocoupler), so the fast-rising signal on OUT side crosses the logic analyzer’s treshold voltage earlier, even though the IN starts its rise before. With an oscilloscope, you could actually see the voltage rise, but with logic analysis, you have only ones and zeroes.
USB Analysis and Triggering
Next it was the real deal: USB analysis. I was expecting USB full speed (and hoping no high speed, as the analyzer was not fast enough for that), with 12 Mbit/s data transfer, so USB being a serial line, at least 25 MHz capture rate is needed to get that (Nyquist theorem etc.). I wanted to be sure and chose 50 MHz capture rate. Now the problem becomes timing: The 4 M samples of memory will hold 80 milliseconds of signal. I may have fast hands, but 0.08 seconds to start capture and play a note is a bit too tight for me. So time to set up triggering.
Thankfully, it was very easy to set up the trigger. For some reason, my screen capture software refused to take a screenshot of it, but basically you select the channel and the type of trigger. A simple edge trigger with a dozen of milliseconds of capture saved before the trigger (the analyzer is probably storing the data continuously, so it has previous data in memory when it encounters the trigger) was deemed to be good enough.
After setting up the trigger on UART (the USB data will be sent after that, hopefully within less than 50 milliseconds!), I started recording, and hit a note. Bingo! It worked just as it should:
As you can see from the screenshot, there’s more going on in the USB lines than just MIDI data. The USB host (PC) is polling the device every millisecond, basically asking “Do you have something?”, and 99 % of the time the device is responding “Nope!”. But very soon after the MIDI signal is received by my ATmega32u4 (to my delight, this was a fraction of a millisecond, roughly 0.08 ms judging from the above), the device says “Yes I have data”, and sends the MIDI message over USB.
Because the MIDI and USB signalling happen on quite different speeds (USB 1.1 is 400x faster), you cannot easily view both signals in their raw form at the same time. Thankfully, ScanaStudio has a “PacketView” view mode that displays the decoded protocol data on the right side of the signal. You can filter that view, and you can see from the above image that I’ve isolated “data” packets of both UART and USB.
ScanaStudio also has simple marker functionality to put markers on interesting points, and show the time difference between those. So you can easily zoom in to USB data, set a marker on transmission start, and then zoom out, set a marker on UART data end, and measure the time between these markers (0,07 ms if you want to know). I was also curious about the details of the USB signalling used by ATmega32u4, so I did another capture run (this time at 25 MHz to see if it was enough — it was, great work Nyquist!), and zoomed in to the USB signalling:
Now we can easily see the individual transitions on the D- and D+ lines. They happen 80 ns apart, which corresponds to 12.5 MHz. This matches quite perfectly the maximum 12 Mbit/s USB 1.1 full speed (note that there is some protocol and error correction overhead). So theoretically 25 MHz capture rate might work for this use case, but I’m more happy with the 50 MHz one — even that is only 2 data points between edges, meaning the timing resolution is not much (20 ns to be exact). At full 200 MHz, the IKAlogic would have 16 samples per edge.
Note that the above demonstrates the “amount of samples” issue very well related to timing — as my ScanaQuad was capturing at 25 MHz, the time between samples is 40 ns. So measuring the time between USB data transitions as 80 ns, I’m actually only sure it’s longer than 40 ns, and shorter than 120 ns — essentially I can say the USB frequency is less than 25 MHz, but more than 8,3 MHz! I’m quite sure it’s 12.5, but would need to run the SQ200 at full 200 MHz to get 16 samples per edge and error margin of rougly +-6 % for the frequency. So I can barely analyze the signals at 25 MHz capture rate, easily analyze them at 50 MHz, but can’t say much about the timings before several times higher frequency.
Overall, the test run with the USB MIDI adapter left me quite impressed with the software. It was easy to use all the features I needed, simple to navigate the signals, and protocol decoding worked flawlessly, the USB decoding showing that the device is up to snuff even with the faster signals I work with.
I was a bit uncertain if the “workspace” ideology in the software was overkill (you could just save the signals and not bother with “Starting a project”, right?), but when writing this post, I noticed I had forgot to write down the timing between UART end and USB transmission. With a saved workspace, I could actually just double-click the file, and the ScanaStudio software launched, spent a couple of seconds analyzing the signals again, and I was back to the exact view I had when I saved the workspace, with the position, zoom, PacketView open and even the “data” filter active! Impressive.
Having gone through the functionality and details of operations, it’s good to finish with traditional “pros and cons” wrap-up of the IKAlogic SQ200. Note that I’m giving my list as a “serious hobbyist” — if you mostly do Arduino projects or have just started embedded projects, your requirements would be a lot less. On the other hand, if you work mostly with ARM chips that run at 1 GHz and robotics connected to high-speed devices like bluetooth, cameras etc., my needs will be simple in comparison:
Out of the three different professional products I’ve used for logic analysis, the IKAlogic is the most inexpensive, and feature-wise on par with the competition, so it’s easy to recommend as the go-to choice for logic analysis needs. The capabilities are excellent, and price-performance as well.
If I was starting from scratch with my toolkit, I’d probably opt for the IKAlogic SQ100 (when it’s back in stock), and get an entry-level PicoScope 2000, possibly just the 2204A, or 2205A for added punch, to have two very capable tools at hand, both very effective in their own lines of work (logic analysis and analog signals).
If you like all-in-one solutions, Saleae Logic 8 at 399$ or PicoScope 2205A MSO at 389€ are possible as well, but the analog capabilities of Logic 8 are not quite on par with the PicoScopes, and even though I love my PicoScope 2208B, the logic analysis side of PicoScope software is not as simple and intuitive as IKALOGIC ScanaStudio tested here, and the 17 wires poking out of the MSO module not as elegant as in the two other competitor’s products.
Thanks for reading! If you have any questions, feel free to ask in the comments section.