Creating Masks for Tractor

Hello,

I’m trying to create my first mask files for tractor based on modifying what our Tech in a different office has created for me to work with. I’m not finding complete documentation other than basic help files or wikis so perhaps I can ask here?

I am using a QA1.924 and Tractor 1.101 with a QA401 at both locations. Our tech has created multiple .CSV files for each of the test units in multiple settings to use to create masks with. This is currently just for frequency response masks. I haven’t started to learn others yet. I assume this works the same if I want THD vs Level, THD vs Stimulus Frequency or other types of masks.

  1. When I first try to create a mask by importing CSV test sweeps I see the results in the graph are linear and not in KHz or dB. If I run a test on the QA app first, throw those results away, then import everything looks formatted correctly. This poses a problem for offline tech work. Is there a way to set the axis to be in dB and KHz rather than linear without making a dummy import first? Or is this a bug/feature issue in the 1.924 firmware?

  2. It appears that there is no way to create a mask limit tighter than +/- 0.5dB. Is this correct? If this is the best I can do can I edit the mask file in a text editor (I see it’s just text) to be tighter than +/- 0.5dB?

  3. Can I make the limit different for + than -. Example: +1dB, -0.5dB? Seems the limit maximum box doesn’t really do anything and limit minim is symmetrical and drives the results?

  4. I don’t understand any of the boxes other than “limit minimum” they don’t seem to do anything. Can you define the “standard deviation” box, Limit Maximum, and the smoothing box?

  5. the shop floor sometimes has 60Hz issues. If I do a mask from say 20Hz to 20Khz then manually edit the mask file to cut out all the data points from 45Hz - 70Hz will this work, or will tractor just connect the dots from 45 to 70? IE are these the points it tests or points on a curve? If I want to do below 45 and above 70Hz is this two mask files?

  6. Often I don’t really care about absolute level, esp if there is a gain knob. +/-1 dB is fine, however I may need a certain flatness or know say 10KHz is 0.5dB down from 1KHz. Is there a way to have a “relative” mask rather than an absolute one?

Thank you. I know this is a lot of questions.

Hi @HawkerAMpT,

This is currently just for frequency response masks. I haven’t started to learn others yet. I assume this works the same if I want THD vs Level, THD vs Stimulus Frequency or other types of masks.

The masks just work for frequency response. For THD or THD+N, you’ll usually just have a number you want to confirm. That is, you want to know THD is better than 100 dB at 1 kHz. There’s no way using Tractor to know if 2H or 3H is culprit. For that, you’d probably need to write your test.

When I first try to create a mask by importing CSV test sweeps I see the results in the graph are linear and not in KHz or dB.

To get to a common place, let’s try this: In loopback on the QA401, I’ll sweep the frequency response at -30 dBV and apply the A weighting. That gives us something interesting to look at:

And then, run Test-Plugins AMP Frequency Response Chirp at -30 dBV three times, adding each to the same graph. That gives the following:

image

Then, I can go in and add a mask (Math->Add or Edit Mask). Here is where you can specify the limits. This defaults to 0.5 dB, but you can adjust the +/- limits to whatever you want. Here’s I’ve done 2 dB. And note I’ve also taken it down to 20 Hz.

image

The resulting display is as shown, and you can see the mask starts at 20 Hz and is following the response with a 2 dB limit on each side of the traces.

image

Now, I can do Traces->Export Mask. Let’s save as RIAA.mask.

Then open that file in a text editor, and adjust the mask opening around 60 Hz and save that as RIAA_60HzNotch.mask

image

Next, load that in the main screen (control+click on the Freq Response button). Make sure Display Pass/Fail is selected.

Now, you can see the mask we just created, with limits increased around 60 Hz to account for issues you might be experiencing on your factory floor.

So, back to your question, note the mask file below IS in Hz and amplitude in dB.

image

And you can create a mask if needed by hand:

image

Here’s what it looks like when loaded:

  1. It appears that there is no way to create a mask limit tighter than +/- 0.5dB. Is this correct? If this is the best I can do can I edit the mask file in a text editor (I see it’s just text) to be tighter than +/- 0.5dB?

Yes, in the Add/Edit mask dialog, that lower bound is 0.5. But, you can export that mask file, load it into excel, and create whatever mask you might want if you need something very tight.

  1. I don’t understand any of the boxes other than “limit minimum” they don’t seem to do anything. Can you define the “standard deviation” box, Limit Maximum, and the smoothing box?

The link below should give some more info. The smoothing filter will look over a range of N samples and smooth accordingly, You’ll see it update in real time. In well behaved yields, I don’t think it will help much.

  1. the shop floor sometimes has 60Hz issues. If I do a mask from say 20Hz to 20Khz then manually edit the mask file to cut out all the data points from 45Hz - 70Hz will this work, or will tractor just connect the dots from 45 to 70? IE are these the points it tests or points on a curve? If I want to do below 45 and above 70Hz is this two mask files?

yes, as shown above, you can create a notch in the mask if you are experiencing issues with power line.

  1. Often I don’t really care about absolute level, esp if there is a gain knob. +/-1 dB is fine, however I may need a certain flatness or know say 10KHz is 0.5dB down from 1KHz. Is there a way to have a “relative” mask rather than an absolute one?

There’s not currently a way to do this in Tractor. You’d need to write something special to allow this. But, adding your own tests to Tractor is something that should be pretty easy if you can write C#. Let me know if that’s an option.

Matt, thank you, this is all super helpful.

A few more questions if you please.
So it looks like I need to run a sweep to set the graph tools to report freq in Log KHz and Amplitude in dB as there is no way to do that in the graph tools?

Your trick to get around 50/60Hz noise seems good, but when I export a mask I get a huge jump so the only way I can seem to make it work is to interpolate the values of say 40 and 70Hz to add points. Is there a way to export in finer resolution? The jumps now are huge.
image

The estimating yields like was very helpful but it appears it mentions features and settings that have since been removed from the UI?

What would really help us is if there was a way Tractor help with calibration as test happens rather than a separate step.
Is there a way that

  1. Tractor could show the QA windows with a mask and the calibrating operator adjusts the D.U.T. gain until it fits a mask window before the test.
  2. Tractor can apply a constant tone and reads THD while an operator adjusts bias, then returns to test and prove THD and gain are in the test spec.

Right now these need to be done separately with other equipment which increases the total test time.

Lastly I take it tractor does not accept relative file paths for the mask or test image?
this means when we move the test from one computer to anouther we have to edit the paths in the tractor file. I’ve tried to use relative paths to correct this and they sometims work, but usually do not. Am I doing it wrong or is this not supported?

Thanx again

Hi @HawkerAMpT,

When the mask file is created internally, it’s stepped at a very small step (1Hz). And then, it iteratively throws out points (estimated via interpolation) to ensure the mask error falls within a target. That’s why you see such odd frequencies in the file. When the algorithm is done, it’s not a uniform step. It’s a step that is adjusted to minimize error.

But, if you are going to manually edit, you can add points whereover you wish. You can add points every 0.1 Hz if you need to.

For the bias adjustment, you can have Tractor NOT abort on test failure, and then tell it to retry 100 times upon failure. And then, the operator can tweak the pot. As soon as the trace falls inside the mask, the test will succeed and immediately move on to the next test.

Alternately, you could tweak an existing test’s source code to retry forever until the operator gets the pot right. And if the pot can’t get the DUT into the mask window, then the operator can manually fail the test.

Lastly I take it tractor does not accept relative file paths for the mask or test image?
this means when we move the test from one computer to anouther we have to edit the paths in the tractor file. I’ve tried to use relative paths to correct this and they sometims work, but usually do not. Am I doing it wrong or is this not supported?

The question with relative paths is always “relative to what?” Usually, for Windows, relative paths are relative to the EXE install location. But, Tractor will try to force that to the UserMask directory off of MyDocs. If you wanted to specify relative to that, I think it’d work (eg a subdirectory beneath that). But beyond that, it will depend on the app install location. It’s probably safer to specify an absolute path if you want to specify a directory above the UserMask. Windows has a lot of under-the-hood remapping going on around MyDocs, MyPictures, etc. And the rules aren’t always clear.

Oh Duh! The simple answer is the answer. Thanx!

As for relative to what, relative to the tractor .tractor_tp file similar to other apps. Relative to the file loaded location. It seems to work for the graphics picture but not the mask file.
IE we don’t’ wish to store the .tractor_tp in the documents folder that it now defaults to.
It’s strange that this works for the graphics guide, but not the mask files.