private void ConnectToBand() {
			if(_band != null) {
				//Don't try to connect twice
				return;
			}

			_band = new Band.Band();
			_band.ConnectionStateChanged += (s, e) => {
				BandConnectionArrow.SetConnectionStatus(e.NewState);

				if(e.NewState == Band.ConnectionState.Connected) {
					CalibrateButton.Enabled = true;
					BandConnected();
				}
			};

			_band.StartConnecting();
		}
		public override void ViewDidLoad ()
		{
			base.ViewDidLoad ();

			_calibrationData = SharedSettings.GetCalibrationData ();
			UpdateUI ();

			_band = new Band.Band ();
			var acc = _band.GetAccelerometer ();

			acc.ReadingChanged += (sender, e) => {
				_calibrationData.Calibrated = true;

				AccelXMeter.Progress = (float)(e.SensorReading.AccelerationX / 5);
				AccelYMeter.Progress = (float)(e.SensorReading.AccelerationY / 5);
				AccelZMeter.Progress = (float)(e.SensorReading.AccelerationZ / 5);

				if(e.SensorReading.AccelerationX > xMax)
					xMax = e.SensorReading.AccelerationX;
				if(e.SensorReading.AccelerationY > yMax)
					yMax = e.SensorReading.AccelerationY;
				if(e.SensorReading.AccelerationZ > zMax)
					zMax = e.SensorReading.AccelerationZ;

				var currMax = Enumerable.Max(new []{xMax, yMax, zMax});
				if(_calibrationData.CalibrationValue <= currMax)
				{
					_calibrationData.CalibrationValue = currMax;

					if(xMax > Math.Max(yMax, zMax))
						_calibrationData.CalibrationAxis = AccelerometerAxis.X;
					else if(yMax > Math.Max(xMax, zMax))
						_calibrationData.CalibrationAxis = AccelerometerAxis.Y;
					else
						_calibrationData.CalibrationAxis = AccelerometerAxis.Z;

					UpdateUI();
				}
			};

			acc.StartReadings ();
		}