Extension Use Cases - PWM Track and Digital Comparison Pass/Fail Test

I have 2 possible use cases for extensions. I think I just need a gentle nudge. I can follow the examples, but I don’t see an example as to what I want to do.

First, I’d like to take a digital channel, calculate the duty cycle, then create a new digital signal (a math function) that just represents this duty cycle as a signal level from 0 - 100%. This type of functionality is on a high end scope, so when you have a zoomed out perspective you can look at the PWM trend as a scope plot. Glitches in the PWM trend can point to issues.

The other is that I’d like to take 4 signals, 3 of them are inputs to determine the pass fail criteria and the 4th is compared against the 3 signals for pass fail criteria. I’d like to then flag that 4th signal anywhere it fails this comparison.

So from an extension point of view, for the first use case, is there a way to create a secondary “math” channel to represent some data from the original channel. And for the 2nd use case, I’m trying to figure out how to use the python libraries to look across multiple digital channels.

@rvalascho Thanks for checking with us. Long story short, unfortunately both use cases aren’t possible at the moment. I’ve written up some comments below:

First, I’d like to take a digital channel, calculate the duty cycle, then create a new digital signal (a math function) that just represents this duty cycle as a signal level from 0 - 100%. This type of functionality is on a high end scope, so when you have a zoomed out perspective you can look at the PWM trend as a scope plot. Glitches in the PWM trend can point to issues.

Although measuring a single statistical duty cycle metric is possible (via the “Duty Cycle” measurement extension available via our in-app Extensions Markeplace), creating a brand new virtual channel like a Math channel or from values derived from measurements is not possible at the moment. I believe the closest idea post to your feature request is linked below. As such, I added a comment and vote for you to track your need for this. It seems that plotting duty cycle on a virtual channel is a common use case.

The other is that I’d like to take 4 signals, 3 of them are inputs to determine the pass fail criteria and the 4th is compared against the 3 signals for pass fail criteria. I’d like to then flag that 4th signal anywhere it fails this comparison.

A pass/fail mechanism is certainly something we want to add to the app at some point. One feature that might help us move towards that direction is to add the ability for our measurement extensions to measure multiple channels simultaneously (currently, measurement extensions are only able to pan through a single channel). What kind of pass/fail test were you looking to implement?

Thanks for your reply. The response makes sense, and look forward to any future update. PWM Tracking is really useful to look for jumps, which usually signal that the system could not handle some transient, hit a saturation condition, etc. It would be awesome to make an extension that works on a device like this. As for the second use case, I have a series of PWMs that generate an actuation pattern, and I have a signal that represents the timing at which I measure feedback current. I want to essentially unit test this setup to make sure the feedback current is captured at the right time. Simplisticly, some logic could be applied like if CHANNEL A = HI, CHANNEL B = LO, and CHANNEL C = LO…then if a rising edge on CHANNEL D is captured on the feedback signal…this situation is passing. If not, failing. But it could actually be more complicated in that, in that certain combinations have to happen in a certain ordering. All this could be done with digital signals even though we eventually use in a power system. The overall unit test could be made up of a very large buffer that includes iterative test conditions.

By the way, this is my 3rd Saleae device. I have the Logic Pro 18 now. I’m really impressed with this one from price/performance point of view.

1 Like

@rvalascho Glad to hear our Logic analyzer has been impressing you so far! Thanks for the kind words!

Also, thanks for sharing details on your second use case. I think adding support for a Math virtual channel would solve this one for you. I’ve added a new comment for you in another idea post below to make sure we capture your use case.

With a virtual Math channel, I could see a simplistic pass/fail mechanism where a virtual channel will toggle HI when the digital conditions are not met.

Right now, you might be able to implement a similar digital pass/fail mechanism by using our Trigger. Could this work out for you in the meantime? In the support article below, take a look at “Trigger Mode” and specifically the section titled “Additional Channel State Triggering.”