diff --git a/PM_Notes.md b/PM_Notes.md
index ecabc17..e0a6ba5 100644
--- a/PM_Notes.md
+++ b/PM_Notes.md
@@ -146,12 +146,27 @@
 
 Note2: default sample rate is applicable only if frequency override is false
 
+Note3 : The `frequency` has to be greater than 0 and a multiple of _FrequencyGranularity_ which is currently set to 5.
+
 ### Disable a group metric
 
 ```
 voltctl device pmconfig group disable <onu-device-id> <group-name>
 ```
 
+### Enable a group metric
+
+```
+voltctl device pmconfig group enable <onu-device-id> <group-name>
+```
+
+### Set group frequency
+
+```
+voltctl device pmconfig group set <frequency> <onu-device-id> <group-name>
+```
+Note1 : The `frequency` has to be greater than 0 and a multiple of _FrequencyGranularity_ which is currently set to 5.
+
 ### Listen for KPI events on kafka
 
 ```
diff --git a/VERSION b/VERSION
index 8869ce2..ba0e451 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.1.1-dev
+1.1.1-dev159
diff --git a/internal/pkg/config/config.go b/internal/pkg/config/config.go
index 59b8da6..9ceca40 100644
--- a/internal/pkg/config/config.go
+++ b/internal/pkg/config/config.go
@@ -63,6 +63,8 @@
 	defaultTraceEnabled          = false
 	defaultTraceAgentAddress     = "127.0.0.1:6831"
 	defaultLogCorrelationEnabled = true
+
+	defaultMetricsEnabled = false
 )
 
 // AdapterFlags represents the set of configurations used by the read-write adaptercore service
@@ -99,6 +101,7 @@
 	TraceAgentAddress           string
 	LogCorrelationEnabled       bool
 	OnuVendorIds                string
+	MetricsEnabled              bool
 }
 
 // NewAdapterFlags returns a new RWCore config
@@ -135,6 +138,7 @@
 		TraceAgentAddress:           defaultTraceAgentAddress,
 		LogCorrelationEnabled:       defaultLogCorrelationEnabled,
 		OnuVendorIds:                defaultOnuVendorIds,
+		MetricsEnabled:              defaultMetricsEnabled,
 	}
 	return &adapterFlags
 }
@@ -233,6 +237,9 @@
 	help = fmt.Sprintf("List of Allowed ONU Vendor Ids")
 	flag.StringVar(&(so.OnuVendorIds), "allowed_onu_vendors", defaultOnuVendorIds, help)
 
+	help = fmt.Sprintf("Whether to enable metrics collection")
+	flag.BoolVar(&(so.MetricsEnabled), "metrics_enabled", defaultMetricsEnabled, help)
+
 	flag.Parse()
 	containerName := getContainerInfo()
 	if len(containerName) > 0 {
diff --git a/internal/pkg/onuadaptercore/device_handler.go b/internal/pkg/onuadaptercore/device_handler.go
index 7405f20..bc8a185 100644
--- a/internal/pkg/onuadaptercore/device_handler.go
+++ b/internal/pkg/onuadaptercore/device_handler.go
@@ -256,7 +256,8 @@
 			logger.Errorw(ctx, "Device FSM: Can't go to state DeviceInit", log.Fields{"err": err})
 		}
 		logger.Debugw(ctx, "Device FSM: ", log.Fields{"state": string(dh.pDeviceStateFsm.Current())})
-		if device.PmConfigs == nil { // device.PmConfigs is not nil in cases when adapter restarts. We should not re-set the core again.
+		// device.PmConfigs is not nil in cases when adapter restarts. We should not re-set the core again.
+		if device.PmConfigs == nil {
 			// Now, set the initial PM configuration for that device
 			if err := dh.coreProxy.DevicePMConfigUpdate(ctx, dh.pmConfigs); err != nil {
 				logger.Errorw(ctx, "error updating pm config to core", log.Fields{"device-id": dh.deviceID, "err": err})
@@ -1542,7 +1543,8 @@
 			}
 		}
 	}
-	// Stop collector routine for PM Counters
+
+	// Stop collector routine
 	dh.stopCollector <- true
 
 	return nil
@@ -2587,7 +2589,7 @@
 	// Check if standalone metric related config is updated
 	for _, v := range pmConfigs.Metrics {
 		dh.pOnuMetricsMgr.onuMetricsManagerLock.RLock()
-		m, ok := dh.pOnuMetricsMgr.groupMetricMap[v.Name]
+		m, ok := dh.pOnuMetricsMgr.standaloneMetricMap[v.Name]
 		dh.pOnuMetricsMgr.onuMetricsManagerLock.RUnlock()
 
 		if ok && m.frequency != v.SampleFreq {
@@ -2625,9 +2627,9 @@
 				// If the current time is eqaul to or greater than the nextGlobalMetricCollectionTime, collect the group and standalone metrics
 				if time.Now().Equal(dh.pOnuMetricsMgr.nextGlobalMetricCollectionTime) || time.Now().After(dh.pOnuMetricsMgr.nextGlobalMetricCollectionTime) {
 					go dh.pOnuMetricsMgr.collectAllGroupAndStandaloneMetrics(ctx)
+					// Update the next metric collection time.
+					dh.pOnuMetricsMgr.nextGlobalMetricCollectionTime = time.Now().Add(time.Duration(dh.pmConfigs.DefaultFreq) * time.Second)
 				}
-				// Update the next metric collection time.
-				dh.pOnuMetricsMgr.nextGlobalMetricCollectionTime = time.Now().Add(time.Duration(dh.pmConfigs.DefaultFreq) * time.Second)
 			} else {
 				if dh.pmConfigs.Grouped { // metrics are managed as a group
 					// parse through the group and standalone metrics to see it is time to collect their metrics
diff --git a/internal/pkg/onuadaptercore/onu_metrics_manager.go b/internal/pkg/onuadaptercore/onu_metrics_manager.go
index 4316186..68c628c 100644
--- a/internal/pkg/onuadaptercore/onu_metrics_manager.go
+++ b/internal/pkg/onuadaptercore/onu_metrics_manager.go
@@ -135,7 +135,7 @@
 		}
 		opticalPowerGroupMetric := voltha.PmGroupConfig{
 			GroupName: OpticalPowerGroupMetricName,
-			Enabled:   OpticalPowerGroupMetricEnabled,
+			Enabled:   OpticalPowerGroupMetricEnabled && dh.pOpenOnuAc.metricsEnabled,
 			GroupFreq: OpticalPowerMetricGroupCollectionFrequency,
 			Metrics:   opPmConfigSlice,
 		}
@@ -148,7 +148,7 @@
 		}
 		uniStatusGroupMetric := voltha.PmGroupConfig{
 			GroupName: UniStatusGroupMetricName,
-			Enabled:   UniStatusGroupMetricEnabled,
+			Enabled:   UniStatusGroupMetricEnabled && dh.pOpenOnuAc.metricsEnabled,
 			GroupFreq: UniStatusMetricGroupCollectionFrequency,
 			Metrics:   uniStPmConfigSlice,
 		}
@@ -220,7 +220,7 @@
 
 func (mm *onuMetricsManager) updateDefaultFrequency(ctx context.Context, pmConfigs *voltha.PmConfigs) error {
 	// Verify that the configured DefaultFrequency is > 0 and is a multiple of FrequencyGranularity
-	if pmConfigs.DefaultFreq == 0 && pmConfigs.DefaultFreq%FrequencyGranularity != 0 {
+	if pmConfigs.DefaultFreq == 0 || (pmConfigs.DefaultFreq > 0 && pmConfigs.DefaultFreq%FrequencyGranularity != 0) {
 		logger.Errorf(ctx, "frequency-%u-should-be-a-multiple-of-%u", pmConfigs.DefaultFreq, FrequencyGranularity)
 		return fmt.Errorf("frequency-%d-should-be-a-multiple-of-%d", pmConfigs.DefaultFreq, FrequencyGranularity)
 	}
@@ -238,11 +238,14 @@
 	var group *voltha.PmGroupConfig
 	for groupSliceIdx, group = range pmConfigs.Groups {
 		if group.GroupName == aGroupName {
-			if group.GroupFreq != 0 { // freq 0 not allowed
-				newGroupFreq = group.GroupFreq
-				found = true
-				break
+			// freq 0 is not allowed and it should be multiple of FrequencyGranularity
+			if group.GroupFreq == 0 || (group.GroupFreq > 0 && group.GroupFreq%FrequencyGranularity != 0) {
+				logger.Errorf(ctx, "frequency-%u-should-be-a-multiple-of-%u", group.GroupFreq, FrequencyGranularity)
+				return fmt.Errorf("frequency-%d-should-be-a-multiple-of-%d", group.GroupFreq, FrequencyGranularity)
 			}
+			newGroupFreq = group.GroupFreq
+			found = true
+			break
 		}
 	}
 	// if not found update group freq and next collection interval for the group
@@ -255,7 +258,7 @@
 	mm.onuMetricsManagerLock.Lock()
 	defer mm.onuMetricsManagerLock.Unlock()
 	for k, v := range mm.groupMetricMap {
-		if k == aGroupName && newGroupFreq != 0 { // freq 0 not allowed
+		if k == aGroupName {
 			v.frequency = newGroupFreq
 			// update internal pm config
 			mm.pDeviceHandler.pmConfigs.Groups[groupSliceIdx].GroupFreq = newGroupFreq
@@ -279,11 +282,14 @@
 	var metric *voltha.PmConfig
 	for metricSliceIdx, metric = range pmConfigs.Metrics {
 		if metric.Name == aMetricName {
-			if metric.SampleFreq != 0 { // freq 0 not allowed
-				newMetricFreq = metric.SampleFreq
-				found = true
-				break
+			// freq 0 is not allowed and it should be multiple of FrequencyGranularity
+			if metric.SampleFreq == 0 || (metric.SampleFreq > 0 && metric.SampleFreq%FrequencyGranularity != 0) {
+				logger.Errorf(ctx, "frequency-%u-should-be-a-multiple-of-%u", metric.SampleFreq, FrequencyGranularity)
+				return fmt.Errorf("frequency-%d-should-be-a-multiple-of-%d", metric.SampleFreq, FrequencyGranularity)
 			}
+			newMetricFreq = metric.SampleFreq
+			found = true
+			break
 		}
 	}
 	if !found {
@@ -295,7 +301,7 @@
 	mm.onuMetricsManagerLock.Lock()
 	defer mm.onuMetricsManagerLock.Unlock()
 	for k, v := range mm.groupMetricMap {
-		if k == aMetricName && newMetricFreq != 0 {
+		if k == aMetricName {
 			v.frequency = newMetricFreq
 			// update internal pm config
 			mm.pDeviceHandler.pmConfigs.Metrics[metricSliceIdx].SampleFreq = newMetricFreq
diff --git a/internal/pkg/onuadaptercore/openonu.go b/internal/pkg/onuadaptercore/openonu.go
index 2bfb3c9..e933173 100644
--- a/internal/pkg/onuadaptercore/openonu.go
+++ b/internal/pkg/onuadaptercore/openonu.go
@@ -68,6 +68,7 @@
 	pSupportedFsms             *OmciDeviceFsms
 	maxTimeoutInterAdapterComm time.Duration
 	pDownloadManager           *adapterDownloadManager
+	metricsEnabled             bool
 }
 
 //NewOpenONUAC returns a new instance of OpenONU_AC
@@ -98,6 +99,7 @@
 	openOnuAc.AcceptIncrementalEvto = cfg.AccIncrEvto
 	openOnuAc.maxTimeoutInterAdapterComm = cfg.MaxTimeoutInterAdapterComm
 	//openOnuAc.GrpcTimeoutInterval = cfg.GrpcTimeoutInterval
+	openOnuAc.metricsEnabled = cfg.MetricsEnabled
 
 	openOnuAc.pSupportedFsms = &OmciDeviceFsms{
 		"mib-synchronizer": {
