I get a ‘No pull up on SDA/SCL’ error with my CQRobot I/O expander despite wiring changes. Here’s an alternative code setup:
import smbus2
bus_channel = smbus2.SMBus(1)
device = MCPDevice(0x20, bus_channel)
What might be causing this problem?
I get a ‘No pull up on SDA/SCL’ error with my CQRobot I/O expander despite wiring changes. Here’s an alternative code setup:
import smbus2
bus_channel = smbus2.SMBus(1)
device = MCPDevice(0x20, bus_channel)
What might be causing this problem?
I encountered a similar issue a while back. The error was misleading because even though everything was physically connected as per the diagram, the pull ups didn’t seem to be active. In my case, I discovered that the microcontroller’s I2C configuration was inadvertently disabling the internal pull-ups, and the external resistors used were not the recommended values. I tried replacing them with slightly lower value resistors and rechecking the actual connections on the board. Double-checking the library initialization settings and ensuring the device address was correctly specified also proved to be essential checks.
hey i had this issue too, turns out a small delay before calling the i2c init routines helped. i also rechecked the device addr once more. sometimes the bus isn’t ready right away, so a pause can sort it out
I faced a similar issue once and discovered that the error didn’t necessarily indicate a wiring problem. In my experience, revisiting the initialization sequence for the MCP23017 was essential. I had to device-reset the registers right upon startup to ensure that the internal pull-ups activated correctly. In addition, a slight difference in board revision required me to cross-check the datasheet to match configuration settings. These small nuances can often cause confusing errors, so I suggest closely reviewing the initialization routine and any board-specific requirements.
I experienced a similar problem a while ago and eventually found that it was more a timing issue than a wiring fault. I noticed that after powering up, there was a delay before the I2C bus was fully stable. Adjusting the initialization routine to include a small wait time before setting up the MCP23017 resolved the issue. Simultaneously, I reverified that the resistor values and the connections matched those specified by the datasheet. This combination of adding a brief delay and confirming hardware parameters helped overcome the pull-up error I was facing.