For reference:

I am using the latest release Pi OS Lite, Aug 2020 version. I am developing an application using Pi4J. I am referring to pins via this Pinout: https://pi4j.com/1.2/pins/model-3b-plus-rev1.html

I am using both I2C buses, 0 and 1, in my application. To enable I2C-0 I added "dtparam=i2c_vc=on" to the config.txt file. I am also using GPIO 11 (BCM pin 7) as a digital out. This works just fine with the Raspberry Pi Zero W. However, when I changed to a Pi 3B+ (and bumped up the OS to the next release, but not sure that is the issue), the following occurs:

When I include "dtparam=i2c_vc=on" to the config.txt file I get access to the I2C-O bus, as expected. However, in addition to /dev/i2c-0 appearing, I also get /dev/i2c-10 and /dev/i2c-11 and when attempting to provision GPIO-11 in Pi4J, I no longer have access to GPIO-11 (BCM pin 7). My guess is that the mysterious appearance of I2C-11 and disappearance of GPIO-11 are related. As I was using GPIO-11 for something and I have already fabricated a PCB, this puts me into a bit of a bind. I would much rather use the 3B+ and not have to patch the physical hardware. This does not appear to be an issue with Pi4J. My guess/hope is that there is probably a trivial solution with device overlays, but no luck searching for this specific problem. Any help/pointers would be greatly appreciated.

  • There is a dtoverlay I²C-gpio software i2c controller on gpio pins – Milliways Sep 8 '20 at 0:31

The documentation states

        i2c_vc                  Set to "on" to enable the i2c interface
                                usually reserved for the VideoCore processor
                                (default "off")

The 2nd I²C interface is reserved for HATs (and also probably used for GPIO extension - although this is undocumented). It WAS usable on the older Pi, but effectively is unavailable. You can disable probing for HATs but AFAIK not the other services e.g. PWR LED etc).

The difference between the Pi3 and earlier models is easy to explain. The addition of wireless requires more GPIO so an extender was added and some of the on board circuitry e.g. LEDs was moved to the extender.

The Zero models lack the USB hub and Ethernet.

  • 1
    The thing that is curious is that (only for 3B+, not Zero W), enabling I2C-0 via i2c_vc parameter will also affect other pins (GPIO 10 & 11), creating an I2C-10 and I2C-11 and preventing use of GPIO-10/GPIO-11. I have not found any documentation as to what is going on with that. I understand the HAT part, reserved for EEPROM, etc. Guess thats what happens when you take your chances. I had no issues until I switched from Pi Zero W to Pi 3B+. Thank you for your help. – MountainPi Sep 7 '20 at 15:19

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.