@rclott - So, Trigger means different things to different people. Historically, oscilloscopes required a trigger for normal operation. Analog scopes used triggering to align multiple traces of (semi-) periodic signals on the CRT. Without triggering, you would just see faint, unaligned gobbly-guck of traces. Digital scopes only stored a fixed sample window with long gaps between windows, so a trigger was necessary to get the real data you cared about.
Some modern instruments like the Saleae Logic and Joulescope capture ALL the data with no missing samples, at least until your computer runs out of RAM / HDD / SSD. The notion of triggering, at least in the historical oscilloscope context of being fundamental to operation, is meaningless for this class of instruments. The question remains as to what Trigger means when it is not required for normal operation.
When a Joulescope customer requests “triggering” functionality, I ask them to clarify. Everyone means “detect an event”, but what to do with that varies wildly. Here is my current list of what triggering means to Joulescope customers:
- Detect an event and capture a short window. Display only this window of data, discarding all other data. Do this once & stop, or repeat every time the event occurs. For the latter, optionally display a heat map (digital phosphor for those of us of a certain age) of the average traces. This is the historical oscilloscope trigger operation.
- Detect an event and highlight this for me.
- Detect an event and signal external equipment to do something.
- Detect an event and start/stop recording to disk.
- Detect an event and start/stop capturing live streaming data.
- Detect an event and start/stop recording statistics.
- Detect an event and perform some arbitrary action for my test setup.
- Detect an event and run my custom analysis on that data (usually delimited by another event or from the start of the capture).
- Detect an event and disconnect power to the DUT.
The Joulescope UI does not do (1) today. We have considered adding a totally different widget with pure oscilloscope functionality, but it really hasn’t been a priority. I am much more inclined to integrate with Sigrok or ngscopeclient.
The Trigger widget in the Joulescope UI allows you to do 2 - 6. For 7 & 8, we recommend using the Joulescope Python API, but you could create a UI plugin. I only heard about (9) once, and I decided to lump it with (7) even though it is a Joulescope action.
The simplest events (which are supported by the Joulescope UI) include:
- A sample-by-sample threshold
- A signal from an external piece of equipment.
Some people want very complicated event detection with state machines to filter out all but that rare thing they care about. In my career, I used some expensive equipment to find extremely rare events like this. I can confidently say that recording all the data and post-processing is a better option when feasible. You never quite know if your trigger is right, so being able to look back at all the data gives much higher confidence. With a Joulescope and a 16 TB HDD (~$250 USD as of 2025-09), you can capture full-rate data for 2 weeks. Now, instead of triggering, you need search, which is another feature entirely.
The Joulescope UI currently delegates search to human eyes. Our present way for data analysis, including search, is through Python. You can use Python to create a “{filename}.anno.jls” file to add dual markers in regions of interest, which the UI will automatically load and display. We have a relatively small group of advanced Joulescope users that have automated their data analysis like this.
The common ground on “Trigger” is that it means “find what I care about” and “do something”. The “what I care about” and “do something” vary wildly from person to person.
As you can see, discussions of Trigger trigger me 