Interpret analog signal as digital

Hi, I am trying to analyze CANbus with Logic 8 analyzer, and it turns out it’s impossible, because it requires the swing of at least 0.6 - 1.2 V, while my CANbus low has swing of 1.3 - 2.4 V, so the logic input stays high all the time, while I can see the signal on the analog input. The CAN protocol analyzer allows only a digital channel to be selected as source, but I have an idea:
Why not allow to manually select a threshold on the analog channel, and make a digital signal from it? The interpretation would be done in the software, so it would be slower, but it’s okay, as I would be able to at least analyze something :slight_smile:

Or perhaps there is already such feature in version 2, but I couldn’t find it?

2 Likes

That’s an interesting idea. I don’t believe it is possible currently. You could add it as a feature request.

But, I wonder if the idea itself could be expanded. For instance, I deal with IsoSPI as well. This is essentially an analog bi-polar version of SPI that runs through transformers and thus gets the Iso prefix because it is completely isolated between nodes. The thing is, it is just SPI but with a different physical layer. The end result is still SPI. So, I wonder if it’d be possible to make an interface where analog signals could be processed and turned into a digital output that then is fed back to any other digital plug in for processing. In my example the IsoSPI could be turned into SPI which then gets processed as normal by the digital SPI functionality. That SPI output could then be fed to an HLA for even more processing. This idea could really potentially even make sense for digital to digital signals, though I can’t think of any good example for that.

But, your example and mine might make a good case for an analog to digital functionality. If you or I added this to the feature list I wonder what they’d say?

2 Likes

I added the feature request:

https://ideas.saleae.com/b/feature-requests/process-analog-channels-to-digital

This has been an idea we’ve kicked around for a while, for exactly the same reason. We’re actually in a good place with the new data processing system to add features like this, where a new processing step could be added to create a digital stream of data from an analog one.
However, I don’t want to add this now, because it’s quite complex to handle on the session management level. It represents a lot of complexity that will affect quite a few other parts of the application, since channel data feeds into so many other components.

What I think might be the best plan is to come up with a single solution that allows taking digital, analog, and/or analyzer data, run some code with it, and produce digital, analog, and/or protocol data. Basically an extension that users could write that builds on what we can do now with protocol analyzers, which are essentially digital data to protocol data converters. This would just expand the input formats to support analog or other protocol analyzer outputs, and expand the output to support digital and analog data. The new python high-level analyzers and measurements are a step in this direction.

I have no timeline on this, all I can say now is that user extensibility is a big focus for Logic 2. I wish we could start working on it sooner.

In the meantime, would something like this help work around the problem?

Thanks Collin.

Thanks markgarrison. I already figured out that the board I’m working on already has a CAN tranceiver, and I could simply probe the other side of it :slight_smile:. But I have left the post, because I think it would be a cool feature to have.