{"id":13894062,"url":"https://github.com/maarten-pennings/I2Cbus","last_synced_at":"2025-07-17T08:32:16.686Z","repository":{"id":128841966,"uuid":"144901937","full_name":"maarten-pennings/I2Cbus","owner":"maarten-pennings","description":"Arduino library that implements \"bus clear\" for an I2C bus","archived":false,"fork":false,"pushed_at":"2024-01-27T23:23:14.000Z","size":9,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-08-07T18:27:29.480Z","etag":null,"topics":["arduino","arduino-library","i2c","i2c-bus","i2c-protocol"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maarten-pennings.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-08-15T20:48:39.000Z","updated_at":"2024-02-06T15:22:48.000Z","dependencies_parsed_at":"2023-04-14T10:32:56.213Z","dependency_job_id":null,"html_url":"https://github.com/maarten-pennings/I2Cbus","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maarten-pennings%2FI2Cbus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maarten-pennings%2FI2Cbus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maarten-pennings%2FI2Cbus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maarten-pennings%2FI2Cbus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maarten-pennings","download_url":"https://codeload.github.com/maarten-pennings/I2Cbus/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226243893,"owners_count":17594452,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","arduino-library","i2c","i2c-bus","i2c-protocol"],"created_at":"2024-08-06T18:01:22.909Z","updated_at":"2024-11-24T22:31:11.084Z","avatar_url":"https://github.com/maarten-pennings.png","language":"C++","funding_links":[],"categories":["C++"],"sub_categories":[],"readme":"# I2C bus clear\nArduino library library that implements \"bus clear\" for an I2C bus.\n\nBased on the work at http://www.forward.com.au/pfod/ArduinoProgramming/I2C_ClearBus/index.html\n\n\n## Introduction\nIn rare occasions, an I2C bus can deadlock.\nOne such occasion is when a master is reading a byte from a slave, \nthe slave is pulling the SDA line low, and then the master is reset.\nThe slave waits for an SCL pulse (from the master), but the master does not send clock pulses, \nbecause it sees the bus busy: SDA is low.\n\nTo get out of this deadlock, this library implements a bus clear feature.\nThis is based on the procedure described in the \n[NXP I2C manual section 3.1.16 Bus clear](https://www.nxp.com/docs/en/user-guide/UM10204.pdf#page=19).\nNote that `I2cbus_clear()` returns a status code: negative for not being able to clear the bus, or positive for success.\nNote also that `I2cbus_clear()` must be followed by `Wire.begin()` to assign the Arduino pins from GPIO to I2C.\n\n(end of doc)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaarten-pennings%2FI2Cbus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaarten-pennings%2FI2Cbus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaarten-pennings%2FI2Cbus/lists"}