static void Main(string[] args)
        {
            try
            {
                if (MCP2221Device.Detect())
                {
                    var d = new MCP2221Device(0);
                    System.Console.WriteLine(d.ToString());
                    var gpios = d.GetGpioSettings();
                    d.SetPinDirection(d.GpioIndexes, PinDirection.Output, PinState.Low);
                    //foreach (var index in d.GpioIndexes)
                    //{
                    //    d.DigitalWrite(index, PinState.High);
                    //    Thread.Sleep(1 * 100);
                    //}
                    //foreach (var index in d.GpioIndexes)
                    //{
                    //    d.DigitalWrite(index, PinState.Low);
                    //    Thread.Sleep(1 * 100);
                    //}
                    var adcs = new List <AnalogDevice>()
                    {
                        d.GetAnalogDevice(1), // Turn the IO into analog
                        d.GetAnalogDevice(2), // Turn the IO into analog
                        d.GetAnalogDevice(3), // Turn the IO into analog
                    };
                    System.Console.WriteLine($"GetAdcVoltageReference: {adcs[0].GetVoltageReference()}");

                    while (true)
                    {
                        if (System.Console.KeyAvailable)
                        {
                            var k = System.Console.ReadKey();
                            if (k.Key == ConsoleKey.Q)
                            {
                                break;
                            }
                        }
                        adcs.ForEach((a) => {
                            System.Console.WriteLine($"AdcVoltageReference: [{a.Index}] {a.GetDigitalValue()} {a.GetVoltage()}");
                        });
                        System.Console.WriteLine("");
                        Thread.Sleep(1000);
                    }
                    //gpios = d.GetGpioSettings();
                    //d.SetPinDirection(0, PinDirection.Input, PinState.Low);
                    //while (true)
                    //{
                    //    System.Console.WriteLine($"Pin[0] Read:{d.DigitalRead(0)}");
                    //    Thread.Sleep(1 * 1000);
                    //}
                    var ledBackpack = new LEDBackpack(8, 8, d.GetI2CDeviceInstance(0x70));
                    if (ledBackpack.Detect(0x70))
                    {
                        ledBackpack.DrawRect(0, 0, 6, 6, true);
                        ledBackpack.WriteDisplay();
                    }
                }
            }
            catch (Exception ex)
            {
                System.Console.WriteLine($"Exception {ex.Message}");
            }
        }