protected void StartNetworkServices(CloudMode cloudMode = CloudMode.MQTT)
        {
            if (cloudMode == CloudMode.None) { return; }

            ConfigurationManager.CloudConnection = cloudMode;
            bool connected = true;
            Util.StartNtpTimeService();  // this is a hack workaround for system time sync issue on W10 for IoT
            sm = Util.StartNetworkServices(connected);
        }
        public void Initialise(string name, CloudMode cloudMode = CloudMode.None, bool initHat = false)
        {

            if (initHat)
            {
                Adc = new MCP3002();
                matrix = new LED8x8Matrix(new Ht16K33());
                bmp280TempPressure = new BMP280Sensor() { SampleRateMilliseconds = 30000 };

                InitialiseHat();
            }

            Util.SetName(name);
            SensorMgr.DeviceName = Util.GetHostName();

            StartNetworkServices(cloudMode);
        }
        protected async void Initialise(string yourName = "Maker", CloudMode cloudMode = CloudMode.None)
        {
            Util.SetName(yourName);
            SensorMgr.DeviceName = Util.GetHostName();

            StartNetworkServices(cloudMode);

            InitialiseHatAsync(false, true, false).Wait();

            // for now not using the adc on the explorer hat as it's set to 3.3volts
            adcManager.Providers.Add(new ADS1015(Glovebox.IoT.Devices.Converters.ADS1015.Gain.Volt5));
            ADS1015 = (await adcManager.GetControllersAsync())[0];

            ShortLedShow();

            light = new LightSensor(ADS1015.OpenChannel((int)Pin.Analog.A3));
            temp = new TempSensor(ADS1015.OpenChannel((int)Pin.Analog.A4), 5000); //version one of wiring on Explorer Pro for ADC = 5v - this will change to 3.3v in the future 
            mem = new MemSensor();

            matrix = new LED8x8Matrix(new Ht16K33());
        }