{"action":"reopened","issue":{"url":"https://api.github.com/repos/ms-iot/BusProviders/issues/21","labels_url":"https://api.github.com/repos/ms-iot/BusProviders/issues/21/labels{/name}","comments_url":"https://api.github.com/repos/ms-iot/BusProviders/issues/21/comments","events_url":"https://api.github.com/repos/ms-iot/BusProviders/issues/21/events","html_url":"https://github.com/ms-iot/BusProviders/issues/21","id":124953864,"number":21,"title":"I2C Bus Speed too fast when set to 'Standard' mode, resulting in data corruption","user":{"login":"NameOfTheDragon","id":1268490,"avatar_url":"https://avatars.githubusercontent.com/u/1268490?v=3","gravatar_id":"","url":"https://api.github.com/users/NameOfTheDragon","html_url":"https://github.com/NameOfTheDragon","followers_url":"https://api.github.com/users/NameOfTheDragon/followers","following_url":"https://api.github.com/users/NameOfTheDragon/following{/other_user}","gists_url":"https://api.github.com/users/NameOfTheDragon/gists{/gist_id}","starred_url":"https://api.github.com/users/NameOfTheDragon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NameOfTheDragon/subscriptions","organizations_url":"https://api.github.com/users/NameOfTheDragon/orgs","repos_url":"https://api.github.com/users/NameOfTheDragon/repos","events_url":"https://api.github.com/users/NameOfTheDragon/events{/privacy}","received_events_url":"https://api.github.com/users/NameOfTheDragon/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-01-05T12:01:42Z","updated_at":"2016-01-05T12:04:10Z","closed_at":null,"body":"When using an I2C device with the bus speed set to 'Standard' mode, the bus speed used by the Lightning provider is too fast and exceeds the 100KHz maximum, resulting in data corruption.\r\n\r\nI create my I2C settings like this:\r\n\r\n        public static I2cConnectionSettings ConnectionSettings(int address = DefaultSlaveAddress)\r\n        {\r\n            return new I2cConnectionSettings(address) {BusSpeed = I2cBusSpeed.StandardMode};\r\n        }\r\n\r\nWith the default 'inbox' driver, that produces bus activity like so (note the SCL frequency measures dead on 100KHz, which is the maximum allowed speed in Standard mode):\r\n\r\n![i2c timing with inbox driver](https://cloud.githubusercontent.com/assets/1268490/12114688/becbd764-b3a3-11e5-8c88-7b8a5921c2e8.png)\r\n\r\n\r\nWith the lightning provider enabled, the same capture looks like this (note, SCL measures about 165KHz, way too fast!)\r\n\r\n![i2c timing with lightning enabled](https://cloud.githubusercontent.com/assets/1268490/12114345/f685a1c4-b3a0-11e5-9a61-365ce65452ec.png)\r\n\r\nI've tried the exact same code (driving an MLX90614 temperature sensor) with both drivers and with the lightning driver enabled, it produces meaningless data which fluctuates wildly. Looking at the protocol analysis, it is clear that things are just not working correctly."}}