i2c is a bus in the computer/electronic sense of the word. By definition, a bus is designed to support communication between multiple devices.
However, for the
i2c bus, each "slave device" connected to the bus must have a unique address. Please review the fundamentals of the
i2c protocol if you are not sure about any of these terms - or need a tutorial.
nes i2c nes controller provides no means that allow you to set or change its default
i2c address, then you may use only one on a single
i2c bus. And therefore, if you need a 2nd (or third or fourth, or ...)
nes i2c nes controller, each of them will need to be assigned to a different
i2c bus. Please read on to learn how this may be done:
Depending on your situation/use-case, you may be able to configure other unused GPIO pins as
i2c buses. If you have an RPi 4 (BCM 2711), this will almost certainly be the case. If you want or need multiple
i2c buses on a single RPi, you should begin by reading this documentation - also available on your local filesystem at
Having read that document, you will understand that the RPi provides you the ability to configure multiple
i2c buses through its device tree facility, and specifically through the capacity of modifiers known as device tree overlays (a.k.a.
dtoverlay) to modify the default hardware configuration. This is easily accomplished by adding existing dtoverlays to the
/boot/config.txt file on your RPi.
Consequently, I feel this is the answer to your question:
Answer: "Configure an additional
i2c bus in
/boot/config.txt by using one of the
dtoverlay definitions in
Please try this. If you have any specific questions regarding choice or usage of a specific
dtoverlay, it may be best to ask those as new questions, but you may also submit a Comment, or edit your original question. ALSO: If you have specific questions, please include your RPi model # and your kernel version!