Skip to content

After display init, settings of 'rotation' are 90 degrees from expected #23

Closed
@mousethief

Description

@mousethief

It looks like there is an internal _ROTATION_OFFSET property that only gets applied at init time. Specific hardware is the Adafruit 128x64 OLED FeatherWing.

I have attached example code to illustrate the issue.

import neopixel
import board
import time
import displayio
import adafruit_displayio_sh1107

led_neo_onboard = neopixel.NeoPixel(
	pin = board.NEOPIXEL,
	n = 1,
	brightness = 1,
	)
led_neo_onboard[0] = (0, 0, 0)

bus_i2c = board.I2C()

# Compatibility with both CircuitPython 8.x.x and 9.x.x.
# Remove after 8.x.x is no longer a supported release.
try:
	from i2cdisplaybus import I2CDisplayBus
except ImportError:
	from displayio import I2CDisplay as I2CDisplayBus

time.sleep(1)
led_neo_onboard[0] = (2, 0, 0)
print("Release the hounds! er, displays.")
displayio.release_displays()

time.sleep(1)
led_neo_onboard[0] = (1, 1, 0)
print("Make the bus object")
display_bus = I2CDisplayBus(bus_i2c, device_address=0x3C)

time.sleep(1)
led_neo_onboard[0] = (0, 2, 0)
print("Make the display object")
display_sh1107 = adafruit_displayio_sh1107.SH1107(
	display_bus,
	width = 128,
	height = 64,
	rotation = 0,
	)

time.sleep(1)
led_neo_onboard[0] = (0, 1, 1)
print("Rotate the display to 0 degrees")
display_sh1107.rotation = 0

while True:
	pass


Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions