I2C and TinyCLR

I’m slowly getting up to speed on TinyCLR by moving my current .NETMF stuff over. Working on I2C now and I’m getting this error at device.WriteRead (3rd line from the bottom).

I’m guessing it is my usual not understanding something obvious issue but I would appreciate some help finding the problem. Thanks - Gene

using System;
using System.Collections;
using System.Text;
using System.Threading;

using System.Diagnostics;
using GHIElectronics.TinyCLR.Devices.Storage;
using GHIElectronics.TinyCLR.IO;
using System.IO;

using GHIElectronics.TinyCLR.Devices.I2c;
using GHIElectronics.TinyCLR.Pins;

namespace TinyCLRApplication1
{
    class Program
    {

        private const double MilliampsPerCount = 0.5;
        private const double VoltsPerCount = 0.025;

        static void Main()
        {
            Debug.WriteLine("Program Started");

            byte[] LTC2946_ADIN_MSB_REG = { 0x28 };
            byte[] LTC2946_CONTROLA_REGISTER = { 0x00 };
            byte[] LTC2946_DELTA_SENSE_MSB_REG = { 0x14 };
            byte[] LTC2946_VIN_MSB_REG = { 0x1E };
            byte[] byteArray1X = new byte[1];
            byte[] byteArray2X = new byte[2];

            var settings = new I2cConnectionSettings(0xDE >> 1);     //The slave's address.
            settings.BusSpeed = I2cBusSpeed.FastMode;

            var controller = I2cController.FromName(UC2550.I2cBus.I2c3);
            var device = controller.GetDevice(settings);

            device.WriteRead(LTC2946_VIN_MSB_REG, byteArray2X);

            double voltage = double.NaN;
            voltage = VoltsPerCount * ((byteArray2X[0] << 4) | (byteArray2X[1] >> 4));

Looks fine to me. Is the address correct?

I’m pretty sure the address is correct. If it wasn’t would it throw that error? Is it possible that the TinyCLR error messages aren’t ready for prime time yet and almost any error would be “Exception Unhandled”?

Yes Worth checking! as I think typically the LTC2946 defaults to address 0x6F (AD0&AD1 low)