diff --git a/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_beamformer.vhd b/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_beamformer.vhd
index 05b1eed4cada981d995f1a2c6692a4f2957acdcc..fa2c8dbc440ffbb42d7ed729b06c19e2cfc93c97 100644
--- a/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_beamformer.vhd
+++ b/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_beamformer.vhd
@@ -128,7 +128,13 @@ ARCHITECTURE str OF node_sdp_beamformer IS
   SIGNAL scope_bf_sum_sosi_arr   : t_dp_sosi_integer_arr(c_sdp_N_pol_bf-1 DOWNTO 0);
   SIGNAL scope_bf_out_sosi_arr   : t_dp_sosi_integer_arr(c_sdp_N_pol_bf-1 DOWNTO 0);
   SIGNAL beamlet_scale           : STD_LOGIC_VECTOR(c_sdp_W_beamlet_scale-1 DOWNTO 0);
+  
+  SIGNAL node_index              : NATURAL RANGE 0 TO c_sdp_N_pn_max-1 := 0;
+
 BEGIN
+
+  node_index <= TO_UINT(gn_id);
+
   ---------------------------------------------------------------
   -- Beamlet Subband Select 
   ---------------------------------------------------------------
@@ -183,7 +189,8 @@ BEGIN
     dp_clk             => dp_clk, 
     mm_rst             => mm_rst, 
     mm_clk             => mm_clk, 
-
+    
+    node_index         => node_index,
     local_bf_sosi      => local_bf_sosi, 
     from_ri_sosi       => from_ri_sosi, 
     to_ri_sosi         => to_ri_sosi, 
diff --git a/applications/lofar2/libraries/sdp/src/vhdl/sdp_beamformer_remote.vhd b/applications/lofar2/libraries/sdp/src/vhdl/sdp_beamformer_remote.vhd
index d5094cfe9d89615cf87a0042d0daddc8efe3908b..abb11bce5443ed475fbe23e8d78ed7042ed16e22 100644
--- a/applications/lofar2/libraries/sdp/src/vhdl/sdp_beamformer_remote.vhd
+++ b/applications/lofar2/libraries/sdp/src/vhdl/sdp_beamformer_remote.vhd
@@ -41,6 +41,8 @@ ENTITY sdp_beamformer_remote IS
     dp_clk      : IN  STD_LOGIC;
     dp_rst      : IN  STD_LOGIC;
 
+    node_index    : IN  NATURAL RANGE 0 TO c_sdp_N_pn_max-1 := 0;  
+
     local_bf_sosi : IN  t_dp_sosi;
     from_ri_sosi  : IN  t_dp_sosi;
     to_ri_sosi    : OUT t_dp_sosi;
@@ -162,6 +164,8 @@ BEGIN
     dp_rst     => dp_rst,             
     dp_clk     => dp_clk,             
 
+    node_index => node_index,
+
     -- Streaming input
     in_sosi_arr  => dispatch_sosi_arr,             
     out_sosi_arr => beamlets_data_sosi_arr
@@ -172,10 +176,10 @@ BEGIN
   BEGIN
     beamlets_sosi_arr(0) <= beamlets_data_sosi_arr(0);
     beamlets_sosi_arr(1) <= beamlets_data_sosi_arr(1);
-    beamlets_sosi_arr(0).re(c_sdp_W_beamlet_sum-1 DOWNTO 0) <= beamlets_data_sosi_arr(0).data(c_sdp_W_beamlet_sum -1 DOWNTO 0);
-    beamlets_sosi_arr(0).im(c_sdp_W_beamlet_sum-1 DOWNTO 0) <= beamlets_data_sosi_arr(0).data(           c_data_w -1 DOWNTO c_sdp_W_beamlet_sum); 
-    beamlets_sosi_arr(1).re(c_sdp_W_beamlet_sum-1 DOWNTO 0) <= beamlets_data_sosi_arr(1).data(c_sdp_W_beamlet_sum -1 DOWNTO 0);
-    beamlets_sosi_arr(1).im(c_sdp_W_beamlet_sum-1 DOWNTO 0) <= beamlets_data_sosi_arr(1).data(           c_data_w -1 DOWNTO c_sdp_W_beamlet_sum); 
+    beamlets_sosi_arr(0).re <= RESIZE_DP_DSP_DATA(beamlets_data_sosi_arr(0).data(c_sdp_W_beamlet_sum -1 DOWNTO 0));
+    beamlets_sosi_arr(0).im <= RESIZE_DP_DSP_DATA(beamlets_data_sosi_arr(0).data(           c_data_w -1 DOWNTO c_sdp_W_beamlet_sum)); 
+    beamlets_sosi_arr(1).re <= RESIZE_DP_DSP_DATA(beamlets_data_sosi_arr(1).data(c_sdp_W_beamlet_sum -1 DOWNTO 0));
+    beamlets_sosi_arr(1).im <= RESIZE_DP_DSP_DATA(beamlets_data_sosi_arr(1).data(           c_data_w -1 DOWNTO c_sdp_W_beamlet_sum)); 
   END PROCESS;
 
   ---------------------------------------------------------------
@@ -218,8 +222,8 @@ BEGIN
     bf_sum_sosi <= pipelined_beamlets_sosi;      -- To preserve sosi control signals as dp_complex_add removes them.
     bf_sum_data_sosi.data(c_sdp_W_beamlet_sum -1 DOWNTO 0)                   <= i_bf_sum_sosi.re(c_sdp_W_beamlet_sum-1 DOWNTO 0);
     bf_sum_data_sosi.data(           c_data_w -1 DOWNTO c_sdp_W_beamlet_sum) <= i_bf_sum_sosi.im(c_sdp_W_beamlet_sum-1 DOWNTO 0);
-    bf_sum_sosi.re(c_sdp_W_beamlet_sum-1 DOWNTO 0) <= i_bf_sum_sosi.re(c_sdp_W_beamlet_sum-1 DOWNTO 0);
-    bf_sum_sosi.im(c_sdp_W_beamlet_sum-1 DOWNTO 0) <= i_bf_sum_sosi.im(c_sdp_W_beamlet_sum-1 DOWNTO 0);
+    bf_sum_sosi.re <= RESIZE_DP_DSP_DATA(i_bf_sum_sosi.re(c_sdp_W_beamlet_sum-1 DOWNTO 0));
+    bf_sum_sosi.im <= RESIZE_DP_DSP_DATA(i_bf_sum_sosi.im(c_sdp_W_beamlet_sum-1 DOWNTO 0));
   END PROCESS;
 
   u_dp_repack_data_local : ENTITY dp_lib.dp_repack_data
diff --git a/applications/lofar2/libraries/sdp/src/vhdl/sdp_station.vhd b/applications/lofar2/libraries/sdp/src/vhdl/sdp_station.vhd
index dc4be0e0de275e94504e84764f624fa6ca8c2b87..788ce58dd3fdb02009e5f36e06dce5dfd17c056f 100644
--- a/applications/lofar2/libraries/sdp/src/vhdl/sdp_station.vhd
+++ b/applications/lofar2/libraries/sdp/src/vhdl/sdp_station.vhd
@@ -492,10 +492,10 @@ ARCHITECTURE str OF sdp_station IS
   SIGNAL fsub_sosi_arr                     : t_dp_sosi_arr(c_sdp_P_pfb-1 DOWNTO 0);  -- weighted subbands
   SIGNAL bs_sosi                           : t_dp_sosi;        
  
-  SIGNAL xst_from_ri_sosi                  : t_dp_sosi;        
-  SIGNAL xst_to_ri_sosi                    : t_dp_sosi;     
-  SIGNAL bf_from_ri_sosi_arr               : t_dp_sosi_arr(c_sdp_N_beamsets-1 DOWNTO 0);        
-  SIGNAL bf_to_ri_sosi_arr                 : t_dp_sosi_arr(c_sdp_N_beamsets-1 DOWNTO 0);    
+  SIGNAL xst_from_ri_sosi                  : t_dp_sosi := c_dp_sosi_rst;        
+  SIGNAL xst_to_ri_sosi                    : t_dp_sosi := c_dp_sosi_rst;     
+  SIGNAL bf_from_ri_sosi_arr               : t_dp_sosi_arr(c_sdp_N_beamsets-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);        
+  SIGNAL bf_to_ri_sosi_arr                 : t_dp_sosi_arr(c_sdp_N_beamsets-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);    
   SIGNAL lane_rx_cable_sosi_arr            : t_dp_sosi_arr(c_nof_lane-1 DOWNTO 0);  
   SIGNAL lane_tx_cable_sosi_arr            : t_dp_sosi_arr(c_nof_lane-1 DOWNTO 0);        
   SIGNAL lane_rx_board_sosi_arr            : t_dp_sosi_arr(c_nof_lane-1 DOWNTO 0);        
diff --git a/libraries/base/dp/src/vhdl/dp_bsn_align_v2.vhd b/libraries/base/dp/src/vhdl/dp_bsn_align_v2.vhd
index 3f83496de73c2a7b8d9d07ff013ebffd164be04a..125a82f533fd942e12b3da0f7331e7a7973881c7 100644
--- a/libraries/base/dp/src/vhdl/dp_bsn_align_v2.vhd
+++ b/libraries/base/dp/src/vhdl/dp_bsn_align_v2.vhd
@@ -118,7 +118,7 @@ ARCHITECTURE rtl OF dp_bsn_align_v2 IS
 
   TYPE t_bsn_arr IS ARRAY (INTEGER RANGE <>) OF STD_LOGIC_VECTOR(g_bsn_w-1 DOWNTO 0);
   TYPE t_channel_arr IS ARRAY (INTEGER RANGE <>) OF STD_LOGIC_VECTOR(c_channel_w-1 DOWNTO 0);
-  TYPE t_adr_arr IS ARRAY (INTEGER RANGE <>) OF STD_LOGIC_VECTOR(c_mem_ram.adr_w-1 DOWNTO 0);
+  TYPE t_adr_arr IS ARRAY (INTEGER RANGE <>) OF STD_LOGIC_VECTOR(c_ram_buf.adr_w-1 DOWNTO 0);
   TYPE t_filled_arr IS ARRAY (INTEGER RANGE <>) OF STD_LOGIC_VECTOR(c_buffer_nof_blocks-1 DOWNTO 0);
 
   -- State
@@ -136,7 +136,7 @@ ARCHITECTURE rtl OF dp_bsn_align_v2 IS
     dp_sosi              : t_dp_sosi;
     -- p_read
     rd_blk_pointer       : INTEGER;  -- use integer to detect need to wrap to natural
-    rd_offset            : STD_LOGIC_VECTOR(c_mem_ram.adr_w-1 DOWNTO 0);
+    rd_offset            : STD_LOGIC_VECTOR(c_ram_buf.adr_w-1 DOWNTO 0);
     rd_copi              : t_mem_copi;
     fill_cipo_arr        : t_mem_cipo_arr(g_nof_streams-1 DOWNTO 0);  -- used combinatorial to contain rd_cipo_arr from buffer or replacement data
     out_bsn              : STD_LOGIC_VECTOR(g_bsn_w-1 DOWNTO 0);  -- hold BSN until next sop, for easy view in Wave window
@@ -251,7 +251,7 @@ BEGIN
       -- p_write
       IF in_sosi_arr_p(I).valid = '1' THEN
         -- . increment address during block
-        v.wr_copi_arr(I).address := RESIZE_MEM_ADDRESS(INCR_UVEC(r.wr_copi_arr(I).address(c_mem_ram.adr_w-1 DOWNTO 0), 1));
+        v.wr_copi_arr(I).address := RESIZE_MEM_ADDRESS(INCR_UVEC(r.wr_copi_arr(I).address(c_ram_buf.adr_w-1 DOWNTO 0), 1));
         v.wr_copi_arr(I).wr := '1';
         v.wr_copi_arr(I).wrdata := RESIZE_MEM_SDATA(in_sosi_arr_p(I).data);
       END IF;
@@ -260,8 +260,8 @@ BEGIN
         -- . set address at start of block
         w.blk_pointer_slv := in_sosi_arr_p(I).bsn(c_blk_pointer_w-1 DOWNTO 0);
         w.product_slv := MULT_UVEC(w.blk_pointer_slv, c_block_size_slv);
-        -- . resize to c_mem_ram.adr_w
-        v.wr_copi_arr(I).address := RESIZE_MEM_ADDRESS(RESIZE_UVEC(w.product_slv, c_mem_ram.adr_w));
+        -- . resize to c_ram_buf.adr_w
+        v.wr_copi_arr(I).address := RESIZE_MEM_ADDRESS(RESIZE_UVEC(w.product_slv, c_ram_buf.adr_w));
 
         -- . set filled flag at sop, so assume rest of block will follow in time
         v.filled_arr(I)(TO_UINT(w.blk_pointer_slv)) := '1';
@@ -292,7 +292,7 @@ BEGIN
       -- . update read address of read block pointer
       w.blk_pointer_slv := TO_UVEC(v.rd_blk_pointer, c_blk_pointer_w);
       w.product_slv := MULT_UVEC(w.blk_pointer_slv, c_block_size_slv);
-      v.rd_offset := RESIZE_UVEC(w.product_slv, c_mem_ram.adr_w);
+      v.rd_offset := RESIZE_UVEC(w.product_slv, c_ram_buf.adr_w);
 
       -- . issue mm_sosi, if there is output ready to be read, indicated by filled reference block
       IF r.filled_arr(0)(v.rd_blk_pointer) = '1' THEN
@@ -343,7 +343,7 @@ BEGIN
       -- Do the output via the MM interface
       --------------------------------------------------------------------------
       -- . adjust the rd address to the current buffer output block
-      --   sum yields c_mem_ram.adr_w bits, because left operand in ADD_UVECdetermines width
+      --   sum yields c_ram_buf.adr_w bits, because left operand in ADD_UVECdetermines width
       v.rd_copi := mm_copi;
       v.rd_copi.address := RESIZE_MEM_ADDRESS(ADD_UVEC(r.rd_offset, mm_copi.address));
 
@@ -357,7 +357,7 @@ BEGIN
       -- Do the output via the DP streaming interface
       --------------------------------------------------------------------------
       -- . adjust the rd address
-      --   sum yields c_mem_ram.adr_w bits, because left operand in ADD_UVECdetermines width
+      --   sum yields c_ram_buf.adr_w bits, because left operand in ADD_UVECdetermines width
       v.rd_copi := dp_copi;
       v.rd_copi.address := RESIZE_MEM_ADDRESS(ADD_UVEC(r.rd_offset, dp_copi.address));