Inheritance: IDisposable
        public void Run(IBackgroundTaskInstance taskInstance) {
            _deferral = taskInstance.GetDeferral();  // get the deferral handle

            int count = 0;

            MAX7219 driver = new MAX7219(2);
            SevenSegmentDisplay ssd = new SevenSegmentDisplay(driver);
            BMP180 bmp = new BMP180(BMP180.Mode.HIGHRES);

            ssd.FrameClear();
            ssd.FrameDraw();
            ssd.SetBrightness(4);

            while (true) {
                temperature = bmp.Temperature.DegreesCelsius;

                data.Clear();

                // is temperature less than 3 digits and there is a decimal part too then right pad to 5 places as decimal point does not take up a digit space on the display
                if (temperature < 100 && temperature != (int)temperature) { data.Append($"{Math.Round(temperature, 1)}C".PadRight(5)); }
                else { data.Append($"{Math.Round(temperature, 0)}C".PadRight(4)); }

                data.Append(Math.Round(bmp.Pressure.Hectopascals, 0));

                if (blink = !blink) { data.Append("."); }  // add a blinking dot on bottom right as an I'm alive indicator

                ssd.DrawString(data.ToString());

                ssd.DrawString(count++, 1);

                ssd.FrameDraw();

                Task.Delay(2000).Wait();
            }
        }
        public void Run(IBackgroundTaskInstance taskInstance)
        {
            _deferral = taskInstance.GetDeferral();
            LED8x8Matrix matrix = new LED8x8Matrix(driver);

            BMP180 tempAndPressure = new BMP180();

            while (true)
            {
                var message = $"{Math.Round(tempAndPressure.Temperature.DegreesCelsius, 1)}C, {Math.Round(tempAndPressure.Pressure.Hectopascals, 1)}hPa ";

                matrix.ScrollStringInFromRight(message, 70);
            }
        }
        protected async void InitBanner()
        {
            matrix = new LED8x8Matrix(new Ht16K33());
            strip = new LED8x8Matrix(new MAX7219(4, MAX7219.Rotate.None, MAX7219.Transform.HorizontalFlip));

            matrix.SetBrightness(1);
            strip.SetBrightness(1);

            bmp180 = new BMP180(); // init temp and air pressure
            await InitLightAdc();  // init ldr on ads1015 adc


            ShowTempPressure();
            ShowLightLevel();

        }