diff --git a/src/constants.h b/src/constants.h
index 58109e36bb28aa3cfc1650ce86b15421d50e4a6d..ace3e81a62700655c4ec278b6d1c14eb7452e3ec 100644
--- a/src/constants.h
+++ b/src/constants.h
@@ -51,6 +51,7 @@
 #define C_N_pol 2  // Number of antenna polarizations, X and Y.
 #define C_A_pn 6  // Number of dual polarization antennas per Processing Node (PN) FPGA.
 #define C_N_beamlets 976  // Number of beamlets per antenna band  488, 976
+#define C_N_sub_bf 488
 
 #define C_200MHZ_1_CNT_NS 5  // Time of one cnt in nS
 #define C_N_CLK_PER_PPS 200000000
diff --git a/src/fpga.cpp b/src/fpga.cpp
index 4c52ae8876276e70ca885b675af0f311bdd8258e..e89f9cc6d0743a9f0f97c2a4e0b3cf37b5ef1c04 100644
--- a/src/fpga.cpp
+++ b/src/fpga.cpp
@@ -139,8 +139,8 @@ Fpga::Fpga(list<class Node*>& nodelist, const int32_t n_beamsets):
     pointMap->add_register("FPGA_scrap_R",                                   "fpga/scrap",                                  nodes.size(), C_N_scrap, "RO", REG_FORMAT_UINT32);
     pointMap->add_register("FPGA_scrap_RW",                                  "fpga/scrap",                                  nodes.size(), C_N_scrap, "RW", REG_FORMAT_UINT32);
 
-    pointMap->add_register("FPGA_weights_R",                                 "fpga/weights",                                nodes.size(), C_S_pn*nBeamsets, "RO", REG_FORMAT_INT16);
-    pointMap->add_register("FPGA_weights_RW",                                "fpga/weights",                                nodes.size(), C_S_pn*nBeamsets, "RW", REG_FORMAT_INT16);
+    pointMap->add_register("FPGA_weights_R",                                 "fpga/weights",                                nodes.size(), C_S_pn*nBeamsets*C_N_sub_bf, "RO", REG_FORMAT_INT16);
+    pointMap->add_register("FPGA_weights_RW",                                "fpga/weights",                                nodes.size(), C_S_pn*nBeamsets*C_N_sub_bf, "RW", REG_FORMAT_INT16);
 }
 
 Fpga::~Fpga()