diff --git a/src/toolbox_scs/detectors/digitizers.py b/src/toolbox_scs/detectors/digitizers.py
index eb3ba8f53bb55fb0e1ddb95292b8e9d862c84021..3dadcb94554f8dde8c40582ccbdebf67826bd156 100644
--- a/src/toolbox_scs/detectors/digitizers.py
+++ b/src/toolbox_scs/detectors/digitizers.py
@@ -286,7 +286,8 @@ def get_peaks(run,
     if digitizer == 'ADQ412':
         min_distance = 440
     if autoFind:
-        trace = arr.isel(trainId=slice(0, 300)).mean(dim='trainId')
+        stride = int(np.max([1, np.floor(arr.sizes['trainId']/200)]))
+        trace = arr.isel(trainId=slice(0, None, stride)).mean(dim='trainId')
         try:
             integParams = find_integ_params(trace, min_distance=min_distance)
         except ValueError as err:
@@ -581,25 +582,50 @@ def get_peak_params(run, mnemonic, raw_trace=None, ntrains=200):
     if mnemonic not in run_mnemonics:
         raise ToolBoxValueError("mnemonic must be a ToolBox mnemonics")
     if "raw" not in mnemonic:
-        mnemo_raw = mnemonic.replace('peaks', 'raw').replace('apd', 'raw')
         params = channel_peak_params(run, mnemonic)
         if 'enable' in params and params['enable'] == 0:
             log.warning('The digitizer did not record peak-integrated data.')
         title = 'Digitizer peak params'
     else:
-        mnemo_raw = mnemonic
         digitizer = digitizer_type(mnemonic, run_mnemonics)
         min_distance = 24 if digitizer == "FastADC" else 440
         title = 'Auto-find peak params'
         if raw_trace is None:
-            sel = run.select_trains(np.s_[:ntrains])
-            raw_trace = sel.get_array(*run_mnemonics[mnemo_raw].values())
-            raw_trace = raw_trace.mean(dim='trainId')
+            raw_trace = get_coarse_average(run, mnemonic)
         params = find_integ_params(raw_trace, min_distance=min_distance)
     log.debug(f'{title} for {mnemonic}: {params}')
     return params
 
 
+def get_coarse_average(run, mnemonic, ntrains=200):
+    """
+    Compute the average over ntrains evenly spaced accross all trains
+    of a digitizer trace.
+
+    Parameters
+    ----------
+    run: extra_data.DataCollection
+        DataCollection containing the digitizer data.
+    mnemonic: str
+        ToolBox mnemonic of the digitizer data, e.g. 'MCP2apd'.
+    ntrains: int
+        Number of trains used to calculate the average raw trace.
+
+    Returns
+    -------
+    trace: DataArray
+        The average digitizer trace
+    """
+    run_mnemonics = mnemonics_for_run(run)
+    total_tid = len(run.train_ids)
+    stride = int(np.max([1, np.floor(total_tid/ntrains)]))
+    s = np.s_[0:None:stride]
+    sel = run.select_trains(s)
+    raw_trace = sel.get_array(*run_mnemonics[mnemonic].values())
+    raw_trace = raw_trace.mean(dim='trainId')
+    return raw_trace
+
+
 def check_peak_params(run, mnemonic, raw_trace=None, ntrains=200, params=None,
                       plot=True, show_all=False, bunchPattern='sase3'):
     """
@@ -646,9 +672,7 @@ def check_peak_params(run, mnemonic, raw_trace=None, ntrains=200, params=None,
         mnemo_raw = mnemonic.replace('peaks', 'raw').replace('apd', 'raw')
         title = 'Digitizer peak params'
     if raw_trace is None:
-        sel = run.select_trains(np.s_[:ntrains])
-        raw_trace = sel.get_array(*run_mnemonics[mnemo_raw].values())
-        raw_trace = raw_trace.mean(dim='trainId')
+        raw_trace = get_coarse_average(run, mnemonic)
     if params is None:
         params = get_peak_params(run, mnemonic, raw_trace)
     if 'enable' in params and params['enable'] == 0:
diff --git a/src/toolbox_scs/routines/knife_edge.py b/src/toolbox_scs/routines/knife_edge.py
index 1b22dc8187ba4e5f676a18ee880390d2ba7ba2ef..78ad7d52ca04a565ad846842d6a283f25209d8cc 100644
--- a/src/toolbox_scs/routines/knife_edge.py
+++ b/src/toolbox_scs/routines/knife_edge.py
@@ -15,7 +15,7 @@ __all__ = [
 
 
 def knife_edge(ds, axisKey='scannerX', signalKey='FastADC4peaks',
-               axisRange=[None, None], p0=None, full=False, plot=False,
+               axisRange=None, p0=None, full=False, plot=False,
                display=False):
     """
     Calculates the beam radius at 1/e^2 from a knife-edge scan by