EnviroPHAT giving IO error when not directly attached to a board


#1

Hello all, Im quite a newbie with all of this, but really interested in learning and doing more. Hope Im not gonna cause too much confusion and its not something completely obvious that im missing…

The setup
I have EnviroPHAT connected to RaspberryPi 3 - tried all of the examples also build python scripts to take readings from the PHAT and populate a sqlite3 database on a regular bases using cron, also made that data available trough a Flask API - everything works great!

The problem
The EnviroPHAT is working ONLY if is directly connected to the board - obviously this is a problem because the board gets hotter over time and the temperature readings are not correct at all (+ 5-10 degrees)
This is what i2cdetect -y 1 gives when the PHAT is directly attached to the board
pi@bghub-01:~ $ i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- 1d -- -- 20: -- -- -- -- -- -- -- -- -- 29 -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- 49 -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- 77

I’ve tried connecting it using 40 Pin Rainbow Cable and also all sorts of different Male/Female headers combinations without any luck. No matter what i try it will always give an IO error looking as this:
pi@bghub-01:~/Pimoroni/envirophat/examples $ ./all.py Traceback (most recent call last): File "./all.py", line 6, in <module> from envirophat import light, weather, motion, analog File "/usr/lib/python2.7/dist-packages/envirophat/__init__.py", line 12, in <module> light = tcs3472(bus) File "/usr/lib/python2.7/dist-packages/envirophat/tcs3472.py", line 37, in __init__ self.i2c_bus.write_byte_data(ADDR, REG_ENABLE, REG_ENABLE_RGBC | REG_ENABLE_POWER) IOError: [Errno 110] Connection timed out

and also i2cdetect -y 1 gives this output:
pi@bghub-01:~/Pimoroni/envirophat/examples $ i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --

Maybe it worth mentioning that on boot, when the PHAT is not directly connected to the board its LEDs are turning on for 2-3 seconds and then are turned off.

Please, any help will be much appreciated, maybe im missing something completely obvious, or this doesn’t make sense at all. If you need any other information, please just let me know

Thanks in advance


#2

Hey all, solved it quite easily, which proves what newbie i am…
I’ve looked into this page https://pinout.xyz/pinout/enviro_phat and connected only rthe GPIO pins the EnviroPHAT needs using similar to this jumpers: https://www.amazon.co.uk/Kuman-120pcs-Multicolored-Female-Breadboard/dp/B01BV3Z342/ref=sr_1_5?ie=UTF8&qid=1498311362&sr=8-5&keywords=raspberry+pi++40+pin

It was all in the documentation! Sorry for the spam
Thanks


#3

Your issue with the LEDs turning on for 2-3 seconds and then off might be that the 1-Wire bus is enabled on BCM4. Disabling 1-Wire should fix that.

I tested and developed the Enviro pHAT using one of our Black HAT Hack3r boards and a ~15cm ribbon cable with no ill effect, but it’s worth noticing that i2c- the protocol used to talk to all the devices on Enviro pHAT- can be very sensitive to wiring choices.

Glad you’re up and running, anyway!


#4

Had a similar issue, high temp readings on my sense hat from the heat given off by the Pi’s SOC. I mounted a proto hat with a stacking header between my Pi and sense hat. https://shop.pimoroni.com/products/adafruit-perma-proto-hat-for-pi-mini-kit For pi Zero and pHat I guess you use this. https://shop.pimoroni.com/products/adafruit-perma-proto-bonnet-mini-kit

Disclaimer, it worked great until I put my Pi and sense hat in a case. Then the temp slowly started reading a bit high again. Better than it was but not ideal. I used the proto hat for other things so it wasn’t a total lose. I have RTC module soldered to it. And some right angle headers for other sensors. A BMP180 for one, mounted outside my case. ;)