M
Mcp23017
A Rust embedded library for using an MCP23017 GPIO expander
Created 1/23/2026
Updated about 1 month ago
README
Repository documentation and setup instructions
MCP23017
Features
- Written in safe Rust
no_std- Emulate a MCP23017 to use your micro controller as a MCP23017 (see the
peripheralfolder) - Use a MCP23017 (see the
controllerfolder)
Examples
See the examples folder. The stm32 example shows using embassy-stm32 for how to use the peripheral crate with a i2c peripheral.
Status
I'm not actually interested in maintaining this anymore. An MCP23017 is not enough for my project's needs, so I'm going to use a custom protocol and take full advantage of having an STM32 as a GPIO expander. But feel free to make issues, pull requests, and things like:
- Ask me any questions about the MCP23017 for your own uses / forks
- If you have a better library or you have a fork of this library, let me know and I can link to that library and recommend that one instead.
Quick Setup
Installation guide for this server
Installation Command (package not published)
git clone https://github.com/ChocolateLoverRaj/mcp23017
Manual Installation: Please check the README for detailed setup instructions and any additional dependencies required.
Cursor configuration (mcp.json)
{
"mcpServers": {
"chocolateloverraj-mcp23017": {
"command": "git",
"args": [
"clone",
"https://github.com/ChocolateLoverRaj/mcp23017"
]
}
}
}