I have a device which uses a serial connection to a module. There is a problem where the module stops responding to commands, and stops sending its data. This can be after many hours.
What I’d like to do is capture the data with a probe, so I can see the last few transactions between the devices. Is there a way to do this in Logic 2?
The data could be up to ~40Mbytes in total over a session, but I don’t know when the fault will trigger.
If this is easily achievable I’ll be ordering a Logic Pro.
@jcurtis This is possible with our Logic Pro devices!
As for the length of a capture that’s possible in a single session, this will depend on the amount of available RAM on your PC since the device streams recorded data directly to RAM.
I ran a quick test (1 digital channel recording 115200 baud serial data) for 3 min. This consumed roughly 42 MB of RAM as reported by the software.
This can be extrapolated (not to an exact science) to equate to roughly needing 1GB of RAM per hour of recording 115200 baud serial data.
The only limitation is that our software cannot be configured to trigger when a communication fault occurs, so this will need to be manually searched for once the recording has finished and the faulty has been noticed.
In fact, you can try a demo mode of our software, which can simulate serial data being recorded. Our software can be downloaded below, and the demo mode can be used when a device is not connected:
Finally, in case it helps, when purchasing directly through our website (https://www.saleae.com/), we do offer a 180 day return policy (detailed here: Returns & Warranty | Saleae). If you find that after purchase, our device doesn’t meet any specific requirements you have, you can return your device to us for a refund.
Thanks, that’s great. My lab PC has 64Gb RAM, so no issues there. Finding the last data will be easy, as the module stops, so it will be the last data set recorded. It’s bursty packets and at 115200 this should work well. If needs be I can stop and restart the recording from time to time until the fault appears
I did order a 8 Pro today in the hope it would be possible. With enough ram I can get the tx and rx recorded to try and see what’s happening.
Just to close this off. Logic 8 Pro arrived, and is hooked recording the data. Looks to be doing exactly what I wanted it to do.
I’ve given it an 8 Gb buffer, as I’m recording from 4 devices simultaneously. Which in itself is quite handy and I can see the timings between data being sent and received. The module that locks up is a BLE radio.
Useful detail for you:
Required memory on the Logic/Logic Pro depends purely on the amount of edges in the signal when its a digital capture.
a few GB of buffer can go really far on that due to that. Buffer size mostly is a limitation on analog data and you see the ring buffer behaviour there with deletion of the oldest samples pretty fast.
To add to this comment, the digital sample rate doesn’t impact the storage size either – so you can set the rate as fast as you want to get the best precision without affecting your memory consumption. This is not true for analog, where a higher sample rate will result in more samples and thus require more memory & storage size.
Note: If you’re logging a lot of digital channels on a slower PC, it may affect the ‘pre-buffering’
as samples are acquired due to USB bandwidth/processing, but on a fast enough PC this shouldn’t be an issue.
Thanks for the comments. I went with a large buffer as I wanted to be able see hours worth of data, to track down an intermittent issue. It can happen after 5 minutes, it could happen after 4 hours. But I was recording the I/O to the radio modules on 4 devices. Enabling time correlated analysis, to look for something that could trigger the problem.
I think I’ve gathered sufficient evidence for the manufacturer to work out what is causing their module to stall or crash. I sent them Saleae capture files, which were thankfully quite small.
Also managed to put together a HLA to give me something human readable when looking at the data.