Using GPIO11 clobbers I2C?
- 
					
					
					
					
 Hi all, I'm trying to use the PWM Expansion module along with a GPIO (11) as an output. Though as soon as I set the output mode on the GPIO, all the I2C devices vanish, disabling the PWM Expansion module. Nothing is connected, just the Omega2 on a Power Dock with the PWM Expansion on top. I even have a rubber spacer in between the two to avoid any shorts. I've used the PWM Expansion on its own in past projects, has worked fine. On bootup, everything looks fine: root@Omega-10D9:~# i2cdetect -y 0 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- 5a -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: 70 -- -- -- -- -- -- --Great! 5A is the PWM Expansion (not sure what 70 is). But then I run this little python script: import onionGpio gpio11 = onionGpio.OnionGpio(11) gpio11.setOutputDirection(0)And wham, no more I2C devices: root@Omega-10D9:~# i2cdetect -y 0 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --Any suggestions? I specifically chose GPIO11 because it's not associated with any other function. Thanks! 
 
- 
					
					
					
					
 Dug a bit deeper and it seems GPIO11 is reserved for the reset button, etc. It's just not shown on the dock pinouts, it appears to be free i.e.  Reference: https://docs.onion.io/omega2-docs/using-gpios.html#pins-at-boot 
 http://onioniot.github.io/wiki/Documentation/Hardware/Omega-Hardware.htmlSo I think I'll be OK using a different GPIO, but would be nice to understand what's going on here a little more and have that shown in the dock pinouts. 
 
- 
					
					
					
					
 @Leif-Bloomquist This issue is a hardware compatibility side effect. Omega2: During boot the boot loader sets GPIO11 to Output and High. This ~3.3V high level will be the "power suply" (instead of Omega's 2.5V) - for the RESET BUTTON (FW_RST) on Omega2 Expansion Dock, Power Dock, Power Dock 2 and Arduino Dock
- for the I2C level shifter's lower voltage section on a PWM/Servo Expansion and/or an OLED Expansion
 
 The Expansion Header of the "original" Omega vs. Omega2 
  I2C logic level shifters: VDD25 ie. 2.5V or 3.3V of the GPIO11 Output High is the power supply of the lower voltage section - these circuits don't work without it. 
 ( GPIO20, GPIO21 are GPIO4 and GPIO5 on Ommega2 respectively)
  You can find lots of details about Omega2 hardware for example here: 
 https://github.com/OnionIoT/Onion-Hardware
 
- 
					
					
					
					
 Thanks for the detailed explanation! Though it makes me wonder why GPIO11 is on the breakout header at all. It doesn't seem usable by end users. 
 
