Last month I spent two evenings convinced that a control board had died. The display was blank, the sensor was reading nonsense, and I had already ordered a replacement before it occurred to me that I had never actually looked at the bus. I had measured it, certainly. The multimeter said 3.3V, which is the correct number. The oscilloscope said the clock was there, which is the correct shape. Neither of them could tell me that the device on the other end was answering to an address I was not talking to.
The replacement board, for the record, did not fix it. A five dollar part with a two dollar shipping fee did.
The actual spec sheet part
This is an 8-channel USB logic analyzer that samples at up to 24MHz. It is roughly the size of a stick of gum, it has no battery and no screen, and it takes all the power it needs from the USB port. You clip the channel wires onto whatever you are suspicious of, clip the ground lead to ground, and the software does the rest.
Input range is 0 to 5V, so it is equally happy with 3.3V and 5V logic. It presents itself as a Saleae-compatible device, which means it works with Logic 2 and with the open source sigrok and PulseView stack, and both of those will decode I2C, SPI, UART, CAN, 1-Wire, I2S and a long tail of others straight out of the box. The point is that you stop reading waveforms and start reading sentences. Instead of a squiggle you get a line that says address 0x48, register 0x01, wrote 0x60, and then you feel quite silly about the previous two evenings.
Why it is actually useful here
- I2C sensors that are not detected. Nine times out of ten the wiring is fine and the address is simply not the one the tutorial promised. This tells you in about four seconds.
- Serial that produces confident garbage. A wrong baud rate looks identical to a broken cable on a multimeter. Here it is obvious, because the decoder will happily tell you what baud rate the device is actually using.
- Filament runout switches and endstops that trigger at random, where the culprit is a bouncing signal lasting a few microseconds that you were never going to catch by eye.
- Anything involving a stepper driver in UART mode, where the board is talking to the driver constantly and you have no way of knowing whether the driver is answering.
- Confirming that the cheap module you just bought is genuinely running the protocol the listing claimed, before you spend a weekend writing firmware against a lie.
One honest caveat
24MHz is a hobby-grade sampling rate. The rule of thumb is that you want to sample several times faster than the signal you are watching, which makes this comfortable up to a few megahertz and increasingly imaginative above that. Standard I2C, SPI at sensible speeds, UART, and every printer bus I have ever needed to stare at sit well inside that window. High-speed SPI driving a display controller does not.
It is also digital only. It will tell you whether a line is high or low, not that it is slumped at a mushy 2.1V because somebody forgot a pull-up resistor. That remains firmly the oscilloscope's problem.
It sits at 4.9 stars across 156 reviews and more than two thousand sold, and those reviews are almost entirely some version of "arrived well packed, downloaded the software, it was recognised immediately, captured my first waveform in minutes." That was my experience too, give or take the spare mainboard I no longer needed. Check it out here, and may your next "it must be a wiring problem" turn out to be a two-minute fix.