Rectronx Circuits
Components

MCP23017 I/O Expander

I2C GPIO expander for projects that need more input/output pins.

I/O ExpanderRM8-RM22Intermediate
Arduino ✓ESP32 ✓Raspberry Pi ✓
MCP23017 I/O Expander electronics module illustration

AI Ready Overview

Quick Summary

MCP23017 is a i/o expander commonly used in FYP and embedded projects. It is best for more gpio pins and button panels, with wiring and testing planned around Arduino, ESP32, Raspberry Pi.

Difficulty

Intermediate

Time Required

1-2 weeks for wiring, basic code, platform integration and repeated test readings

Cost

RM8-RM22 module range in Malaysia; full project cost depends on scope.

Components

MCP23017, Arduino, ESP32, Raspberry Pi

Overview

What is MCP23017?

MCP23017 adds 16 GPIO pins over I2C. It is useful for keypads, LEDs, buttons and status panels when the main microcontroller runs out of pins.

Engineering Reference

Quick Specs

Operating Voltage1.8V-5.5V module-dependent
InterfaceI2C, GPIO
DifficultyIntermediate
Typical Malaysia PriceRM8-RM22
Best ForMore GPIO pins, Button panels

Real Usage Notes

Suitable / Not Suitable

Suitable for

  • ✓ More GPIO pins
  • ✓ Button panels
  • ✓ LED status boards

Not suitable for

  • ✕ High-current outputs
  • ✕ Very fast timing signals
  • ✕ Motor drive without driver

Build Planning

Difficulty

MCP23017 is rated Intermediate. Plan around 1-2 weeks for wiring, basic code, platform integration and repeated test readingsdepending on wiring, libraries, calibration, dashboard/app integration and testing evidence.

Build Planning

Time Required

1-2 weeks for wiring, basic code, platform integration and repeated test readings

Malaysia Price Guidance

Cost

Typical module price range: RM8-RM22. This is component guidance only; a complete FYP cost depends on controller, sensors, casing, display, app/dashboard, documentation and timeline.

Connections

Connection overview

Module revisions can use different connector names and electrical limits. Treat this as a planning overview and verify the exact board marking, manufacturer datasheet and seller documentation before wiring.

Power

Use only a supply supported by the exact board or module variant. Common listings for this part mention 1.8V-5.5V module-dependent.

Ground

Connect a common ground between the controller, module and any external supply.

Primary interface

Plan for I2C / GPIO; confirm the exact terminal names in the manufacturer documentation.

Variant-specific connections

Connector names and optional pins can differ between breakout-board revisions.

Platform Notes

Wiring Guides

MCP23017 with Arduino / ESP32

This is a planning overview, not a board-specific pin map. Confirm the exact module revision, supply limits and I2C / GPIO terminals in its datasheet before wiring. Use suitable level shifting when logic voltages differ.

PowerConfirm against the exact board; listed variants commonly use 1.8V-5.5V module-dependent
GroundCommon ground with the controller
InterfaceI2C, GPIO (exact pins vary by module)

Fix Common Problems

Troubleshooting

Check wiring against the pinout before debugging code.
Use a stable power supply and common ground between modules.
Test the component with a simple example sketch before adding dashboard, app or database features.
Do not power motors, pumps or heavy loads directly from a microcontroller pin.

Troubleshooting

Common Mistakes

Driving loads directly
Wrong I2C address
No pull-ups where needed

FYP Ideas Using MCP23017

Related Projects

Compare Options

Alternative Components

Student Questions

FAQ

Is MCP23017 good for FYP projects?

Yes, MCP23017 is suitable for FYP work when the project matches its limits: More GPIO pins and Button panels.

What is the most common MCP23017 mistake?

Driving loads directly