diff --git a/voltha b/voltha
index dd36731..c647dc1 100755
--- a/voltha
+++ b/voltha
@@ -88,7 +88,7 @@
 VOLTHA_CHART=${VOLTHA_CHART:-onf/voltha}
 VOLTHA_CHART_VERSION=${VOLTHA_CHART_VERSION:-latest}
 VOLTHA_BBSIM_CHART=${VOLTHA_BBSIM_CHART:-onf/bbsim}
-VOLTHA_BBSIM_CHART_VERSION=${VOLTHA_BBSIM_CHART_VERSION:-latest}
+VOLTHA_BBSIM_CHART_VERSION=${VOLTHA_BBSIM_CHART_VERSION:-2.1.1}
 VOLTHA_ADAPTER_SIM_CHART=${VOLTHA_ADAPTER_SIM_CHART:-onf/voltha-adapter-simulated}
 VOLTHA_ADAPTER_SIM_CHART_VERSION=${VOLTHA_ADAPTER_SIM_CHART_VERSION:-latest}
 VOLTHA_ADAPTER_OPEN_OLT_CHART=${VOLTHA_ADAPTER_OPEN_OLT_CHART:-onf/voltha-adapter-openolt}
@@ -357,7 +357,7 @@
     exit
 fi
 
-if [ $# -ne 1 -o $(echo ":up:down:dump:" | grep -c ":$1:") -ne 1 ]; then 
+if [ $# -ne 1 -o $(echo ":up:down:dump:" | grep -c ":$1:") -ne 1 ]; then
     >&2 echo "What wouild you like to do today:"
     >&2 echo "  up   - bring up voltha"
     >&2 echo "  down - tear down voltha"
@@ -570,7 +570,7 @@
         (set -x; screen -X -S $i quit >>$LOG 2>&1) >>$LOG 2>&1
     done
     espin "$VERIFIED Remove port-forwards$CEOL"
-    exit 
+    exit
 fi
 
 if [ "$1" == "dump" ]; then
@@ -647,7 +647,7 @@
     fi
 done
 
-helm_install() { 
+helm_install() {
     local INDENT=
     if [ "$1" == "-" ]; then
         INDENT=$1; shift
@@ -826,13 +826,13 @@
     bspin - "Add Google Incubator repository to Helm"
     (set -x; helm repo add incubator https://kubernetes-charts-incubator.storage.googleapis.com >>$LOG 2>&1) >>$LOG 2>&1
     espin - $VERIFIED
-   
+
     # HACK (sort-of) - the config for tiller is about to be patched, which will
     # cause the tiller pod to be recreated. This can sometimes cause a timing
     # issue with the "wait_for_pods" call on tiller as it may incorrectly
-    # identify the running/ready tiller pod that is soon to be terminated as 
+    # identify the running/ready tiller pod that is soon to be terminated as
     # what it is waiting for. To avoid this issue we do a clean scale down and
-    # scale up of the pod so the script controlls when it should be expecting 
+    # scale up of the pod so the script controlls when it should be expecting
     # things
     (set -x; kubectl -n kube-system scale deploy tiller-deploy --replicas=0 >>$LOG 2>&1) >>$LOG 2>&1
 
@@ -845,7 +845,7 @@
     bspin - "Update Helm repository cache"
     (set -x; helm repo update >>$LOG 2>&1) >>$LOG 2>&1
     espin - $VERIFIED
-    
+
     # Create and k8s service account so that Helm can create pods
     bspin - "Create Tiller ServiceAccount"
     (set -x; kubectl create serviceaccount --namespace kube-system tiller >>$LOG 2>&1) >>$LOG 2>&1
@@ -932,7 +932,7 @@
 STIME=$(date +%s)
 bspin "Verify ETCD Operator $OLD_KEY"
 if [ $(helm list --deployed --short --namespace voltha "^etcd-operator\$" | wc -l) -ne 1 ]; then
-    espin $NOT_VERIFIED 
+    espin $NOT_VERIFIED
     helm_install - voltha etcd-operator stable/etcd-operator latest "Install ETCD Operator"
 else
     espin $VERIFIED
@@ -953,7 +953,7 @@
         espin $VERIFIED
     fi
     wait_for_pods - "default" 1 "includes" -1 "Waiting for ONOS to start" "onos-.*"
-    
+
     bspin - "Forward ONOS API port $FORWARD"
     for i in $(screen -ls | grep onos-ui-$NAME | awk '{print $1}'); do
         (set -x; screen -X -S $i quit >>$LOG 2>&1) >>$LOG 2>&1
@@ -991,7 +991,7 @@
             espin - "$NOT_VERIFIED Installing custom ONOS applications - None Found"
         fi
     fi
-  
+
     push_onos_config "Push ONOS Kafka Configuration" "network/configuration/apps/org.opencord.kafka" "onos-files/onos-kafka.json"
     push_onos_config "Push ONOS DHCP L2 Relay Configuration" "network/configuration/apps/org.opencord.dhcpl2relay" "onos-files/onos-dhcpl2relay.json"
     push_onos_config "Enable VOLTHA ONOS DHCP provisioning" "configuration/org.opencord.olt.impl.Olt" "onos-files/olt-onos-olt-settings.json"
@@ -1045,7 +1045,7 @@
         fi
         EXPECT=$(expr $EXPECT + 2)
     fi
-    
+
     if [ "$WITH_OPEN_ADAPTERS" == "yes" ]; then
         bspin - "Verify OpenOLT Adapter installed"
         if [ $(helm list --deployed --short --namespace voltha "^open-olt\$" | wc -l) -ne 1 ]; then
@@ -1063,7 +1063,7 @@
         fi
         EXPECT=$(expr $EXPECT + 2)
     fi
-    
+
     ADAPTERS="adapter-.*"
     wait_for_pods - "voltha" $EXPECT "includes" -1 "Waiting for adapters to start" $ADAPTERS
     if [ "$WITH_TIMINGS" == "yes" ]; then
@@ -1203,4 +1203,3 @@
 if [ "$WITH_TIMINGS" == "yes" ]; then
     echo -e "$CLOCK  ${BOLD}TOTAL: $(duration $(expr $(date +%s) - $TOTAL_START_TIME))${NORMAL}"
 fi
-
