diff --git a/applications/apertif/commissioning/apertif_synthesize_all.sh b/applications/apertif/commissioning/apertif_synthesize_all.sh
index 9a7b85e10b0cdeb4451273e5ae051e72527198df..2dded52482b641163eaf4530b9a560291f53f3b1 100755
--- a/applications/apertif/commissioning/apertif_synthesize_all.sh
+++ b/applications/apertif/commissioning/apertif_synthesize_all.sh
@@ -1,6 +1,6 @@
 ###############################################################################
 #
-# Copyright (C) 2018
+# Copyright (C) 2019
 # ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/>
 # P.O.Box 2, 7990 AA Dwingeloo, The Netherlands
 #
@@ -20,39 +20,151 @@
 ###############################################################################
 
 # Author : Eric Kooistra
+# Purpose: Recreate FPGA images for Apertif
 # Usage  : . $RADIOHDL/applications/apertif/commissioning/apertif_synthesize_all.sh
+#            - first use DEMO_RUN = 1 to check the user settings
+#            - then use DEMO_RUN = 0 to execute the user settings
+
+################################################################################
+# User interface
+DEMO_RUN=0        # 0 is execute script, else demo run with only echo statements
+DEMO_RUN=1
+
+CLEAN=0           # 1 is clean design build dir, else reuse existing design build dir
+CLEAN=1
+
+MMM=0             # 1 is do SOPC or QSYS, else skip it
+MMM=1
+
+SYNTHESIS=0       # 1 is do synthesis, else skip it
+SYNTHESIS=1
+
+DESIGNS='apertif_unb1_bn_filterbank
+         apertif_unb1_fn_beamformer_trans
+         apertif_unb1_fn_beamformer_trans_bm6
+         apertif_unb1_correlator_full
+         apertif_unb1_correlator_full_bm6'
+         
+DESIGNS='apertif_unb1_correlator_full
+         apertif_unb1_correlator_full_bm6
+         apertif_unb1_bn_filterbank
+         apertif_unb1_fn_beamformer_trans
+         apertif_unb1_fn_beamformer_trans_bm6'
+         
+#DESIGNS='apertif_unb1_bn_filterbank'
+#DESIGNS='apertif_unb1_fn_beamformer_trans'
+#DESIGNS='apertif_unb1_fn_beamformer_trans_bm6'
+#DESIGNS='apertif_unb1_correlator_full'
+#DESIGNS='apertif_unb1_correlator_full_bm6'
+
+################################################################################
+# Create log file
+LOG_FILE=apertif_synthesize_all.log
+
+date > $LOG_FILE
+
+###############################################################################
+echo ">>> User inputs" >> $LOG_FILE
+echo ". Demo run               = $DEMO_RUN" >> $LOG_FILE
+echo ". Clean design build dir = $CLEAN" >> $LOG_FILE
+echo ". Create SOPC or QSYS    = $MMM" >> $LOG_FILE
+echo ". Do synthesis           = $SYNTHESIS" >> $LOG_FILE
+echo ". FPGA designs           =" >> $LOG_FILE
+for design in $DESIGNS; do
+  echo "      $design" >> $LOG_FILE
+done
+echo "" >> $LOG_FILE
 
-echo "Start"
 # Preparations
 cd $RADIOHDL
-svn up    # do svn up on trunk to get latest SVN revision number in image system_info
-python $RADIOHDL/tools/oneclick/base/quartus_config.py -t unb1
+echo ">>> SVN update to get revision" >> $LOG_FILE
+if [ "$DEMO_RUN" == "0" ]; then
+  svn up    # do svn up on trunk to get latest SVN revision number in image system_info
+fi
+echo "" >> $LOG_FILE
 
-## Create Sopc
-#run_sopc unb1 apertif_unb1_bn_filterbank
-#run_sopc unb1 apertif_unb1_fn_beamformer_trans
-#run_sopc unb1 apertif_unb1_fn_beamformer_trans_bm6
-#
-## Create Qsys
-#run_qsys unb1 apertif_unb1_correlator_full
-#run_qsys unb1 apertif_unb1_correlator_full_bm6
-#
-#cd $RADIOHDL/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_full
-#./qsys_delete_duplicates_full.sh
-#cd $RADIOHDL
-#
-#cd $RADIOHDL/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_full_bm6
-#./qsys_delete_duplicates_full_bm6.sh
-#cd $RADIOHDL
-
-# Do synthesis
-#run_qcomp unb1 apertif_unb1_correlator_full         --seed=1,2,3,4,5 --clk=unb1_board_clk200
-#run_qcomp unb1 apertif_unb1_correlator_full_bm6     --seed=1,2,3,4,5 --clk=unb1_board_clk200
-#run_qcomp unb1 apertif_unb1_bn_filterbank           --seed=1 --clk=unb1_board_clk200         ;run_rbf unb1 apertif_unb1_bn_filterbank
-run_qcomp unb1 apertif_unb1_fn_beamformer_trans     --seed=1 --clk=pll_afi_clk               ;run_rbf unb1 apertif_unb1_fn_beamformer_trans
-#run_qcomp unb1 apertif_unb1_fn_beamformer_trans_bm6 --seed=1 --clk=pll_afi_clk               ;run_rbf unb1 apertif_unb1_fn_beamformer_trans_bm6
-
-# Create rbf
-#run_rbf unb1 apertif_unb1_correlator_full
-#run_rbf unb1 apertif_unb1_correlator_full_bm6
-echo "Done"
+###############################################################################
+if [ "$CLEAN" == "1" ]; then
+  for design in $DESIGNS; do
+    echo ">>> Remove build dir: $design" >> $LOG_FILE
+    if [ "$DEMO_RUN" == "0" ]; then
+      echo        # avoid empty fi,fi in case rm is commented
+      rm -rf $RADIOHDL/build/unb1/quartus/$design
+    fi
+  done
+fi
+echo "" >> $LOG_FILE
+
+###############################################################################
+echo ">>> Update build dir" >> $LOG_FILE
+if [ "$DEMO_RUN" == "0" ]; then
+  python $RADIOHDL/tools/oneclick/base/quartus_config.py -t unb1
+fi
+echo "" >> $LOG_FILE
+
+###############################################################################
+if [ "$MMM" == "1" ]; then
+  for design in $DESIGNS; do
+    if [ "$design" == "apertif_unb1_bn_filterbank" ]; then
+      echo ">>> Create SOPC: $design" >> $LOG_FILE
+      if [ "$DEMO_RUN" == "0" ]; then
+        run_sopc unb1 $design
+      fi
+    fi
+    if [ "${design:0:32}" == "apertif_unb1_fn_beamformer_trans" ]; then
+      echo ">>> Create SOPC: $design" >> $LOG_FILE
+      if [ "$DEMO_RUN" == "0" ]; then
+        run_sopc unb1 $design
+      fi
+    fi
+    if [ "${design:0:28}" == "apertif_unb1_correlator_full" ]; then
+      echo ">>> Create QSYS: $design" >> $LOG_FILE
+      if [ "$DEMO_RUN" == "0" ]; then
+        run_qsys unb1 $design
+        cd $RADIOHDL/applications/apertif/designs/$design/revisions/$design
+        ./qsys_delete_duplicates_full.sh
+        cd $RADIOHDL
+      fi
+    fi
+  done
+  echo "" >> $LOG_FILE
+fi
+
+###############################################################################
+if [ "$SYNTHESIS" == "1" ]; then
+  for design in $DESIGNS; do
+    if [ "$design" == "apertif_unb1_bn_filterbank" ]; then
+      echo ">>> Do synthesis and create rbf: $design" >> $LOG_FILE
+      if [ "$DEMO_RUN" == "0" ]; then
+        run_qcomp unb1 $design --seed=1 --clk=unb1_board_clk200
+        run_rbf unb1 $design
+      fi
+    fi
+    if [ "${design:0:32}" == "apertif_unb1_fn_beamformer_trans" ]; then
+      echo ">>> Do synthesis and create rbf: $design" >> $LOG_FILE
+      if [ "$DEMO_RUN" == "0" ]; then
+        run_qcomp unb1 $design --seed=1 --clk=pll_afi_clk
+        run_rbf unb1 $design
+      fi
+    fi
+    if [ "${design:0:28}" == "apertif_unb1_correlator_full" ]; then
+      echo ">>> Do synthesis: $design" >> $LOG_FILE
+      if [ "$DEMO_RUN" == "0" ]; then
+        run_qcomp unb1 $design --seed=1,2,3,4,5 --clk=unb1_board_clk200
+        # No automatic run_rbf, do this manualy for seed with best clock speed. Procedure:
+        # . rm -rf $design active directory
+        # . rm -rf the other $design*MHz_r* that achieve < 200 MHz
+        # . cp -rp the $design*MHz_r* directory with the highest clock speed to the $design active directory
+        # . run_rbf unb1 $design
+        # . cp -p $design-r*.rbf $design*MHz_r* directory with the highest clock speed
+        # . optionally rm -rf the other $design*MHz_r* that are > 200MHz but less than the maximum achieved
+      fi
+    fi
+  done
+  echo "" >> $LOG_FILE
+fi
+
+###############################################################################
+echo "Done" >> $LOG_FILE
+
+cat $LOG_FILE