A simpler, budget-friendly 16-channel GPIO expander based on the MCP23017. Perfect for hobbyists, prototyping, and educational projects. Chain up to 8 modules for 128 GPIOs controlled via I²C.
- 🧠 MCP23017 – 16-bit I²C I/O expander
- 🔌 I²C Interface – Up to 8 devices on same bus (128 GPIO)
- 🔢 Binary Address Selection – 3 jumpers + 3 LEDs show address (0-7)
- 💡 Status LEDs – For each I/O channel (via testing board)
- 🔋 Flexible Power – 5V/24V selectable via jumper
- 🏗️ Compact Size – 100×40mm, fits JLCPCB $2 special offer
- 🔍 Reverse Polarity Protection – MB2S bridge rectifier
- 💰 Budget-Friendly – 15 fewer components than industrial version
| Folder | Description |
|---|---|
📂 /GERBER |
Ready-to-order Gerber files |
📄 /Schematic |
PDF + image exports |
🖥️ /PCB_Layout |
PCB views (top/bottom/layers) |
📸 /Images |
Real build photos + 3D renders |
📁 /Software |
Arduino test code |
- Upload Gerber files to JLCPCB
- Select:
FR-4material /1.6mmthickness /ENIGsurface finish - PCB Specifications:
- Layers: 2
- Size: 100mm × 40mm → Eligible for $2 special offer!
- Color: Purple (or any color you like)
- Add stencil if you plan to assemble yourself
- Apply solder paste through stencil
- Place components (start with smallest first)
- Reflow on hot plate (245°C peak)
- Inspect under microscope for bridges
- Insert terminal blocks, jack connector, and jumpers
- Solder each pin with temperature-controlled iron
- Trim excess leads
- Clean with isopropyl alcohol
- SMD Components (resistors/caps → ICs → LEDs)
- Through-Hole Components (terminal blocks → connectors → jumpers)
- Final Inspection and cleaning
- Use 3 jumpers (A0, A1, A2)
- Jumper ON = Logic 0, Jumper OFF = Logic 1
- Address = (A0 × 1) + (A1 × 2) + (A2 × 4)
- Binary LEDs show the current address
MCU → I2C_IN Connector (bottom left) VCC GND SDA SCL For chaining: I2C_OUT → Next Module's I2C_IN (bottom right → bottom left)
Check the Software folder for test code
You can get direct access to this circuit files online through this link: Altium Online Access
🎥 Click here for the full YouTube video
This project is licensed under the MIT License – see the LICENSE file for details.
If you try this project, share your build!
⭐ Star this repo if you found it useful.
🔍 A simpler, budget-friendly 16-channel GPIO expander based on the MCP23017. Perfect for hobbyists, prototyping, and educational projects. Chain up to 8 modules for 128 GPIOs controlled via I²C.
gpio-expander mcp23017 i2c arduino esp32 raspberry-pi open-hardware embedded-systems diy-electronics budget-electronics
