diff --git a/src/osmo_gsm_tester/amarisoft_enb.py b/src/osmo_gsm_tester/amarisoft_enb.py
index 2ef713f..e4f3d64 100644
--- a/src/osmo_gsm_tester/amarisoft_enb.py
+++ b/src/osmo_gsm_tester/amarisoft_enb.py
@@ -24,7 +24,7 @@
 from . import enb
 
 def rf_type_valid(rf_type_str):
-    return rf_type_str in ('uhd')
+    return rf_type_str in ('uhd', 'zmq')
 
 #reference: srsLTE.git srslte_symbol_sz()
 def num_prb2symbol_sz(num_prb):
@@ -167,6 +167,38 @@
         self._num_cells = int(values['enb'].get('num_cells', None))
         assert self._num_cells
 
+        # We need to set some specific variables programatically here to match IP addresses:
+        if self._conf.get('rf_dev_type') == 'zmq':
+            base_srate = num_prb2base_srate(self.num_prb())
+            rf_dev_args = 'fail_on_disconnect=true' \
+                        + ',tx_port0=tcp://' + self.addr() + ':2000' \
+                        + ',tx_port1=tcp://' + self.addr() + ':2002' \
+                        + ',rx_port0=tcp://' + self.ue.addr() + ':2001' \
+                        + ',rx_port1=tcp://' + self.ue.addr() + ':2003' \
+                        + ',tx_freq=2630e6,rx_freq=2510e6,tx_freq2=2650e6,rx_freq2=2530e6' \
+                        + ',id=enb,base_srate=' + str(base_srate)
+            config.overlay(values, dict(enb=dict(sample_rate = base_srate / (1000*1000),
+                                                 rf_dev_args=rf_dev_args)))
+
+        # Set UHD frame size as a function of the cell bandwidth on B2XX
+        if self._conf.get('rf_dev_type') == 'UHD' and values['enb'].get('rf_dev_args', None) is not None:
+            if 'b200' in values['enb'].get('rf_dev_args'):
+                rf_dev_args = values['enb'].get('rf_dev_args', '')
+                rf_dev_args += ',' if rf_dev_args != '' and not rf_dev_args.endswith(',') else ''
+
+                if self._num_prb < 25:
+                    rf_dev_args += 'send_frame_size=512,recv_frame_size=512'
+                elif self._num_prb == 25:
+                    rf_dev_args += 'send_frame_size=1024,recv_frame_size=1024'
+                elif self._num_prb > 25:
+                    rf_dev_args += 'num_recv_frames=64,num_send_frames=64'
+
+                if self._num_prb > 50:
+                    # Reduce over the wire format to sc12
+                    rf_dev_args += ',otw_format=sc12'
+
+                config.overlay(values, dict(enb=dict(rf_dev_args=rf_dev_args)))
+
         logfile = self.log_file if self.setup_runs_locally() else self.remote_log_file
         config.overlay(values, dict(enb=dict(log_filename=logfile)))
 
diff --git a/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl b/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl
index fab1649..532472a 100644
--- a/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl
+++ b/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl
@@ -10,6 +10,11 @@
   },
 %endif
 
+% if enb.rf_dev_type == 'zmq':
+  /* Force sampling rate (if uncommented) */
+  sample_rate: ${enb.sample_rate},
+%endif
+
   /* Log filter: syntax: layer.field=value[,...]
 
      Possible layers are phy, mac, rlc, pdcp, rrc, nas, s1ap, x2ap, gtpu and
diff --git a/src/osmo_gsm_tester/templates/amarisoft_rf_driver.cfg.tmpl b/src/osmo_gsm_tester/templates/amarisoft_rf_driver.cfg.tmpl
index bbf9b47..466bc8f 100644
--- a/src/osmo_gsm_tester/templates/amarisoft_rf_driver.cfg.tmpl
+++ b/src/osmo_gsm_tester/templates/amarisoft_rf_driver.cfg.tmpl
@@ -1,18 +1,13 @@
-/* Parameters for b2x0 UHD device version 2018-10-18
- * Copyright (C) 2015-2018 Amarisoft
- */
 rf_driver: {
     name: "${enb.rf_dev_type}",
-    sync: "none",
+    sync: "${'1' if enb.rf_dev_type == 'zmq' else 'none'}",
 
     /* Use this for b2x0 devices. Bandwidth >= 10 Mhz */
     args: "${enb.rf_dev_args}",
-
-    /* Use this for bandwidth == 5 Mhz */
-    //args: "send_frame_size=1024,recv_frame_size=1024",
-
-    /* Use this for bandwidth < 5 Mhz */
-    //args: "send_frame_size=512,recv_frame_size=512",
+% if enb.rf_dev_type == 'zmq':
+        dl_sample_bits: 16,
+        ul_sample_bits: 16,
+% endif
 },
 
 tx_gain: 89.0, /* TX gain (in dB) B2x0: 0 to 89.8 dB */
