I2C usage for Display-o-Tron HAT


I would like to know if I can control (change) the I2C addresses that the HAT is using. If I understood it correctly, 0x2c: CAP1166 and 0x54: SN3218 are the I2C addresses for the display and capacitive buttons.

I’m asking because I want to use it stacked on top of another board that can be specifically addressed over I2C as well, namely the Adafruit DC Stepper motor HAT (https://pinout.xyz/pinout/dc_stepper_motor_hat). That board is also designed to be stacked easily. I see that only the BCM2 (SDA) and BCM3 (SCL) pins are shared between the two boards and I’d very much like to use them together (https://pinout.xyz/pinout/display_o_tron_hat).

Right now, although I presume that they are having different I2C addreses by default, the Pimoroni Display-o-Tron HAT does not power on if it’s stacked on top of the other one. This might be due to power requirements (?) or to some conflicting I2C addreses. Any guidance would be greatly appreciated, even though I understand it’s not designed to worked stacked on top of other HATs.

Thank you! :)


You can select/change the i2c address of the motor hat on the board but as the default address is 0x60 that would not be the problem.

Therefore it seems that power is the problem but yet again the motor hat is powered separately so I am not sure.

My advice would be to check over your soldering redoing any that look dodgy and post a picture of your setup to allow for further debugging.


Thank you for your answer. I did not use the motor HAT yet and I understood that it’s power supply is only for the motors, drawing current for the HAT from the Raspberry Pi. I’ll make sure that everything is soldered correctly and test the motor HAT again. It does indeed look like there is no I2C conflict, as you also say.


About the stepper motor pinout, shouldn’t anything calling itself a HAT be using BCM pins 0 and 1 (id_sd, id_cl) for the EEPROM? Adafruit’s schematic for the stepper motor HAT shows a CAT24C32 chip present and using those host pins for communication.


On pinout.xyz they do not display the eeprom pins but if down the side it says it uses an eeprom it is assumed that BCM 0 and 1 are used