When does this issue occurs?

- While doing icWaves acquisition in FIPy.

While doing icWaves acquisition through custom scripts using the icWaves SDK.


This originates to a known hardware issue of the icWaves, however, there are currently two software workarounds to make the trace useable for pattern triggering.


- Before the acquisition with icWaves

For FIPy and custom scripting using icWaves SDK:

For example, check the demo script demo_hardware_icwaves_acquisition_pinata.py, found in FIPyIt can also be used as reference when doing custom scripting, otherwise the icWaves SDK can be used.


Change every instance of "SamplingCoding.BYTE" to "SamplingCoding.SHORT"

This will double the size of the trace, but the trace will be correct after doing the acquisition.

When importing the trace to Inspector, then a few extra steps are needed. 

NOTE: The icWaves Device ID has to be saved in the traceset. demo_hardware_icwaves_acquisition_pinata.py script, can be used as reference. The demo script can be found in FIPy, otherwise the icWaves SDK can be used. 

  1. Right-Clik on the trace, and select "edit parameters..."
  2. On the new window, select the "TraceSet Parameters" tab and scroll down till you see the parameter name "SETUP_OSCILLOSCOPE_DEVICE_IDENTIFIER"
  3. Change the Preset from "Custom..." to "SETUP:OSCILLOSCOPE:DEVICE:ID".
  4. Save the new traceset. This is also the one that can be used for triggering.


- After the acquisition with icWaves 

Once the faulty traceset has been obtained, import it to Inspector.

  1. Download the script attached on this article.
  2. Place it your Inspector user folder, for example: C:\Users\Username\Inspector\modules
  3. While in Inspector, navigate to File>>Open User Module...>>ICWavesCorrector.java
  4. Click the "Compile and load module" button or press F9
  5. After the compilation finishes correctly. Click on the faulty traceset and navigate to User>>(default package)>>ICWavesCorrector. 
  6. Save the new traceset.

When importing the trace to Inspector, then a few extra steps are needed.

NOTE: The icWaves Device ID has to be saved in the traceset. demo_hardware_icwaves_acquisition_pinata.py script, can be used as reference. The demo script can be found in FIPy, otherwise the icWaves SDK can be used.

  1. Right-Clik on the new trace, and select "edit parameters..."
  2. On the new window, select the "TraceSet Parameters" tab and scroll down till you see the parameter name "SETUP_OSCILLOSCOPE_DEVICE_IDENTIFIER"
  3. Change the Preset from "Custom..." to "SETUP:OSCILLOSCOPE:DEVICE:ID".
  4. Save the new traceset. This is also the one that can be used for triggering.


Important Note

The SAD threshold number when using the corrected traces, can be as high as 10 times higher than the threshold level determined from the Anaysis>>Simulate icWaves SAD module.  Not a hard rule, some experimentation is needed to find the optimal value. For example:

This is the result of the "Simulate icWaves SAD" module. The result trace gives the information that a SAD threshold of 2300 and below, will be sufficient for triggering (red line and below), however, in practice, the SAD threshold needed is close to 23000. This happens because even though the shape of the signal is saved in the icWaves and reflects the shape of the real signal, on which we are trying to trigger on, the exact amplitude might have been affected, and some experimentation in finding the right SAD threshold is needed in practice.


Please, let us know in case this workaround is not working for you, or in case of further questions. 

Apologies for the inconvenience.