I'm an amateur Raspberry Pi user and I'm trying to run this program: https://github.com/caternuson/rpi-weather

The files are all in Python 2.7.

I believe I have wired everything up correctly, and the screens all worked when I tested my set up with Adafruit's tester program but whenever I try to run the weather display program I receive this error:

Traceback (most recent call last):
File "weather_openweather.py", line 19, in <module>
    display = RpiWeather()
File "/home/pi/rpi-weather/rpi_weather.py", line 24, in __init__
File "/usr/local/lib/python2.7/dist-packages/Adafruit_LED_Backpack-1.8.1-py2.7.egg/Adafruit_LED_Backpack/HT16K33.py", line 53, in begin
File "/usr/local/lib/python2.7/dist-packages/Adafruit_GPIO-1.0.2-py2.7.egg/Adafruit_GPIO/I2C.py", line 127, in writeList
  File "/usr/local/lib/python2.7/dist-packages/Adafruit_PureIO-0.2.1-py2.7.egg/Adafruit_PureIO/smbus.py", line 274, in write_i2c_block_data
IOError: [Errno 5] Input/output error

I would greatly appreciate any help as I need this for a project that is due very soon

  • Did you solder the jumpers to set the I2C address? As stated in the linked document: Also, any 4 Adafruit 8x8 LED Matrices with I2C Backpacks should work. Be sure to solder the address jumpers to set unique addresses for each. Expected range is 0x70-0x73. – Steve Robillard Jul 8 '17 at 5:41
  • What else is connected to the I2C bus? Did you verify the I2C communication/address with i2cdetect? – Steve Robillard Jul 8 '17 at 5:53
  • Yes I verified the I2C communication with i2cdetect and it showed up as the only thing connected. – Rachael Jul 8 '17 at 6:12
  • but according to the linked page you need four of the LEDs do all four show up? if not that would explain why it fails to communicate. – Steve Robillard Jul 8 '17 at 6:16
  • it only shows up one when I use i2cdetect but when I run adafruit's test with all of them connected all four still come on – Rachael Jul 8 '17 at 7:52

Based on the error message you have an I2C communication issue. It appears that only the first LED Matrix is being detected. You can confirm this with the following command:

i2cdetect -y 1

This should show four addresses. If it shows only a single address the most likely causes are a wiring mistake or that you have not soldered the jumpers to set different addresses for each LED matrix. Instructions for changing the I2C addresses of your LED matrixes can be found in the Adaruit Documentation.

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.