Tag Archives: logic analyzer


LabtoolTo debug digital circuits (mostly I2C, I2S and SPI communications between chips), I still use my old LogicPort 34-channel logic analyzer. When I bought it several years ago, it was a real bargain. There where no comparable logic analyzer available in this price range. However today, there are alternatives. One that I found today is LabTool from Embedded artists. It is not only a logic analyzer, but also features an oscilloscope, a logic level signal generator, and an analog signal generator.

The specs are not very impressive: 100MHz samples rate only with 2 channels used, only 20MSamples/s per channel with all 11 channels used. Also the integrated oscilloscope has a bandwidth of 6MHz and a max. sample rate of 60Ms/s – even cheap DSOs have much more impressive specs. However, I like this board. First it is inexpensive: €99 for a device with so many used is a very attractive price point. Also the software is open source. If I look at the software of my LogicPort, there are so many things I would like to change. However, the vendor does not seem to be interested in further development. With an open-source software there is at least a chance, that people from the community will expand the software.

This is not a top-notch device for professional use, but I is interesting for hackers and makers that do not want to spend too much money and want to use it to design digital circuits. I’m not sure about the analog part. 6MHz bandwidth  should be enough to debug audio circuits. I’m interested if somebody is using it for audio – leave a comment about your experiences if you do.

HiFiBerry DSP Light: Prototyping started

hifiberry-dsp-debuggingOur DSP project for the Raspberry Pi has reached the next milestone: hardware prototyping. The digital part of the circuits is working. There was still a minor bug (wrong pinout of a transistor) that was easy to correct by soldering the transistor on its back. The rest of the circuit worked well. As you can see on the picture, the analog part is not assembled yet. First I want to be able to upload the software to the chip.

Unfortunately, the simple approach to upload the program did not work. The chip simply did not acknowledge any I2S requests. Soldering some cables and connecting the I2S bus to the logic analyzer showed some unexpected behavior. While I2C read requests did not work, there was no problem with write requests. What happened? I had a look at the datasheet again and I think, I found the problem. Before every read request, the chip expects a write request with the address to read. However, both requests have to be in the same I2C transaction. The chip expects multiple start bits. Unfortunately, the Python I2C library that I wanted to use does not support multiple starts. It seems that I have to use the lower-level device driver of the operating system to upload the software to the chip.