diff --git a/CDB/integrations/digitalbeam_cluster_ConfigDb.json b/CDB/integrations/digitalbeam_cluster_ConfigDb.json
index cdb1eb1625cdc50adef0b08e6229f3c22930673c..c45565db5ac20015829900d2b6aa895c1b3a385e 100644
--- a/CDB/integrations/digitalbeam_cluster_ConfigDb.json
+++ b/CDB/integrations/digitalbeam_cluster_ConfigDb.json
@@ -419,12 +419,6 @@
                 "DigitalBeam": {
                     "STAT/DigitalBeam/HBA0": {
                         "properties": {
-                            "AntennaField_Device": [
-                                "STAT/AntennaField/HBA0"
-                            ],
-                            "Beamlet_Device": [
-                                "STAT/Beamlet/HBA0"
-                            ],
                             "Beam_tracking_interval": [
                                 "1.0"
                             ],
@@ -438,12 +432,6 @@
                     },
                     "STAT/DigitalBeam/HBA1": {
                         "properties": {
-                            "AntennaField_Device": [
-                                "STAT/AntennaField/HBA1"
-                            ],
-                            "Beamlet_Device": [
-                                "STAT/Beamlet/HBA1"
-                            ],
                             "Beam_tracking_interval": [
                                 "1.0"
                             ],
@@ -457,12 +445,6 @@
                     },
                     "STAT/DigitalBeam/LBA": {
                         "properties": {
-                            "AntennaField_Device": [
-                                "STAT/AntennaField/LBA"
-                            ],
-                            "Beamlet_Device": [
-                                "STAT/Beamlet/LBA"
-                            ],
                             "Beam_tracking_interval": [
                                 "1.0"
                             ],
@@ -488,7 +470,7 @@
                             ],
                             "Control_Children": [
                                 "STAT/SDPFirmware/LBA",
-                                "STAT/digitalbeam/LBA",
+                                "STAT/DigitalBeam/LBA",
                                 "STAT/RECVL/L0",
                                 "STAT/RECVL/L1"
                             ],
@@ -593,108 +575,108 @@
                                 "3826989.173", "460890.761", "5064596.467",
                                 "3826990.269", "460895.632", "5064595.204"
                             ],
-                            "HBAT_PQR_rotation_angles_deg": [
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24",
-                               "24"
-                            ],
                             "PQR_to_ETRS_rotation_matrix": [
                                "-0.1195951054", "-0.7919544517", "0.5987530018",
                                " 0.9928227484", "-0.0954186800", "0.0720990002",
                                " 0.0000330969", " 0.6030782884", "0.7976820024"
+                            ],
+                            "Frequency_Band_RW_default": [
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90",
+                              "LBA_30_90", "LBA_30_90"
                             ]
                         }
                     },
@@ -911,6 +893,104 @@
                                "-0.1195951054", "-0.7919544517", "0.5987530018",
                                " 0.9928227484", "-0.0954186800", "0.0720990002",
                                " 0.0000330969", " 0.6030782884", "0.7976820024"
+                            ],
+                            "Frequency_Band_RW_default": [
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190"
                             ]
                         }
                     },
@@ -1127,6 +1207,104 @@
                                "-0.1195951054", "-0.7919544517", "0.5987530018",
                                " 0.9928227484", "-0.0954186800", "0.0720990002",
                                " 0.0000330969", " 0.6030782884", "0.7976820024"
+                            ],
+                            "Frequency_Band_RW_default": [
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190",
+                              "HBA_110_190", "HBA_110_190"
                             ]
                         }
                     }
diff --git a/CDB/stations/hba_core.json b/CDB/stations/hba_core.json
index 051bf2968c5836827c4611d4258879f37052bb7e..1fff270bbc411d8390294c19fca9dceccb04df8d 100644
--- a/CDB/stations/hba_core.json
+++ b/CDB/stations/hba_core.json
@@ -169,6 +169,32 @@
                  "5",  "5",  "3", "13", "10",  "3",
                 "12",  "2",  "7", "15",  "6", "14",
                  "7",  "5",  "7",  "9",  "0", "15"
+              ],
+              "Frequency_Band_RW_default": [
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190"
               ]
             }
           },
@@ -194,6 +220,32 @@
                  "5",  "5",  "3", "13", "10",  "3",
                 "12",  "2",  "7", "15",  "6", "14",
                  "7",  "5",  "7",  "9",  "0", "15"
+              ],
+              "Frequency_Band_RW_default": [
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190"
               ]
             }
           }
diff --git a/CDB/stations/hba_remote.json b/CDB/stations/hba_remote.json
index 1c31f41f71a0863157e5a7327a8c69253f683060..e094e2b9112a94dda37885920fb88345df5825ea 100644
--- a/CDB/stations/hba_remote.json
+++ b/CDB/stations/hba_remote.json
@@ -110,6 +110,56 @@
                  "8",  "2", "12", "13",  "9", "13",
                  "4",  "5",  "5", "12",  "5",  "5",
                  "9", "11", "15", "12",  "2", "15"
+              ],
+              "Frequency_Band_RW_default": [
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190",
+                "HBA_110_190", "HBA_110_190"
               ]
             }
           }
diff --git a/CDB/stations/lba.json b/CDB/stations/lba.json
index f0b37aed72a7d535ef4587c38580b3565a23a283..5a689fff6622b8e78ef7821b8352316645cef966 100644
--- a/CDB/stations/lba.json
+++ b/CDB/stations/lba.json
@@ -89,6 +89,104 @@
               ],
               "Antenna_Type": [
                 "LBA"
+              ],
+              "Frequency_Band_RW_default": [
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90",
+                "LBA_10_90", "LBA_10_90"
               ]
             }
           }
diff --git a/docker-compose/object-storage.yml b/docker-compose/object-storage.yml
index feebcee6b94deebecbec658ca6af7aaddad7af60..5d48af9acef8cbb6a480bf5536bb7da5548f8237 100644
--- a/docker-compose/object-storage.yml
+++ b/docker-compose/object-storage.yml
@@ -41,9 +41,15 @@ services:
       - ..:/opt/lofar/tango:rw
     entrypoint: ''
     command: >
-      sh -c "mc alias set object-storage http://object-storage:9000 $MINIO_ROOT_USER $MINIO_ROOT_PASSWORD
+      sh -c "until [ \"$(curl -s -w '%{http_code}' -o /dev/null http://object-storage:9000/minio/health/live)\" -eq \"200\" ]
+             do
+               sleep 1
+             done
+             mc alias set object-storage http://object-storage:9000 $MINIO_ROOT_USER $MINIO_ROOT_PASSWORD
              mc mb --with-versioning object-storage/caltables
-             mc cp --recursive /opt/lofar/tango/docker-compose/object-storage/caltables/ object-storage/caltables/"
+             mc cp --recursive /opt/lofar/tango/docker-compose/object-storage/caltables/ object-storage/caltables/
+             date +'%F %T'
+             echo 'Initialisation completed'"
 
 volumes:
   object-storage:
diff --git a/tangostationcontrol/integration_test/default/devices/test_device_antennafield.py b/tangostationcontrol/integration_test/default/devices/test_device_antennafield.py
index d79c50d30b744382aad905dcea75c4a2f41385ff..d7995d502e9212acf9bbe2f12b0c49eedc431932 100644
--- a/tangostationcontrol/integration_test/default/devices/test_device_antennafield.py
+++ b/tangostationcontrol/integration_test/default/devices/test_device_antennafield.py
@@ -27,13 +27,21 @@ class TestAntennaFieldDevice(AbstractTestBases.TestDeviceBase):
     def setUp(self):
         self.stationmanager_proxy = self.setup_stationmanager_proxy()
         super().setUp("STAT/AntennaField/HBA0")
+
+        # Typical tests emulate 'CS001_TILES' number of antennas in
+        # the AntennaField. 'MAX_ANTENNA' is the number of inputs
+        # offered by a backing RECV device. Each antenna has
+        # N_pol (2) inputs.
         self.proxy.put_property(
             {
                 "Power_to_RECV_mapping": numpy.array(
-                    [[1, x * 2 + 0] for x in range(MAX_ANTENNA // 2)]
+                    [[1, x * 2 + 0] for x in range(CS001_TILES)]
                 ).flatten(),
                 "Control_to_RECV_mapping": numpy.array(
-                    [[1, x * 2 + 1] for x in range(MAX_ANTENNA // 2)]
+                    [[1, x * 2 + 1] for x in range(CS001_TILES)]
+                ).flatten(),
+                "Frequency_Band_RW_default": numpy.array(
+                    [["HBA_110_190", "HBA_110_190"]] * CS001_TILES
                 ).flatten(),
             }
         )
@@ -105,9 +113,9 @@ class TestAntennaFieldDevice(AbstractTestBases.TestDeviceBase):
             numpy.array([[True] * N_rcu_inp] * N_rcu), self.recv_proxy.ANT_mask_RW
         )
 
-        antenna_qualities = numpy.array([AntennaQuality.OK] * MAX_ANTENNA)
+        antenna_qualities = numpy.array([AntennaQuality.OK] * CS001_TILES)
         antenna_use = numpy.array(
-            [AntennaUse.ON] + [AntennaUse.AUTO] * (MAX_ANTENNA - 1)
+            [AntennaUse.ON] + [AntennaUse.AUTO] * (CS001_TILES - 1)
         )
         antenna_properties = {
             "Antenna_Quality": antenna_qualities,
@@ -127,7 +135,7 @@ class TestAntennaFieldDevice(AbstractTestBases.TestDeviceBase):
 
         # Verify all antennas are indicated to work
         numpy.testing.assert_equal(
-            numpy.array([True] * MAX_ANTENNA), antennafield_proxy.Antenna_Usage_Mask_R
+            numpy.array([True] * CS001_TILES), antennafield_proxy.Antenna_Usage_Mask_R
         )
 
         # Verify only connected inputs + Antenna_Usage_Mask_R are true
@@ -154,9 +162,9 @@ class TestAntennaFieldDevice(AbstractTestBases.TestDeviceBase):
         antenna_qualities = numpy.array(
             [AntennaQuality.BROKEN]
             + [AntennaQuality.OK]
-            + [AntennaQuality.BROKEN] * (MAX_ANTENNA - 2)
+            + [AntennaQuality.BROKEN] * (CS001_TILES - 2)
         )
-        antenna_use = numpy.array([AntennaUse.AUTO] * MAX_ANTENNA)
+        antenna_use = numpy.array([AntennaUse.AUTO] * CS001_TILES)
         antenna_properties = {
             "Antenna_Quality": antenna_qualities,
             "Antenna_Use": antenna_use,
@@ -167,7 +175,7 @@ class TestAntennaFieldDevice(AbstractTestBases.TestDeviceBase):
             "Power_to_RECV_mapping": [-1, -1] * CS001_TILES,
             "Control_to_RECV_mapping":
             # [1, 0,  1, 1,  1, 2,  1, x  ...  1, 95]
-            numpy.array([[1, x] for x in range(0, MAX_ANTENNA)]).flatten(),
+            numpy.array([[1, x] for x in range(CS001_TILES)]).flatten(),
         }
 
         # Cycle device and set properties
@@ -179,18 +187,23 @@ class TestAntennaFieldDevice(AbstractTestBases.TestDeviceBase):
 
         # Antenna_Usage_Mask_R should be false except one
         numpy.testing.assert_equal(
-            numpy.array([False] + [True] + [False] * (MAX_ANTENNA - 2)),
+            numpy.array([False] + [True] + [False] * (CS001_TILES - 2)),
             antennafield_proxy.Antenna_Usage_Mask_R,
         )
         # device.power_hardware_on() writes Antenna_Usage_Mask_R to ANT_mask_RW
         numpy.testing.assert_equal(
-            numpy.array([False] + [True] + [False] * (MAX_ANTENNA - 2)),
+            numpy.array([False] + [True] + [False] * (CS001_TILES - 2)),
             antennafield_proxy.ANT_mask_RW,
         )
         # ANT_mask_RW on antennafield writes to configured recv devices for all
-        # mapped inputs
+        # mapped inputs. Unmapped values at the end remain at True.
         numpy.testing.assert_equal(
-            numpy.array([False] + [True] + [False] * (MAX_ANTENNA - 2)),
+            numpy.array(
+                [False]
+                + [True]
+                + [False] * (CS001_TILES - 2)
+                + [True] * (MAX_ANTENNA - CS001_TILES)
+            ),
             self.recv_proxy.ANT_mask_RW.flatten(),
         )
 
@@ -272,7 +285,7 @@ class TestAntennaFieldDevice(AbstractTestBases.TestDeviceBase):
             "Power_to_RECV_mapping": [-1, -1] * CS001_TILES,
             "Control_to_RECV_mapping":
             # [1, 0, 1, 1, 1, 2, 1, x ... 1, 95]
-            numpy.array([[1, x] for x in range(0, MAX_ANTENNA)]).flatten(),
+            numpy.array([[1, x] for x in range(CS001_TILES)]).flatten(),
         }
 
         antennafield_proxy = self.proxy
@@ -286,11 +299,20 @@ class TestAntennaFieldDevice(AbstractTestBases.TestDeviceBase):
 
         try:
             antennafield_proxy.write_attribute(
-                "HBAT_PWR_on_RW", [[True] * N_elements * N_pol] * MAX_ANTENNA
+                "HBAT_PWR_on_RW", [[True] * N_elements * N_pol] * CS001_TILES
             )
+
+            # Mapped values went to True
             numpy.testing.assert_equal(
-                numpy.array([[True] * N_elements * N_pol] * MAX_ANTENNA),
-                self.recv_proxy.read_attribute("HBAT_PWR_on_RW").value,
+                numpy.array([[True] * N_elements * N_pol] * CS001_TILES),
+                self.recv_proxy.read_attribute("HBAT_PWR_on_RW").value[:CS001_TILES],
+            )
+            # Unmapped values went to False
+            numpy.testing.assert_equal(
+                numpy.array(
+                    [[False] * N_elements * N_pol] * (MAX_ANTENNA - CS001_TILES)
+                ),
+                self.recv_proxy.read_attribute("HBAT_PWR_on_RW").value[CS001_TILES:],
             )
         finally:
             # Always restore recv again
@@ -306,10 +328,10 @@ class TestAntennaFieldDevice(AbstractTestBases.TestDeviceBase):
 
         mapping_properties = {
             "Power_to_RECV_mapping": numpy.array(  # X maps on power
-                [[1, x * 2 + 1] for x in range(MAX_ANTENNA // 2)]
+                [[1, x * 2 + 1] for x in range(CS001_TILES)]
             ).flatten(),
             "Control_to_RECV_mapping": numpy.array(  # Y maps on control
-                [[1, x * 2 + 0] for x in range(MAX_ANTENNA // 2)]
+                [[1, x * 2 + 0] for x in range(CS001_TILES)]
             ).flatten(),
         }
 
@@ -324,12 +346,24 @@ class TestAntennaFieldDevice(AbstractTestBases.TestDeviceBase):
             antennafield_proxy.write_attribute(
                 # [X, Y]
                 "RCU_band_select_RW",
-                [[1, 2]] * MAX_ANTENNA,
+                [[1, 2]] * CS001_TILES,
+            )
+
+            # Mapped values were overwritten
+            numpy.testing.assert_equal(
+                # [Power, Control]
+                numpy.array([2, 1] * CS001_TILES),
+                self.recv_proxy.read_attribute("RCU_band_select_RW").value.flatten()[
+                    : (CS001_TILES * 2)
+                ],
             )
+            # Unmapped values remain at 0
             numpy.testing.assert_equal(
                 # [Power, Control]
-                numpy.array([2, 1] * (MAX_ANTENNA // 2)),
-                self.recv_proxy.read_attribute("RCU_band_select_RW").value.flatten(),
+                numpy.array([0] * (MAX_ANTENNA - CS001_TILES * 2)),
+                self.recv_proxy.read_attribute("RCU_band_select_RW").value.flatten()[
+                    (CS001_TILES * 2) :
+                ],
             )
         finally:
             # Always restore recv again
diff --git a/tangostationcontrol/integration_test/default/devices/test_device_calibration.py b/tangostationcontrol/integration_test/default/devices/test_device_calibration.py
index a724432974572deee74a613b1ec20df5bd51af9c..3d9329525be4078999fd0d03f89f0b539b09d890 100644
--- a/tangostationcontrol/integration_test/default/devices/test_device_calibration.py
+++ b/tangostationcontrol/integration_test/default/devices/test_device_calibration.py
@@ -70,21 +70,30 @@ class TestCalibrationDevice(AbstractTestBases.TestDeviceBase):
     def setUp(self):
         self.stationmanager_proxy = self.setup_stationmanager_proxy()
         super().setUp("STAT/Calibration/1")
+
+        self.recv_proxy = self.setup_recv_proxy()
+        self.sdpfirmware_proxy = self.setup_sdpfirmware_proxy()
+        self.sdp_proxy = self.setup_sdp_proxy()
+
         self.antennafield_proxy = self.setup_proxy("STAT/AntennaField/HBA0")
+
+        # make sure we restore any properties we modify
+        self.original_antennafield_properties = self.antennafield_proxy.get_property(
+            self.antennafield_proxy.get_property_list("*")
+        )
+        self.addCleanup(self.restore_antennafield)
+
         self.antennafield_proxy.put_property(
             {
                 "Power_to_RECV_mapping": [1, 1, 1, 0]
                 + [-1] * ((DEFAULT_N_HBA_TILES * 2) - 4),
                 "Antenna_Sets": ["ALL"],
                 "Antenna_Set_Masks": ["1" * DEFAULT_N_HBA_TILES],
+                "Frequency_Band_RW_default": ["HBA_110_190"]
+                * (DEFAULT_N_HBA_TILES * 2),
             }
         )
-        self.recv_proxy = self.setup_recv_proxy()
-        self.sdpfirmware_proxy = self.setup_sdpfirmware_proxy()
-        self.sdp_proxy = self.setup_sdp_proxy()
-
-        self.addCleanup(self.shutdown_recv)
-        self.addCleanup(self.shutdown_sdp)
+        self.antennafield_proxy.boot()
 
         # configure the frequencies, which allows access
         # to the calibration attributes and commands
@@ -92,22 +101,7 @@ class TestCalibrationDevice(AbstractTestBases.TestDeviceBase):
         self.recv_proxy.RCU_band_select_RW = [[1] * N_rcu_inp] * N_rcu
 
     def restore_antennafield(self):
-        self.proxy.put_property(
-            {
-                "Power_to_RECV_mapping": [-1, -1] * DEFAULT_N_HBA_TILES,
-                "Control_to_RECV_mapping": [-1, -1] * DEFAULT_N_HBA_TILES,
-            }
-        )
-
-    @staticmethod
-    def shutdown_recv():
-        recv_proxy = TestDeviceProxy("STAT/RECVH/H0")
-        recv_proxy.off()
-
-    @staticmethod
-    def shutdown_sdp():
-        sdp_proxy = TestDeviceProxy("STAT/SDP/HBA0")
-        sdp_proxy.off()
+        self.proxy.put_property(self.original_antennafield_properties)
 
     @staticmethod
     def shutdown(device: str):
@@ -119,38 +113,31 @@ class TestCalibrationDevice(AbstractTestBases.TestDeviceBase):
 
     def setup_recv_proxy(self):
         # setup RECV
-        recv_proxy = TestDeviceProxy("STAT/RECVH/H0")
-        recv_proxy.off()
+        recv_proxy = self.setup_proxy("STAT/RECVH/H0")
         recv_proxy.boot()
-        recv_proxy.set_defaults()
         return recv_proxy
 
     def setup_sdpfirmware_proxy(self):
         # setup SDP
-        sdpfirmware_proxy = TestDeviceProxy("STAT/SDPFirmware/HBA0")
-        sdpfirmware_proxy.off()
+        sdpfirmware_proxy = self.setup_proxy("STAT/SDPFirmware/HBA0")
         sdpfirmware_proxy.boot()
         return sdpfirmware_proxy
 
     def setup_sdp_proxy(self):
         # setup SDP
-        sdp_proxy = TestDeviceProxy("STAT/SDP/HBA0")
-        sdp_proxy.off()
+        sdp_proxy = self.setup_proxy("STAT/SDP/HBA0")
         sdp_proxy.boot()
         return sdp_proxy
 
     def setup_proxy(self, dev: str):
-        # setup SDP
         proxy = TestDeviceProxy(dev)
         proxy.off()
-        proxy.boot()
         self.addCleanup(self.shutdown(dev))
         return proxy
 
     def setup_stationmanager_proxy(self):
         """Setup StationManager"""
-        stationmanager_proxy = TestDeviceProxy("STAT/StationManager/1")
-        stationmanager_proxy.off()
+        stationmanager_proxy = self.setup_proxy("STAT/StationManager/1")
         stationmanager_proxy.boot()
         self.assertEqual(stationmanager_proxy.state(), DevState.ON)
         return stationmanager_proxy
@@ -168,15 +155,14 @@ class TestCalibrationDevice(AbstractTestBases.TestDeviceBase):
             # [1, 48, 1, 49, x ... 1, 95]
         }
 
-        self.antennafield_proxy = self.setup_proxy("STAT/AntennaField/HBA0")
-        self.antennafield_proxy.off()
+        self.antennafield_proxy = self.setup_proxy("STAT/AntennaField/LBA")
         self.antennafield_proxy.put_property(calibration_properties)
         self.antennafield_proxy.boot()
 
         self.proxy.boot()
 
         # calibrate
-        self.proxy.calibrate_recv("STAT/AntennaField/HBA0")
+        self.proxy.calibrate_recv("STAT/AntennaField/LBA")
 
         # check the results
         rcu_attenuator_db_pwr = self.antennafield_proxy.RCU_attenuator_dB_RW[:, 0]
@@ -230,7 +216,6 @@ class TestCalibrationDevice(AbstractTestBases.TestDeviceBase):
         }
 
         self.antennafield_proxy = self.setup_proxy("STAT/AntennaField/HBA0")
-        self.antennafield_proxy.off()
         self.antennafield_proxy.put_property(calibration_properties)
         self.antennafield_proxy.boot()
 
diff --git a/tangostationcontrol/integration_test/default/devices/test_device_digitalbeam.py b/tangostationcontrol/integration_test/default/devices/test_device_digitalbeam.py
index a152c5e10a5221959d43f88f8a51099186be9b38..32c3b5666b87e407771f7ae86782d40c5ddfaf20 100644
--- a/tangostationcontrol/integration_test/default/devices/test_device_digitalbeam.py
+++ b/tangostationcontrol/integration_test/default/devices/test_device_digitalbeam.py
@@ -107,6 +107,7 @@ class TestDeviceDigitalBeam(AbstractTestBases.TestDeviceBase):
                     "1" + ("0" * (NR_TILES - 1)),
                     "1" * NR_TILES,
                 ],
+                "Antenna_Type": "HBA",
             }
         )
         antennafield_proxy.off()
diff --git a/tangostationcontrol/integration_test/digitalbeam_performance/test_digitalbeam_performance.py b/tangostationcontrol/integration_test/digitalbeam_performance/test_digitalbeam_performance.py
index 4ed1e4e4aa2cd2fc6854b11724c73a7d647daab8..8034af77013f7bb936bf75813a32baa9d6974416 100644
--- a/tangostationcontrol/integration_test/digitalbeam_performance/test_digitalbeam_performance.py
+++ b/tangostationcontrol/integration_test/digitalbeam_performance/test_digitalbeam_performance.py
@@ -54,19 +54,21 @@ class TestDigitalbeamPerformance(base.IntegrationTestCase):
             proxy.off()
             self.assertTrue(proxy.state() is DevState.OFF)
             proxy.boot()
-            proxy.set_defaults()
             self.assertTrue(proxy.state() is DevState.ON)
 
-        for n in range(1, 3):
-            proxy = antenna_field_proxies[n - 1]
+        for proxy in antenna_field_proxies:
             # setup AntennaField
             control_mapping = [[1, i] for i in range(MAX_ANTENNA)]
+            power_mapping = [[1, i] for i in range(MAX_ANTENNA)]
+            sdp_mapping = [[i // 6, i % 6] for i in range(MAX_ANTENNA)]
             antenna_qualities = numpy.array([AntennaQuality.OK] * MAX_ANTENNA)
             antenna_use = numpy.array([AntennaUse.AUTO] * MAX_ANTENNA)
             antenna_set_mask = "1" * MAX_ANTENNA
             proxy.put_property(
                 {
                     "Control_to_RECV_mapping": numpy.array(control_mapping).flatten(),
+                    "Power_to_RECV_mapping": numpy.array(power_mapping).flatten(),
+                    "Antenna_to_SDP_Mapping": numpy.array(sdp_mapping).flatten(),
                     "Antenna_Quality": antenna_qualities,
                     "Antenna_Use": antenna_use,
                     "Antenna_Sets": ["ALL"],
@@ -82,9 +84,9 @@ class TestDigitalbeamPerformance(base.IntegrationTestCase):
             proxy.off()
             self.assertTrue(proxy.state() is DevState.OFF)
             proxy.boot()
-            proxy.set_defaults()
             proxy.Tracking_enabled_RW = tracking
             self.assertTrue(proxy.state() is DevState.ON)
+            self.assertEqual(MAX_ANTENNA, proxy.nr_antennas_R)
 
         # Insert verify that all attributes have been set across
         # one another~
diff --git a/tangostationcontrol/tangostationcontrol/common/calibration.py b/tangostationcontrol/tangostationcontrol/common/calibration.py
index 9cd7d6e8f332ebfce204fa7507004729ff4bd8b0..d484c1d8762337e54e1746de4f21a63aee2d4151 100644
--- a/tangostationcontrol/tangostationcontrol/common/calibration.py
+++ b/tangostationcontrol/tangostationcontrol/common/calibration.py
@@ -53,7 +53,7 @@ class CalibrationManager:
         self._url = url
         self._station_name = station_name
         self._tmp_dir = tempfile.TemporaryDirectory(ignore_cleanup_errors=True)
-        self.bucket_name = "caltabules"
+        self.bucket_name = "caltables"
         self.prefix = self._station_name
         self._init_minio()
         self.sync_calibration_tables()
@@ -66,6 +66,8 @@ class CalibrationManager:
         if len(bucket_name) > 0:
             self.bucket_name = bucket_name
 
+        logger.info(f"Derived {self.prefix=} {self.bucket_name=} from {self._url=}")
+
         self._storage = Minio(
             result.netloc,
             access_key=os.getenv("MINIO_ROOT_USER"),
@@ -82,11 +84,18 @@ class CalibrationManager:
         objects = self._storage.list_objects(self.bucket_name, prefix=f"{self.prefix}/")
         for obj in objects:
             filename = os.path.basename(obj.object_name)
-            self._storage.fget_object(
-                self.bucket_name,
-                obj.object_name,
-                os.path.join(self._tmp_dir.name, filename),
-            )
+            try:
+                self._storage.fget_object(
+                    self.bucket_name,
+                    obj.object_name,
+                    os.path.join(self._tmp_dir.name, filename),
+                )
+            except Exception as ex:
+                raise IOError(
+                    f"Failed to download {self.bucket=} {obj.object_name=}"
+                ) from ex
+
+            logger.info(f"Downloaded {filename} from {obj.object_name}")
 
     @staticmethod
     def _band_to_reference_frequency(is_hba, rcu_band):
diff --git a/tangostationcontrol/tangostationcontrol/devices/antennafield.py b/tangostationcontrol/tangostationcontrol/devices/antennafield.py
index 65906ae4b0e30b6f40e523a8f168e1ecf41b8ad8..37309355de3390a6791d60d060b5df5ec0dd93e3 100644
--- a/tangostationcontrol/tangostationcontrol/devices/antennafield.py
+++ b/tangostationcontrol/tangostationcontrol/devices/antennafield.py
@@ -355,6 +355,13 @@ class AntennaField(LOFARDevice):
         default_value=[-1] * MAX_ANTENNA * 2,
     )
 
+    # ----- Defaults
+
+    Frequency_Band_RW_default = device_property(
+        dtype=(str,),
+        mandatory=False,
+    )
+
     # ----- Generic information
 
     Antenna_Type_R = attribute(
diff --git a/tangostationcontrol/tangostationcontrol/devices/base_device_classes/lofar_device.py b/tangostationcontrol/tangostationcontrol/devices/base_device_classes/lofar_device.py
index 116cd4299e287d4122999282f8f2977fe85a732a..61ac4db5663ea7873948faa97404fe665e250dff 100644
--- a/tangostationcontrol/tangostationcontrol/devices/base_device_classes/lofar_device.py
+++ b/tangostationcontrol/tangostationcontrol/devices/base_device_classes/lofar_device.py
@@ -469,6 +469,13 @@ class LOFARDevice(Device):
             try:
                 default_value = getattr(self, f"{name}_default")
 
+                if default_value is None:
+                    # Attribute allows a default setting, but none
+                    # is configured (f.e. because mandatory=False
+                    # and no useful default exists that can be
+                    # provided in the code). Just skip this attribute.
+                    continue
+
                 # properties are always 0D or 1D, but arrays can be 2D.
                 # in the latter case, we need to reshape the default.
                 attr = getattr(self, name)
@@ -476,9 +483,12 @@ class LOFARDevice(Device):
 
                 if max_dim_y > 1:
                     # 2D array -> reshape 1D default
-                    default_value = numpy.array(default_value).reshape(
-                        max_dim_y, max_dim_x
-                    )
+                    # This is needed because Tango properties cannot be 2D, so we
+                    # cannot specify them in their actual shape.
+                    #
+                    # We assume the length of the y dimension to be variable,
+                    # as some attributes (and thus defaults) have a varying size.
+                    default_value = numpy.array(default_value).reshape(-1, max_dim_x)
 
                 # set the attribute to the configured default. Shorten after 150 characters
                 logger.debug(
diff --git a/tangostationcontrol/tangostationcontrol/devices/calibration.py b/tangostationcontrol/tangostationcontrol/devices/calibration.py
index b295a47bce3be34d6d3ae170135e02c93385cd97..df7c1ec31a3b50be659989098addc3f40c824502 100644
--- a/tangostationcontrol/tangostationcontrol/devices/calibration.py
+++ b/tangostationcontrol/tangostationcontrol/devices/calibration.py
@@ -16,6 +16,7 @@ from tangostationcontrol.common.calibration import (
     calibrate_RCU_attenuator_dB,
     calibrate_input_samples_delay,
 )
+from tangostationcontrol.common.case_insensitive_dict import CaseInsensitiveDict
 from tangostationcontrol.common.entrypoint import entry
 from tangostationcontrol.common.lofar_logging import (
     device_logging_to_python,
@@ -41,29 +42,31 @@ class Calibration(LOFARDevice):
     def __init__(self, cl, name):
         self._calibration_manager: CalibrationManager = None
         self.event_subscriptions: list = []
-        self.sdpfirmware_proxies: dict = {}
-        self.sdp_proxies: dict = {}
-        self.ant_proxies: dict = {}
-        self.last_ant_calibration_timestamp: dict[str, datetime.datetime | None] = {}
+        self.sdpfirmware_proxies: CaseInsensitiveDict = CaseInsensitiveDict()
+        self.sdp_proxies: CaseInsensitiveDict = CaseInsensitiveDict()
+        self.ant_proxies: CaseInsensitiveDict = CaseInsensitiveDict()
+        self.last_ant_calibration_timestamp: CaseInsensitiveDict[
+            str, datetime.datetime | None
+        ] = CaseInsensitiveDict()
 
         # Super must be called after variable assignment due to executing init_device!
         super().__init__(cl, name)
 
-    def _calibrate_antenna_field(self, ant_proxy):
+    def _calibrate_antenna_field(self, device):
         """Recalibrate a specific AntennaField."""
 
+        ant_proxy = self.ant_proxies[device]
+
         if ant_proxy.state() not in DEFAULT_COMMAND_STATES:
-            logger.warning(
-                f"Device {ant_proxy.name()} not active. Forgoing calibration."
-            )
+            logger.warning(f"Device {device} not active. Forgoing calibration.")
             return
 
-        logger.info("Re-calibrate antenna field %s", ant_proxy.name())
+        logger.info("Re-calibrate antenna field %s", device)
 
-        self.last_ant_calibration_timestamp[ant_proxy] = datetime.datetime.now()
+        self.last_ant_calibration_timestamp[device] = datetime.datetime.now()
 
-        self.calibrate_recv(ant_proxy)
-        self.calibrate_sdp(ant_proxy)
+        self.calibrate_recv(device)
+        self.calibrate_sdp(device)
 
     @log_exceptions()
     def _antennafield_changed_event(self, event):
@@ -86,7 +89,7 @@ class Calibration(LOFARDevice):
             return
 
         # frequencies changed, so we need to recalibrate
-        self._calibrate_antenna_field(event.device)
+        self._calibrate_antenna_field(event.device.name())
 
     @log_exceptions()
     def _clock_changed_event(self, event):
@@ -109,7 +112,7 @@ class Calibration(LOFARDevice):
 
         for k, ant in self.ant_proxies.items():
             # Recalibrate associated AntennaFields
-            sdpfirmware_device = ant.SDPFirmware_device_R.casefold()
+            sdpfirmware_device = ant.SDPFirmware_device_R
             sdp_device = self.sdpfirmware_proxies[sdpfirmware_device].SDP_device_R
 
             if device_name_matches(sdp_device, event.device.name()):
@@ -172,9 +175,6 @@ class Calibration(LOFARDevice):
             antennafield.RCU_band_select_RW
         """
 
-        # sanitize device name
-        device = device.casefold()
-
         # -----------------------------------------------------------
         #   Set signal-input attenuation to compensate for
         #   differences in cable length.
@@ -196,14 +196,11 @@ class Calibration(LOFARDevice):
             antennafield.RCU_band_select_RW
         """
 
-        # sanitize device name
-        device = device.casefold()
-
         if device not in self.ant_proxies:
             raise ValueError(f"Could not find {device} in {self.ant_proxies}")
 
         ant_proxy = self.ant_proxies[device]
-        sdpfirmware_device = str(ant_proxy.SDPFirmware_device_R).casefold()
+        sdpfirmware_device = ant_proxy.SDPFirmware_device_R
 
         if sdpfirmware_device not in self.sdpfirmware_proxies:
             raise ValueError(
@@ -212,7 +209,7 @@ class Calibration(LOFARDevice):
 
         sdpfirmware_proxy = self.sdpfirmware_proxies[sdpfirmware_device]
 
-        sdp_device = str(sdpfirmware_proxy.SDP_device_R).casefold()
+        sdp_device = sdpfirmware_proxy.SDP_device_R
 
         if sdp_device not in self.sdp_proxies:
             raise ValueError(f"Could not find {sdp_device} in {self.sdp_proxies}")
@@ -248,21 +245,22 @@ class Calibration(LOFARDevice):
         db = Database()
         devices = db.get_device_exported_for_class(AntennaField.__name__)
         for d in devices:
-            logger.debug("found antenna field device %s", str(d))
-        self.ant_proxies = {d.casefold(): create_device_proxy(d) for d in devices}
-        self.last_ant_calibration_timestamp = {d.casefold(): None for d in devices}
+            logger.debug(f"Found antenna field device {d}")
+
+            self.ant_proxies[d] = create_device_proxy(d)
+            self.last_ant_calibration_timestamp[d] = None
 
         devices = db.get_device_exported_for_class(SDPFirmware.__name__)
         for d in devices:
-            logger.debug("found SDP firmware device %s", str(d))
-        self.sdpfirmware_proxies = {
-            d.casefold(): create_device_proxy(d) for d in devices
-        }
+            logger.debug(f"Dound SDP firmware device {d}")
+
+            self.sdpfirmware_proxies[d] = create_device_proxy(d)
 
         devices = db.get_device_exported_for_class(SDP.__name__)
         for d in devices:
-            logger.debug("found SDP device %s", str(d))
-        self.sdp_proxies = {d.casefold(): create_device_proxy(d) for d in devices}
+            logger.debug(f"Found SDP device {d}")
+
+            self.sdp_proxies[d] = create_device_proxy(d)
 
         # subscribe to events to notice setting changes in SDP that determine the
         # input frequency