A simple interface of MCP23017 with Rpi using I2C lines. Since there is already an internal pull-up resistor of 1.8k on rpi I didn't use any pull-ups n I2C lines.

Running i2cdetect -y 1 on rpi I rarely receive any response from MCP23017. Most of the times it's unresponsive and while trying to debug it on HW level I observed:

  1. SDA line show 3.3V sometimes and sometimes 0.5
  2. SCL line is always 0.5 to 0.7.

When I remove the connection and test only on I2C lines of Rpi, it works as expected. I believe the schematic is fairly simple and should work.

I have created multiple boards and only 1 board works and only 1 MCP responds on the same. I have tested with both; VCC = 5V & 3.3V but no change in observation. I have been struggling with this for more than a week and I can't think of any potential root cause now.


  • \$\begingroup\$ Don't you have to turn on the pullup resistors in the rpi code? Are you doing that? \$\endgroup\$ – Hearth Nov 11 '18 at 16:06
  • \$\begingroup\$ No i didnt do that. I assumed that calling the i2cdetect should take care of all the configuration. \$\endgroup\$ – Mayank Nov 11 '18 at 16:14
  • \$\begingroup\$ I will search more on that. \$\endgroup\$ – Mayank Nov 11 '18 at 16:14
  • \$\begingroup\$ I'm not very familiar with the rpi, so it's possible it does. \$\endgroup\$ – Hearth Nov 11 '18 at 16:15
  • \$\begingroup\$ just an FYI, this might help in the search: raspberry-projects.com/pi/pi-operating-systems/raspbian/… \$\endgroup\$ – isdi Nov 11 '18 at 17:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.