diff --git a/scripts/Diffraction/isis_powder/polaris_routines/polaris_advanced_config.py b/scripts/Diffraction/isis_powder/polaris_routines/polaris_advanced_config.py
index c8fb286fe01e5ed06931e90e6cfa4f5c159edc64..3a5d0c563298e5d21f03bb26dfbe37b83c60c998 100644
--- a/scripts/Diffraction/isis_powder/polaris_routines/polaris_advanced_config.py
+++ b/scripts/Diffraction/isis_powder/polaris_routines/polaris_advanced_config.py
@@ -100,10 +100,7 @@ variables = {
 
 def get_mode_specific_dict(mode):
     if mode is None:
-        raise RuntimeError("The parameter with name: 'mode' is required but "
-                           "was not set or passed.\n"
-                           "Acceptable values for this parameter are: PDF, Rietveld.")
-
+        return {"focused_cropping_values": 'auto'}
     mode = mode.lower()
     if mode == "pdf":
         return {"focused_cropping_values": pdf_focused_cropping_values}
@@ -112,7 +109,7 @@ def get_mode_specific_dict(mode):
     raise ValueError("Invalid chopper mode: \"{}\"".format(mode))
 
 
-def get_all_adv_variables(mode="PDF"):
+def get_all_adv_variables(mode=None):
     advanced_config_dict = {}
     advanced_config_dict.update(variables)
     advanced_config_dict.update(get_mode_specific_dict(mode))
diff --git a/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py b/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py
index 144d0e441ea3fa21cfb96aeb1b4bd10138c78f86..c55182a29dc3a903c109cfad46c298fcfd9e098d 100644
--- a/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py
+++ b/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py
@@ -34,6 +34,12 @@ def _get_run_numbers_for_key(current_mode_run_numbers, key):
 
 def _get_current_mode_dictionary(run_number_string, inst_settings):
     mapping_dict = get_cal_mapping_dict(run_number_string, inst_settings.cal_mapping_path)
+    if inst_settings.mode is None:
+        ws = mantid.Load('POLARIS'+run_number_string+'.nxs')
+        mode, cropping_vals = _determine_chopper_mode(ws)
+        inst_settings.mode = mode
+        inst_settings.focused_cropping_values = cropping_vals
+        mantid.DeleteWorkspace(ws)
     # Get the current mode "Rietveld" or "PDF" run numbers
     return common.cal_map_dictionary_key_helper(mapping_dict, inst_settings.mode)
 
@@ -161,3 +167,17 @@ def _read_masking_file(masking_file_path):
     if bank_masking_list:
         all_banks_masking_list.append(bank_masking_list)
     return all_banks_masking_list
+
+
+def _determine_chopper_mode(ws):
+    if ws.getRun().hasProperty('Frequency'):
+        frequency = ws.getRun()['Frequency'].lastValue()
+        print("No chopper mode provided")
+        if frequency == 50:
+            print("automatically chose Rietveld")
+            return 'Rietveld', polaris_advanced_config.rietveld_focused_cropping_values
+        if frequency == 0:
+            print("automatically chose PDF")
+            return 'PDF', polaris_advanced_config.pdf_focused_cropping_values
+    else:
+        raise ValueError("Chopper frequency not in log data. Please specify a chopper mode")
diff --git a/scripts/Diffraction/isis_powder/polaris_routines/polaris_param_mapping.py b/scripts/Diffraction/isis_powder/polaris_routines/polaris_param_mapping.py
index 30423875773d90b4e6165a679b7f2517cc7a787c..0f9b0bb316a4537f44c8e957c2080a9373e8f1b5 100644
--- a/scripts/Diffraction/isis_powder/polaris_routines/polaris_param_mapping.py
+++ b/scripts/Diffraction/isis_powder/polaris_routines/polaris_param_mapping.py
@@ -25,7 +25,7 @@ attr_mapping = \
      ParamMapEntry(ext_name="grouping_file_name",          int_name="grouping_file_name"),
      ParamMapEntry(ext_name="input_mode",                  int_name="input_mode", enum_class=INPUT_BATCHING),
      ParamMapEntry(ext_name="merge_banks",                 int_name="merge_banks"),
-     ParamMapEntry(ext_name="mode",                        int_name="mode", enum_class=POLARIS_CHOPPER_MODES),
+     ParamMapEntry(ext_name="mode",                        int_name="mode", enum_class=POLARIS_CHOPPER_MODES, optional=True),
      ParamMapEntry(ext_name="multiple_scattering",         int_name="multiple_scattering", optional=True),
      ParamMapEntry(ext_name="raw_data_cropping_values",    int_name="raw_data_crop_values"),
      ParamMapEntry(ext_name="run_number",                  int_name="run_number"),