diff --git a/examples/trigger.c b/examples/trigger.c
index ab7159c2606f619863b748d819cdbc313b04fcb4..debe34dc1073f2b8c7d98de5c33591dd0c71b972 100644
--- a/examples/trigger.c
+++ b/examples/trigger.c
@@ -32,12 +32,14 @@ static struct option long_options[] =
     {"rcvsel",              required_argument,   NULL, 'p'},
     {"transmsrc",           required_argument,   NULL, 't'},
     {"transsel",            required_argument,   NULL, 'u'},
+    {"rcvlen",              required_argument,   NULL, 'l'},
+    {"trnlen",              required_argument,   NULL, 'm'},
     {"dir",                 required_argument,   NULL, 'd'},
     {"dirpol",              required_argument,   NULL, 'x'},
     {NULL, 0, NULL, 0}
 };
 
-static const char* shortopt = "hb:vo:s:c:r:p:t:u:d:x:";
+static const char* shortopt = "hb:vo:s:c:r:p:t:u:l:m:d:x:";
 
 void print_help (char *program_name)
 {
@@ -63,6 +65,9 @@ void print_help (char *program_name)
             "  -p  --rcvsel <Receive selection source for the selected channel = [TBD]> \n"
             "  -t  --transmsrc <Transmit source for the selected channel = [0 = trigger backplane, 1 = FPGA internal]> \n"
             "  -u  --transmsel <Transmit selection source for the selected channel = [TBD]> \n"
+            "  -l  --rcvlen <Receive debounce length> \n"
+
+            "  -m  --trnlen <Transmit extension length> \n"
             "  -d  --dir <Trigger direction = [0 = FPGA Output, 1 = FPGA Input]> \n"
             "  -x  --dirpol <Trigger direction polarity = [0 = Polarity unchanged, 1 = Polarity reversed]> \n",
             program_name);
@@ -85,6 +90,10 @@ int main (int argc, char *argv [])
     int transmsrc_sel = 0;
     char *transmsel_str = NULL;
     int transmsel_sel = 0;
+    char *rcvlen_str = NULL;
+    int rcvlen_sel = 0;
+    char *trnlen_str = NULL;
+    int trnlen_sel = 0;
     char *dir_str = NULL;
     int dir_sel = 0;
     char *dirpol_str = NULL;
@@ -141,6 +150,16 @@ int main (int argc, char *argv [])
                 transmsel_sel = 1;
                 break;
 
+            case 'l':
+                rcvlen_str = strdup (optarg);
+                rcvlen_sel = 1;
+                break;
+
+            case 'm':
+                trnlen_str = strdup (optarg);
+                trnlen_sel = 1;
+                break;
+
             case 'd':
                 dir_str = strdup (optarg);
                 dir_sel = 1;
@@ -285,6 +304,26 @@ int main (int argc, char *argv [])
             }
         }
 
+        uint32_t rcvlen = 0;
+        if (rcvlen_sel == 1) {
+            rcvlen = strtoul (rcvlen_str, NULL, 10);
+            bpm_client_err_e err = bpm_set_trigger_rcv_len (bpm_client, service_iface, chan, rcvlen);
+            if (err != BPM_CLIENT_SUCCESS){
+                fprintf (stderr, "[client:trigger]: bpm_set_trigger_rcv_len failed\n");
+                goto err_bpm_set;
+            }
+        }
+
+        uint32_t trnlen = 0;
+        if (trnlen_sel == 1) {
+            trnlen = strtoul (trnlen_str, NULL, 10);
+            bpm_client_err_e err = bpm_set_trigger_transm_len (bpm_client, service_iface, chan, trnlen);
+            if (err != BPM_CLIENT_SUCCESS){
+                fprintf (stderr, "[client:trigger]: bpm_set_trigger_transm_len failed\n");
+                goto err_bpm_set;
+            }
+        }
+
         uint32_t dir = 0;
         if (dir_sel == 1) {
             dir = strtoul (dir_str, NULL, 10);
@@ -312,6 +351,10 @@ err_bpm_client_new:
     dirpol_str = NULL;
     free (dir_str);
     dir_str = NULL;
+    free (trnlen_str);
+    trnlen_str = NULL;
+    free (rcvlen_str);
+    rcvlen_str = NULL;
     free (transmsel_str);
     transmsel_str = NULL;
     free (transmsrc_str);