# TinyCircuits Forum

## TinyCircuits Products => TinyDuino Processors & TinyShields => Topic started by: gnargle on January 29, 2021, 03:55:30 AM

Title: Set rotation of TinyScreen?
Post by: gnargle on January 29, 2021, 03:55:30 AM
Hi there,

I got my Tinyscreen+ in the post this week, and I'm trying to put together a watchface for a prop. However this is a bit of an unusual face, and ideally the orientation of the screen could do with being portrait, rather than landscape. Is this a possbility within the tinyscreen library? I couldn't see a function that would make it easy (only flipDisplay() which is only for landscape orientation).
This would be very useful functioanlity for me and would relieve a bunch of horrible hacky behaviour I'd have to add in my actual sketch.
Thanks.
Title: Re: Set rotation of TinyScreen?
Post by: lennevia on February 02, 2021, 05:01:54 PM
Hello,

The screen contents can be flipped as you have discovered, but it is difficult to write a portrait mode translation of the screen contents due to the pixel difference in the length and width.

I can recommend looking into the writeRemap() function of the TinyScreen library. We have rewritten this function to work with rotating a different, square screen using the following code:

Code: [Select]
`uint8_t _rotateDisplay=1;void TinyScreen::writeRemap(void){  uint8_t remap=(1<<5)|(1<<4)|(0<<2)|(1<<1);  if(_flipDisplay){    remap^=((1<<4)|(1<<1));    //Set_Display_Offset(0x00);  }else{    //Set_Display_Offset(0x40);  }  if(_rotateDisplay)    remap^=((1<<1)|(1<<0));  if(_mirrorDisplay)    remap^=(1<<1);  if(_bitDepth)    remap|=(1<<6);  if(_colorMode)    remap^=(1<<2);       startCommand();   TSSPI->transfer(0xA0);//set remap   TSSPI->transfer(remap);   endTransfer();}`
This does not work with the TinyScreen as is, but might be a good starting point for altering the writeRemap() function.

I hope that helps!

Thanks,