Rotating the monitor output with Resin IO locks up Raspberry Pi and will not reboot

Hi Everyone,
I am having an issue and I hope I can get some idea. First I am very new to this, as in All I know is that I was able to flash resin io and Screenly OSE to my raspberry pi 3 and I can connect to it.

I need to rotate the display 90 degrees and according to what I read I can do so be entering this in Balena cloud to manage it.

RESIN_HOST_CONFIG_display_rotate=1

When it pushes out to the raspberry pi from balena cloud, the setup file is altered and then it locks up. If I then reboot the networking does not work.

If I manually add it to the file via the SD card it gets erased as soon as the unit connects to Balena Cloud.
Any Idea how to fix this or suggestions are welcome.

Thanks

Hi @TCurtis,

I had problems with this couple of weeks ago and I’ve found that the variable RESIN_HOST_CONFIG_display_rotate does not work for me and that I have to use RESIN_HOST_CONFIG_lcd_rotate=2, which rotates display up side down. Can you try it with this variable?

You can set it in this way:

  • open your application
  • click on your device
  • click on DEVICE configuration on the left side
  • scroll down & click on the Add custom variable button

Re lock up:

  • which RPi do you have?
  • what OS version are you using?
  • what are the symptoms of then it locks up?

Thanks!

Hey @zrzka

I’m trying to set RESIN_HOST_CONFIG_lcd_rotate=1 on the dashboard and then asked the device to reboot. Nothin happens…

My device is an Asus Tinker Board S. I’m running it in local dev mode. Do I need to reflash it?

Thank you!

Hi,

what do you mean with Nothing happens? Your device should reboot automatically when you change the variable. You do not need to reflash it (unless there’s something really wrong).

@zrzka

Yeah that was my thought first.

Just to confirm, it should reboot and have the display rotated, even if I’m using the Asus Tinker Board S with the DEV image, running in Local Mode, right?

@zrzka and @galvesribeiro unfortunately the RESIN_HOST_CONFIG_lcd_rotate setting is specific only to the raspberry pi family, since as far as I know the ASUS tinker board doesn’t have the same config.txt settings that the RPI boot loader uses, so screen rotation will need to be done some other way

I thought it was a kernel setting… I see blog posts around showing how to do it with Android…

That is really frustrating :frowning:

Yeah, looking at the forums, the best is going by software rotation. Not much we can regarding the Tinker Board not using a similar functionality as config.txt on the Raspberry Pi. And Android is quite a different setup in many ways than regular Linux. Looking at the Tinker Board forums now, but haven’t seen much useful info otherwise. These are limitations of the hardware at hand.

Still we are checking whether the Tinker Board forums turn up any other ways of solving things.

Did you saw this: https://tinkerboarding.co.uk/forum/thread-1639.html?highlight=rotate ?

It looks like there is a kernel flag that can be used for that.

The worse case scenario we will have to change the device… Which would be cubersome…

Does BalenaFIN support that?

Thanks

The Fin is a Raspberry Pi Compute Module, so that supports all the config.txt functionality,

I’ve seen that forums post, just checking whether the Framebuffer Console would cover all the outputs as well (for graphics in general), as that kernel parameter might be easy to enable, and then can change the rotation at runtime. Will try to build a version of the OS with that enabled, and see whether it works.

Oh perfect!

That is really critical for us. The problem with Fin is the import process. ASUS have offices in Brazil so it is way easier to get from them.

Will wait for your reply then. If you want me to test it here, just share again a test image and I can try it out.

Thanks!

Just tested:

echo 1 > /sys/devices/virtual/graphics/fbcon/rotate_all

don’t do anything… perhaps the Kernel parameter isn’t set…

It’s not kernel parameter, it’s a kernel configuration that needs to be enabled and the kernel compiled, and it’s not the standard setting in ASUS’s own setting. hence I mentioned that we’ll need to try a custom build, test out the working of that parameter, and possibly add it as a custom setting to our board support.

For Brazilian import, yeah, heard stories, unfortunately. I wonder if @ntzovanis or @asarto88 have some ideas about making it easier…

Yeah, that is what I meant…

I’ll wait your reply on both your kernel compile/test or someone with the import matter…

Thansk!

Here’s a PR that we are testing:

The console seems to be rotated fine, but likely need some more testing. This is the sideways version of the console with a development version

There’s still some outstanding questions, but hopefully this is in the right direction?

Yay! That is exactly what I need! I could test it with our apps if u could make a raw test image for me

We are trying to fix up one more console related issue, and likely will be able to do some builds for you in a few days (maybe sooner rather than later).

1 Like

Looking forward to try it out! Thanks!

Hey, I did some more tests while working on this, and actually it seems like a hunch I had was correct - this is just rotating the framebuffer console, not the whole framebuffer. If I display something on the framebuffer directly (eg. using fbi to show an image on /dev/fb0), that rotation doesn’t do anything, since it’s not the console anymore.

Thus while we are still preparing a newer release with this setting enabled (and hopefully some other console fixes), this is likely not what you should be using. The ideal way is still the software rotation, most likely… But will keep you posted about what we find.