bitbank2 / ss_oled

Simple and small library to control 1-bpp OLED displays (Linux + Arduino)
GNU General Public License v3.0
190 stars 34 forks source link

definitions for OLEDs that are orientated landscape #56

Closed StefanL38 closed 2 years ago

StefanL38 commented 2 years ago

Hi,

I have this 64x128 OLED-display. https://www.waveshare.com/wiki/1.3inch_OLED_Module_(C) If I use your Display-Option rc = oledInit(&oled, OLED_128x64, 0x3c, FLIPPED, INVERTED, HARDWARE_I2C, SDA_PIN, SCL_PIN, RESET_PIN, 1000000L); The shown picture is in portrait-mode letters are readable in the 64pixel-direction while it should be in the 128 pixel-direction.

This means I have the display in front of me in landscape

****************************************  H
*                                      *  e
*  o                                   *  i
*  l                                   *  g
*  l                                   *  h
*  e                                   *  t
*  H                                   *  6
****************************************  4
            width 128 pixels

But the letters are written vertically. And what is not correct in my textdemo above all the letters are rotated 90 too.

What would I have to modify to add a displaytype that shows the characters in the 128 pixel-direction?

This means the basic pixel-locations must be rotated 90 degress.

best regards Stefan

bitbank2 commented 2 years ago

Hi Stefan, I don't currently support that display in my ss_oled library, but I do support it in my OneBitDisplay library. ss_oled is deprecated in favor of using my OneBitDisplay lib which is still actively being developed. For OneBitDisplay, you would use the constant OLED_64x128. The memory is oriented 90 degrees rotated from the way the display is normally used. In order to display text along the longer axis, you would need to have a RAM backing buffer and use the obdScaledString() function to draw at 90 degrees rotated.