Why am I getting an IOError when running this i2c example code on my Beaglebone Black?

Below is an example image.py in the Adafruit SSD1306 Library to drive an OLED display via i2c on a BeagleBone Black. This gives me an IOError, but I am confused as to what this means. Is the IOError a likely problem for the code itself, or a problem with the i2c configuration on the BeagleBone?

import time

import Adafruit_GPIO.SPI as SPI
import Adafruit_SSD1306

import Image

# Beaglebone Black pin configuration:
RST = 'P9_12'
# Note the following are only used with SPI:
DC = 'P9_15'
SPI_PORT = 1
SPI_DEVICE = 0

# 128x32 display with hardware I2C:
#disp = Adafruit_SSD1306.SSD1306_128_32(rst=RST)

# 128x64 display with hardware I2C:
disp = Adafruit_SSD1306.SSD1306_128_64(rst=RST)

# 128x32 display with hardware SPI:
# disp = Adafruit_SSD1306.SSD1306_128_32(rst=RST, dc=DC, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE, max_speed_hz=8000000))

# 128x64 display with hardware SPI:
# disp = Adafruit_SSD1306.SSD1306_128_64(rst=RST, dc=DC, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE, max_speed_hz=8000000))

# Initialize library.
disp.begin()

# Clear display.
disp.clear()
disp.display()

# Load image based on OLED display height.  Note that image is converted to 1 bit color.
if disp.height == 64:
        image = Image.open('happycat_oled_64.ppm').convert('1')
else:
        image = Image.open('happycat_oled_32.ppm').convert('1')

# Alternatively load a different format image, resize it, and convert to 1 bit color.
#image = Image.open('happycat.png').resize((disp.width, disp.height), Image.ANTIALIAS).convert('1')

# Display image.
disp.image(image)
disp.display()

      

See trail below:

/usr/local/lib/python2.7/dist-packages/setuptools-3.5.1-py2.7.egg/pkg_resources.py:1031: UserWarning: /home/ubuntu/.python-eggs is writable by group/others and vulnerable to attack when used with get_resource_filename. Consider a more secure location (set with .set_extraction_path or the PYTHON_EGG_CACHE environment variable).
Traceback (most recent call last):
  File "image.py", line 47, in <module>
    disp = Adafruit_SSD1306.SSD1306_128_64(rst=RST)
  File "build/bdist.linux-armv7l/egg/Adafruit_SSD1306/SSD1306.py", line 239, in __init__
  File "build/bdist.linux-armv7l/egg/Adafruit_SSD1306/SSD1306.py", line 105, in __init__
  File "build/bdist.linux-armv7l/egg/Adafruit_GPIO/I2C.py", line 64, in get_i2c_device
  File "build/bdist.linux-armv7l/egg/Adafruit_GPIO/I2C.py", line 75, in __init__
IOError: [Errno 2] No such file or directory

      

+3


source to share


1 answer


Try:

Image = Image.open('happycat_oled_64.ppm','r').convert('1')



OR

Image = Image.open('happycat_oled_64.ppm','w').convert('1')

-1


source







All Articles