diff --git a/openair1/PHY/NR_TRANSPORT/nr_pss.c b/openair1/PHY/NR_TRANSPORT/nr_pss.c
index a98687f1a2911b008622fc5c6fd54a3d22449df0..3b96e06866899c8139fd6f71ffeb33d9631d583e 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_pss.c
+++ b/openair1/PHY/NR_TRANSPORT/nr_pss.c
@@ -49,11 +49,11 @@ int nr_generate_pss(  int16_t *d_pss,
 
   for (i=0; i < NR_PSS_LENGTH; i++) {
     m = (i + 43*Nid2)%(NR_PSS_LENGTH);
-    d_pss[i] = (1 - 2*x[m]) * 768;
+    d_pss[i] = (1 - 2*x[m]) * 32767;
   }
 
 #ifdef NR_PSS_DEBUG
-  write_output("d_pss.m", "d_pss", (void*)d_pss, NR_PSS_LENGTH, 1, 3);
+  write_output("d_pss.m", "d_pss", (void*)d_pss, NR_PSS_LENGTH, 1, 1);
 #endif
 
   /// Resource mapping
@@ -78,7 +78,7 @@ int nr_generate_pss(  int16_t *d_pss,
   }
 
 #ifdef NR_PSS_DEBUG
-  write_output("pss_0.m", "pss_0", (void*)txdataF[0][2*l*frame_parms->ofdm_symbol_size], frame_parms->ofdm_symbol_size, 1, 3);
+  write_output("pss_0.m", "pss_0", (void*)txdataF[0][2*l*frame_parms->ofdm_symbol_size], frame_parms->ofdm_symbol_size, 1, 1);
 #endif
 
   return (0);
diff --git a/openair1/PHY/NR_TRANSPORT/nr_sss.c b/openair1/PHY/NR_TRANSPORT/nr_sss.c
index d58a8f6c3cb05049c399a94d02d285c3611dad7b..96325556d177215fe1a4ac866734cc58d58521ee 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_sss.c
+++ b/openair1/PHY/NR_TRANSPORT/nr_sss.c
@@ -59,11 +59,11 @@ int nr_generate_sss(  int16_t *d_sss,
   m1 = Nid1 % 112;
 
   for (i = 0; i < NR_SSS_LENGTH ; i++) {
-    d_sss[i] = (1 - 2*x0[(i + m0) % NR_SSS_LENGTH] ) * (1 - 2*x1[(i + m1) % NR_SSS_LENGTH] ) * 768;
+    d_sss[i] = (1 - 2*x0[(i + m0) % NR_SSS_LENGTH] ) * (1 - 2*x1[(i + m1) % NR_SSS_LENGTH] ) * 32767;
   }
 
 #ifdef NR_SSS_DEBUG
-  write_output("d_sss.m", "d_sss", (void*)d_sss, NR_SSS_LENGTH, 1, 3);
+  write_output("d_sss.m", "d_sss", (void*)d_sss, NR_SSS_LENGTH, 1, 1);
 #endif
 
   /// Resource mapping
@@ -87,7 +87,7 @@ int nr_generate_sss(  int16_t *d_sss,
     }
   }
 #ifdef NR_SSS_DEBUG
-  write_output("sss_0.m", "sss_0", (void*)txdataF[0][2*l*frame_parms->ofdm_symbol_size], frame_parms->ofdm_symbol_size, 1, 3);
+  write_output("sss_0.m", "sss_0", (void*)txdataF[0][2*l*frame_parms->ofdm_symbol_size], frame_parms->ofdm_symbol_size, 1, 1);
 #endif
 
   return (0);
diff --git a/openair1/SCHED_NR/defs.h b/openair1/SCHED_NR/defs.h
index 336c3cfff4af3d5a15e9b1fbc929bbb7f64236a1..17df26cac2d8f8e22edd2e8a58917423326a3dad 100644
--- a/openair1/SCHED_NR/defs.h
+++ b/openair1/SCHED_NR/defs.h
@@ -33,5 +33,17 @@
 #include "SCHED/defs.h"
 
 lte_subframe_t nr_subframe_select (nfapi_config_request_t *cfg, unsigned char subframe);
+int nr_generate_pss(  int16_t *d_pss,
+                      int32_t **txdataF,
+                      int16_t amp,
+                      uint8_t ssb_start_symbol,
+                      nfapi_config_request_t* config,
+                      NR_DL_FRAME_PARMS *frame_parms);
+int nr_generate_sss(  int16_t *d_sss,
+                      int32_t **txdataF,
+                      int16_t amp,
+                      uint8_t ssb_start_symbol,
+                      nfapi_config_request_t* config,
+                      NR_DL_FRAME_PARMS *frame_parms);
 
 #endif
diff --git a/openair1/SCHED_NR/nr_ru_procedures.c b/openair1/SCHED_NR/nr_ru_procedures.c
index b9fe29b4e89aa59dc962c0587431d958eea749a6..ee8df641c5782d17cd4c695d08ea43736a2de419 100644
--- a/openair1/SCHED_NR/nr_ru_procedures.c
+++ b/openair1/SCHED_NR/nr_ru_procedures.c
@@ -98,6 +98,12 @@ void nr_feptx_ofdm_2thread(RU_t *ru) {
 
   if (nr_subframe_select(fp,subframe) == SF_UL) return;
 
+  // this copy should be done in the precoding thread (currently inactive)
+  for (int aa=0;aa<ru->nb_tx;aa++)
+  memcpy((void*)ru->common.txdataF_BF[aa],
+   (void*)&ru->gNB_list[0]->common_vars.txdataF[aa][subframe*fp->samples_per_subframe_wCP],
+   fp->samples_per_subframe_wCP*sizeof(int32_t));
+
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM , 1 );
 
   if (nr_subframe_select(fp,subframe)==SF_DL) {
diff --git a/openair1/SCHED_NR/phy_procedures_nr_gNB.c b/openair1/SCHED_NR/phy_procedures_nr_gNB.c
index f277089c33cc361940c37ed0ae15fee71b1bc1bc..609b845cc1c50cec78995ec1b6e809c3faa82574 100644
--- a/openair1/SCHED_NR/phy_procedures_nr_gNB.c
+++ b/openair1/SCHED_NR/phy_procedures_nr_gNB.c
@@ -55,7 +55,7 @@ void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame, int subframe) {
 
   if (subframe == ss_subframe)
   {
-    LOG_I(PHY,"SS TX: frame %d, subframe %d\n",frame,subframe);
+    LOG_I(PHY,"SS TX: frame %d, subframe %d, start_symbol %d\n",frame,subframe, ssb_start_symbol);
     nr_generate_pss(gNB->d_pss, txdataF, AMP, ssb_start_symbol, cfg, fp);
     nr_generate_sss(gNB->d_sss, txdataF, AMP_OVER_2, ssb_start_symbol, cfg, fp);
   }
@@ -88,5 +88,7 @@ void phy_procedures_gNB_TX(PHY_VARS_gNB *gNB,
 
   if (nfapi_mode == 0 || nfapi_mode == 1) {
     nr_common_signal_procedures(gNB,frame, subframe);
+    //if (frame == 9)
+      //write_output("txdataF.m","txdataF",gNB->common_vars.txdataF[aa],fp->samples_per_frame_wCP, 1, 1);
   }
 }
diff --git a/targets/RT/USER/nr-ru.c b/targets/RT/USER/nr-ru.c
index 697f0ec8ede67fef63c7ea2422eb6c28bf2a73c3..5b078b2c1701c0e8724dc638c627620a87be7f77 100644
--- a/targets/RT/USER/nr-ru.c
+++ b/targets/RT/USER/nr-ru.c
@@ -814,6 +814,8 @@ void tx_rf(RU_t *ru) {
     for (i=0; i<ru->nb_tx; i++)
       txp[i] = (void*)&ru->common.txdata[i][(proc->subframe_tx*fp->samples_per_subframe)-sf_extension];
 
+    //if (proc->subframe_tx == 9)
+      //write_output("txdata_frame.m","txdata_frame",gNB->common_vars.txdata[i],fp->samples_per_frame, 1, 1);
     
     VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_TRX_TST, (proc->timestamp_tx-ru->openair0_cfg.tx_sample_advance)&0xffffffff );
     VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE, 1 );