{"id":15540322,"url":"https://github.com/rm-hull/mcp23017","last_synced_at":"2025-08-23T15:03:30.715Z","repository":{"id":145431011,"uuid":"8236769","full_name":"rm-hull/mcp23017","owner":"rm-hull","description":"Schematics and build info for assembling a Raspberry Pi breakout board with multiple MCP23017 input/output port expanders","archived":false,"fork":false,"pushed_at":"2014-01-01T15:09:27.000Z","size":1970,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-10-03T12:17:45.110Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","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/rm-hull.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}},"created_at":"2013-02-16T14:31:45.000Z","updated_at":"2020-02-24T01:36:03.000Z","dependencies_parsed_at":"2023-03-22T20:59:01.966Z","dependency_job_id":null,"html_url":"https://github.com/rm-hull/mcp23017","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/rm-hull%2Fmcp23017","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rm-hull%2Fmcp23017/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rm-hull%2Fmcp23017/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rm-hull%2Fmcp23017/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rm-hull","download_url":"https://codeload.github.com/rm-hull/mcp23017/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246117762,"owners_count":20726069,"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":[],"created_at":"2024-10-02T12:13:31.636Z","updated_at":"2025-03-29T00:15:13.195Z","avatar_url":"https://github.com/rm-hull.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"mcp23017\n========\n\nSchematics and build info for assembling multiple MCP23017 input/output port\nexpanders with bi-directional level shifters and selectable power source\n(Internal 3V3, 5V, External 5V), as below.\n\n![Level shifter](https://raw.github.com/rm-hull/mcp23017/master/doc/level-shifter.jpg) [Attribution unknown]\n\nFurther technical details for the MCP23017 expander can be found in the \n[datasheet](https://raw.github.com/rm-hull/mcp23017/master/doc/MCP23017%20datasheet.pdf) [PDF].\n\nSchematic\n---------\n![Stripboad Layout](https://raw.github.com/rm-hull/mcp23017/master/doc/schematic_bb.png)\n\nInstallation\n------------\nEdit `/etc/modules` and add the following entries:\n\n    i2c-bcm2708\n    i2c-dev\n\nand reboot. Alternatively, modprobe them in. Either way, confirm the driver\nhas loaded properly:\n\n    $ dmesg | grep i2c\n    [   18.310467] bcm2708_i2c bcm2708_i2c.0: BSC0 Controller at 0x20205000 (irq 79) (baudrate 100k)\n    [   18.332292] bcm2708_i2c bcm2708_i2c.1: BSC1 Controller at 0x20804000 (irq 79) (baudrate 100k)\n    [   18.480593] i2c /dev entries driver\n\nThen add your user to the i2c group:\n\n    $ sudo adduser pi i2c\n\nInstall some packages:\n\n    $ sudo apt-get install i2c-tools python-smbus\n\nCheck to see if the chip has registered (revision 2 RPi's should use icbus\n1, whereas earlier revisions use 0):\n\n    $ i2cdetect -y 1\n         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f\n    00:          -- -- -- -- -- -- -- -- -- -- -- -- -- \n    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n    20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n    70: -- -- -- -- -- -- -- --    \n\nTODO\n----\n* Expand documentation\n\n* Example programs\n\nReferences\n----------\n* http://nathan.chantrell.net/20120602/raspberry-pi-io-expander-board/\n\n* http://www.bootc.net/archives/2012/05/19/i2c-and-the-raspberry-pi/\n\n\n\n[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rm-hull/mcp23017/trend.png)](https://bitdeli.com/free \"Bitdeli Badge\")\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frm-hull%2Fmcp23017","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frm-hull%2Fmcp23017","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frm-hull%2Fmcp23017/lists"}