Data collection with a very delayed trigger

Hi, from the description for Logic 2.x, it sounds like I need a combination of the Trigger and Looping data capture modes. I have a case where I want to trigger on a pulse my hardware generates once an error condition is detected. However, it could be a few days before the condition occurs, and I doubt I have enough RAM in my PC to store all the data prior to the trigger and then ~30 seconds after the trigger. Ideally, what I would need is to save 30 seconds of pre-trigger data and 30 seconds of post trigger data.
From my understanding, Looping mode is simply a continuous data collection mode that I would need to manually stop. While in Trigger mode, it sounds like once the RAM Memory Buffer is full, data collection would stop even if the trigger hadn’t been found. So, what I really need for may case is a Looping mode that continuously collects data, overwriting old data in the RAM Memory buffer until a trigger is detected at which time data collection stops after a specified time interval.
Is there a way to do what I need now, or am I describing a new feature request?

@steve.albright Great question. This is actually possible now by using the Capture Settings shown below:

The key here is to set the Memory buffer size to limit the amount of RAM usage. This will loop the capture into the memory buffer and data collection will continue indefinitely until the trigger condition has been met. Once the trigger condition is met, it will continue capturing for 30 s, and once that’s done, it will trim the capture such that 30 s of data before the trigger is saved as well.

Hope this is what you need!

@timreyes Great. Thanks. That is what I need. You might want to take a look at the description in the User Guide for Memory Buffering in the Capture Modes section. The way it is written didn’t lead me to believe the way you are describing how the Trigger mode works with a limited RAM Memory Buffer.

@steve.albright Glad to hear that helped!

I went ahead and updated the user guide per your feedback. Thanks for that. I agree, it was worded quite confusingly. Hopefully that clears it up for others who might have the same question.

My PC runs out of memory after some days. due to the logic is waiting on trigger.
I have 60 sec before and 60 sec after in my setup.
If is possible to have a loop the previous 60 sec before the trigger is armed so the PC dont run out of memory ?
BTW Im using the latest version of the logic. 2.3.31

BR Søren

@bovebove
Sorry to hear that. I’m suspecting there may be a memory leak happening somewhere, as the RAM usage should stay constant throughout a Trigger mode capture once the RAM buffer limit is reached.

  • What operating system are you running on?

  • Do you remember how many days it takes before your RAM runs out? What happens when your RAM runs out?

  • Do you have any analyzers added? If so, what happens when you capture while they are not added? You can add your analyzers again after a capture is complete.

  • Can you share your capture preset file with me? Instructions below:
    https://support.saleae.com/user-guide/using-logic/saving-loading-and-exporting-data

  • Before running the Logic software, how much free RAM does your PC have?

For your question below:

If is possible to have a loop the previous 60 sec before the trigger is armed so the PC dont run out of memory ?

Do you mean you want the following?

  • Have a 60 second buffer loop and, once the trigger is reached, keep the last 60 seconds of data captured before the trigger.
  • Do not capture any data after the trigger

If so, then this is possible. You can set the following settings…

  • Trim pre-trigger data = 60 s
  • Capture duration after trigger = 1 ms

Hi Tim

It seems the RAM buffer is filled and then the program closes

Operation system windows 10

5,8G of RAM is free during startup of the program

I have 5 digital traces(0-4) running and trigger on trace 4, no analyzers enabled.

So the setup is that I have a port flipping if an error is present. This is connected to input 4

Then I want to capture the data on channel 0-3 60 sec before the trigger event on channel 4 and 60 sec after on channel 0-3

If I simulate an error before the buffer is full then the system is working as expected.

It seems that in my case, since the error take long time to occur, the “waiting” buffer is not limited to the size I have specified.

The Buffer is set to 3GB, I also tried lower, so after some hours this buffer is full and the program closes. After startup the stored traces is clear so difficult to make a trace for you.

BR Søren

Hi Tim

Desperate measure.
Reinstalled the program and seems to run now, odd . :slight_smile:
so its working for me now. Thanks for your support.

BR SB

@bovebove Wow I’m so glad that the reinstallation solved that for you!

We’d be happy to take a look at the crashes in more detail. We’re quite curious as to how those came about in the first place.

Feel free to privately send over your Machine ID to us via email using the link below:
https://contact.saleae.com/hc/en-us/requests/new

This way, we can take a look at any uploaded crash reports your PC could have sent us during the crashes.

Instructions below on getting your Machine ID info:

In any case, I’m glad to here your software is running normally now!