IO Pi Plus External Power Supply
1689 Views - Created 12/05/2019
I have acquired 4 IO Pi Plus which will be distributed along my project to collect input. I have tested my setup by stacking the IO Pi Plus board directly ontop of the Raspberry Pi B 3+ and this works fine, input is detected.
Then I separated the Pi and the IO Pi, isolated the "Link", connected +5V and GND to the external power supply port. I also connected a GND pin as well as SDA and SCL ports between Pi and IO Pi. This setup failed, i2cdetect found no device.
Next setup: Pi and IO Pi are separated, no external power supply, re-established the 'Link", connected Pi and IO Pi by the following ports: 3/SDA, 4/+5V, 5/SCL, 6/GND. That also fails like above. Out of curiosity and because of the schematic circuit diagram where an I2C Level Converter drains from +3.3V I tested the same setup, additionally connecting port 1/+3.3V - and this works, devices and input to them are detected.
I could use an explanation of this behavior, because from the description you (I) get the impression that it would suffice to connect +5V and GND to the IO Pi Plus to the external supply port, merely connecting SDA and SCL with the Pi.When reading about connecting more than one IO Pi to the Raspberry on the documentations I found only the +5V and GND mentioned, no word about the +3.3V.
If there is something missing in my setup please tell me about, I'm a programmer but no expert in electronics.
Thank's a bunch, Walter
The 3.3V power is used to pull up the Raspberry Pi side of the I2C level shifter on the IO Pi Plus. The I2C bus works by pulling the voltage to ground so you have to provide a 3.3V supply to pull the SDA and SCL lines high through the two 10K resistors.
To use the boards externally from the Raspberry Pi you will need to connect the 3.3V, Ground, SDA and SCL pins.
thank you so much for your fast response on a Sunday!
If I understand correctly, the 3.3V on the IO Pi are needed to keep the I2C bus lines high when there is no data traffic. Question is, why are the 3.3V taken from the Pi and not generated by a voltage divider from the +5V when they are supplied externally. This would reduce cabling and make the IO Pi only rely on the +5V from the external Pin. (Of course you somehow have to connect everything to common GND.) Maybe an option for the next generation of IO Pi Plus Plus?
Your second paragraph helps me the most, thank you for the clear message! While this information is now available to this forum, may I suggest to add this to the documentation, too.
and again Thank you!
The main reason why we used the 3.3V from the Pi was that the IO Pi Plus was originally designed to be used stacked on top of the Raspberry Pi and the 3.3V pin is directly next to the SDA and SCL pins so it made sense, in terms of PCB routing and reducing the component count, to use the 3.3V pin.
The main downside of using a voltage divider from the 5V supply is the output voltage would be relative to the input voltage so if someone accidentally put more than 5V into the IO Pi Plus that would result in more than 3.3V going into the SDA and SCL pins on the Raspberry Pi and could damage the GPIO pins or in a worst-case kill the Raspberry Pi.
We would really need to use a voltage regulator to give a constant 3.3V output. I will look at whether we can do this when we create the next revision of the IO Pi Plus.
I will also add some information to the IO Pi Plus page explaining what pins are needed to connect the board externally.
just want to say that I really appreciate the time you took to explain the issues. As it is often the case, design decisions that look a bit odd to the amateur, prove to be well-thought and made with expertise and good reasons.
I originally asked similar question in 2017. Then I got the following answer from ABelectronics:
"The 3.3V bus on the IO Pi Plus is only needed to set the I2C pins to the same voltage as the Raspberry Pi GPIO, the 3.3V side of the level translator should work with anything between 2V to 5V. Looking at the specs for your range extender it works at 5V for the extended side of the I2C bus so you should be able to get away with bridging the 3.3V and 5V pins on the IO Pi Plus."
I eventually did not try out using 5V instead of 3.3V as I built voltage divider to be safe. Now, I need to revisit this topic and I would like to confirm, if it really is safe to use 5V instead of 3.3V on IO Pi Plus side to power up the electronics to enable I2C bus?
It is safe to use 5V on both sides of the I2C level translator as long as the circuit you are connecting IO Pi to works at 5V.
If you are connecting the IO Pi directly to the Raspberry Pi then you would want to use 3.3V on the low side of the level translator as 5V would damage the Raspberry Pis GPIO pins but when connecting to a 5V device like an Arduino UNO there should be no issues with using 5V instead of 3.3V.
Note: documents in Portable Document Format (PDF) require Adobe Acrobat Reader 5.0 or higher to view, download Adobe Acrobat Reader or other PDF reading software for your computer or mobile device.