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.
If the 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 boot/overlays/README
.
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 boot/overlays/README
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!