SteakSndwich
Posts: 6
Joined: Fri Oct 05, 2018 2:38 pm

2k Portrait Mode HDMI Display 1440p (1440x2560) how to rotate into Landscape?

Sun Oct 07, 2018 12:04 am

Hi there first.
This is going to be a long post. tl;dr: Solution how to get correct timings of HDMI Displays, Side-by-Side mode w/o 3D and questions about possible solutions to rotate the screen with limited working options.

I am a noob when it comes to Linux so please be kind if I didn’t catch something.

I have one of the many sub $100 2k displays from aliexpress. They come in 5“ up to 7“, 1440p and are almost always in portrait mode.
https://www.aliexpress.com/wholesale?ca ... 0p+display
Shouldn’t be a problem i thought. Oh was I wrong.

The Display with Driver:


Image

I tested all settings I could think of and booted my 3 B+ a few hundred times in the last 25hours testing. The display works on a Win 10 PC without problems in all orientations, so the display shouldn’t be the bottleneck I guess. I tested on Raspbian and Ubuntu Mate. Everything below applies to both.
I read all forum posts I found about these kind of displays and problems with rotations – still I can’t get the result I would like. But start with working options:

Portrait mode and HDMI timings

Since „hdmi_cvt=1440 2560 50” won’t do the job since it’s limited to 1920x1200 max we have to use the way over hdmi_timings. You can find all possible settings in different posts. But they will only “kind of” work. i Had flicker. They mostly look like this:

Code: Select all

hdmi_timings=1440 0 16 16 64 2560 0 5 2 1 0 0 0 50 0 200000000 3
I then found a windows program called “Custom Resolution Utility (CRU)” from 2012 which can alter the HDMI timings from Displays on Windows PCs. Just connect the display to a windows pc, start CRU, select the display and click on the Resolution and hit edit. You will see the correct timings used by windows.

https://www.monitortests.com/forum/Thre ... CRU?page=1
CRU of the Display:

Image

So I altered the timing in my config.txt to

Code: Select all

hdmi_timings=1440 1 70 35 45 2560 1 12 2 2 0 0 0 50 0 204792000 3
and I worked like a charm. No more blanked top of the screen and flicker free. A you can see in CRU, the pixel clock is calculated from HxVxRR, but with adding all porch/blanking pixels into H & V. In my case its 1590*2576*50 instead of 1440*2560*50. Keep that in mind.

Also it seems hdmi_timings doesn’t give a crap if you put 50Hz or anything else as frequency since it uses the pixel clock instead. So if you want to change the frequency, recalculate your pixel clock. My display uses negative sync polarity.
Now we have to edit the framebuffer as well, since we won’t get more than 1440x1280 without.

This is my config.txt for portrait mode:

Code: Select all

#slight overclock
gpu_freq=500
over_voltage=2

#more gpu mem, 64 is std
gpu_mem=256

#ignore any hdmi mode from display
hdmi_ignore_edid=0xa5000080

#Always put out on hdmi
hdmi_force_hotplug=1

#custom hdmi mode
hdmi_group=2
hdmi_mode=87

#DVI mode, no audio output
hdmi_drive=1

#up the freq limit above std
hdmi_pixel_freq_limit=204792000

#timing of the display
hdmi_timings=1440 1 70 35 45 2560 1 12 2 2 0 0 0 50 0 204792000 3

#Overscan settings
#overscan_left=0
#overscan_right=0
#overscan_top=0
#overscan_bottom=0
#overscan_scale=1
disable_overscan=1

#framebuffer settings
framebuffer_width=1440
framebuffer_height=2560
max_framebuffer_width=1440
max_framebuffer_height=2560

#framebuffer_depth=8
#framebuffer_depth=24
#framebuffer_depth=32
#framebuffer_ignore_alpha=1

hvs_priority=0x32ff

display_hdmi_rotate=0
Working Display in Portrait mode at 1440x2560:
Image

Next step is Landscape mode

by editing to

Code: Select all

display_hdmi_rotate=1
we can rotate but only get a 1440x1440 (1280x1440 without framebuffer settings) display with blanking on both sides. Thats, how I found out so far, is because after a rotation
framebuffer_width & max_framebuffer_height contribute to width
framebuffer_height & max_framebuffer_width contribute to height
strange, but I take it. With standard framebuffer setting we limit ourself to 1440 on h&w. So we can alter that right? Wrong.

Landscape mode at 1440x1440:

Image

Everything that goes over an aspect ratio of 4:3 just. won’t. work…
1920x1440 works. Above 1921x1440 or below 1920x1439 won’t.
1440x1080 works. Above 1441x1080 or below 1440x1079 won’t. and so on.

Landscape mode with 4:3 settings (1080x810):

Image

So far I haven’t found any solution. Frequency/pixelclock/framebuffer settings etc. Nothing works.
It seems like this 4:3 ratio is set somewhere in the pi and everything above it disables the HDMI output.
In the other direction, there is no limit. So 300x1440 is no problem e.g.

Image

But when I connect a normal 1080p monitor and rotate the screen I can get way over the 4:3 ratio. 1080x300 as well as 300x1920 are no issue. So I don’t think that there is a general limitation in place.

Philips Monitor in 1080x300:

Image

Here is a working config.txt with 1080x810. The #hdmi settings are from testing on a philips 1080p.

Code: Select all

#slight overclock
gpu_freq=500
over_voltage=2

#more gpu mem, 64 is std
gpu_mem=256

#ignore any hdmi mode from display
hdmi_ignore_edid=0xa5000080

#Always put out on hdmi
hdmi_force_hotplug=1

#custom hdmi mode
hdmi_group=2
hdmi_mode=87

#DVI mode, no audio output
hdmi_drive=1

#up the freq limit above std
hdmi_pixel_freq_limit=204792000
#philips
#hdmi_pixel_freq_limit=148500000

#timing of the display
hdmi_timings=1440 1 70 35 45 2560 1 12 2 2 0 0 0 50 0 204792000 3
#philips
#hdmi_timings=1920 0 88 44 148 1080 0 4 5 36 0 0 0 60 0 148500000 3


#Overscan settings
#overscan_left=0
#overscan_right=0
#overscan_top=0
#overscan_bottom=0
#overscan_scale=1
disable_overscan=1

#framebuffer settings
framebuffer_width=1080
framebuffer_height=810
max_framebuffer_width=810
max_framebuffer_height=1080

#framebuffer_depth=8
#framebuffer_depth=24
#framebuffer_depth=32
#framebuffer_ignore_alpha=1

hvs_priority=0x32ff

display_hdmi_rotate=1

You may want to say “Your display is a cheap crap and therefore won’t work.”
But like I said in the beginning: On a Win 10 PC it just works. So there has to be more to it imo.

Any suggestions to this issue, feel free to post them, I will try what I haven’t thought about yet, although after >25h testing an resetting my pi likely over 500 times I can’t think about anything I haven’t tried so far…

Other testing so resolve the issue:

I haven’t told you yet what I am planning to do with the Display.
It is going to be a multi-purpose display.
- Mobile Screen w/o Raspberry for Pcs/Workstations without any display. No problem there since they can rotate the screen.
- Self-made VR Glasses (hence the high resolution). Here I would need the Raspberry to play Videos/Cam inputs. One of the applications are FPV goggles for my quadcopter. Since this is the same image on both sides, and I haven’t figured out how to display a video from an USB receiver (acts like a USB Webcam – any suggestions how to play an input on the screen? Like I said, I am a Linux/Raspbian noob and since Android won’t run fluent on the 3B+ I can’t use one of the many FPV Apps from the App Store. Any suggestion/links appreciated). I thought about just duplicating the screen. That’s the result of this section.


Side-by-Side with the same image:


So I thought: What if I try to alter the HDMI timing? Make it a 1440x1280 display. With the right timings is should just display the image twice.
Since in between the images, the sync pulses are sent there is a small blurred area. In my case it’s 16 pixels vertical (12+2+2 porch and sync) so adding an overscan of 16 on the right side did the trick.
To calculate the pixelclock just subtract the 1280 from the 2576 before and recalculate it. We are sending the sync pulses twice per whole frame so the frequency has to go a bit up. In my case it were 103M vs 102M for 50Hz total/25Hz each side. If you want to have true 50fps, you would need to up the total frequency to 100Hz. If you want to crop the image just use overscan to top/bottom.

Side-by-Side clone screen:


Image

Config with 100Hz:

Code: Select all

#slight overclock
gpu_freq=500
over_voltage=2

#more gpu mem, 64 is std
gpu_mem=256

#ignore any hdmi mode from display
hdmi_ignore_edid=0xa5000080

#Always put out on hdmi
hdmi_force_hotplug=1

#custom hdmi mode
hdmi_group=2
hdmi_mode=87

#DVI mode, no audio output
hdmi_drive=1

#up the freq limit above std
hdmi_pixel_freq_limit=206064000
#philips
#hdmi_pixel_freq_limit=148500000

#timing of the display
hdmi_timings=1440 1 70 35 45 1280 1 12 2 2 0 0 0 100 0 206064000 3
#philips
#hdmi_timings=1920 0 88 44 148 1080 0 4 5 36 0 0 0 60 0 148500000 3


#Overscan settings
#overscan_left=0
overscan_right=16
#overscan_top=0
#overscan_bottom=0
#overscan_scale=1
#disable_overscan=1

#framebuffer settings
framebuffer_width=1264
framebuffer_height=1440
max_framebuffer_width=1440
max_framebuffer_height=1280

#framebuffer_depth=8
#framebuffer_depth=24
#framebuffer_depth=32
#framebuffer_ignore_alpha=1

hvs_priority=0x32ff

display_hdmi_rotate=1

Then I tried to use this behaviour to change the 9:16 in a 16:9 display and try if I can rotate the display this way. Any width over 1440 resulted in missing lines in the middle, so the only option was to reduce the hight down to 810 to get a 16:9 1440:810 display.
In Portrait mode it behaved like expected. The same screen was displayed 3 times and a bit with the blurred areas in between.
Adding a rotation resulted in displaying the 3+ screens in portrait mode. When I now changed the width of the screen, I still had the 3 screens on the display, they just got cropped on top/bottom to the selected aspect ratio. So no success here.

Image


For now I am out of ideas how to solve this any further. If anyone has suggestions I will happily test it. Or maybe there is some other way to rotate the screen without the need of the config.txt? I tried xrandr -o left but this won't work as it seems.

If you made it this far I would like to thank you for your time :-)

Steak
Last edited by SteakSndwich on Tue Oct 09, 2018 9:41 am, edited 1 time in total.

SteakSndwich
Posts: 6
Joined: Fri Oct 05, 2018 2:38 pm

Re: 2k Portrait Mode HDMI Display 1440p (1440x2560) how to rotate into Landscape?

Sun Oct 07, 2018 4:48 pm

I tried it as well on the LineageOS 15.1 port from konstkang.

Same issue. Everything above 4:3 won't do the job.
But as i see here now, if the aspect ratio is to high, the pi stays at the boot-image (the rainbow square). Even after a powercycle of the display. This makes me think that the issue can't be on the HDMI->MIPI driverboard and is located at the raspberry itself. An thoughs anyone?

SteakSndwich
Posts: 6
Joined: Fri Oct 05, 2018 2:38 pm

Re: 2k Portrait Mode HDMI Display 1440p (1440x2560) how to rotate into Landscape?

Mon Oct 08, 2018 2:12 am

i have managed to rotate the screen using

Code: Select all

dtoverlay=vc4-fkms-v3d
in my config.txt an flipping with

Code: Select all

xrandr -o right
But it only supports up to 2048x2048, which would be no problem cause i can downscale the resolution. At least i get a 16:9 aspect ratio now.
But the cursor sticks to the selected resolution. In my case thats 1152x2048 or 2048x1152 flipped on the full 1440x2560/2560x1440 screen.
So i have to "guess" where my mouse is pointing at... but hey, it's a step in the right direction i guess?.. :D
To bad the performance goes down imo..

Image

Code: Select all

#slight overclock
gpu_freq=500
over_voltage=2

#more gpu mem, 64 is std
gpu_mem=256

#ignore any hdmi mode from display
hdmi_ignore_edid=0xa5000080

#Always put out on hdmi
hdmi_force_hotplug=1

#custom hdmi mode
hdmi_group=2
hdmi_mode=87

#DVI mode, no audio output
hdmi_drive=1

#up the freq limit above std
hdmi_pixel_freq_limit=204792000

#timing of the display
hdmi_timings=1440 1 70 35 45 2560 1 12 2 2 0 0 0 50 0 204792000 3

#Overscan settings
disable_overscan=1

#framebuffer settings
framebuffer_width=1152
framebuffer_height=2048
max_framebuffer_width=1152
max_framebuffer_height=2048

#framebuffer_depth=8
#framebuffer_depth=24
#framebuffer_depth=32
#framebuffer_ignore_alpha=1

hvs_priority=0x32ff

dtoverlay=vc4-fkms-v3d

codytjones
Posts: 5
Joined: Wed Feb 13, 2019 5:51 pm

Re: 2k Portrait Mode HDMI Display 1440p (1440x2560) how to rotate into Landscape?

Fri Feb 15, 2019 12:14 am

Has anyone been able to make any progress on the rotation? I have a display very similar to the one used here; same resolution and similar looking driver board. I was able to use hdmi_timings to get it to display full screen, but only in portrait mode. I am running into the same issue with it changing to a 1440x1440 square when rotated.

intelmarino
Posts: 1
Joined: Sun Feb 17, 2019 12:36 am

Re: 2k Portrait Mode HDMI Display 1440p (1440x2560) how to rotate into Landscape?

Sun Feb 17, 2019 12:51 am

The EDID modeline stored in the MIPI/HDMI converter (hdmi_timings=1440 0 70 35 45 2560 0 12 2 2 0 0 0 50 0 204792000 3) seems to have some issues.

Try the following:

max_framebuffer_width=1440
max_framebuffer_height=2560
hdmi_ignore_edid=0xa5000080
hdmi_group=2
hdmi_mode=87
hdmi_pixel_freq_limit=400000000
hdmi_timings=1440 0 112 160 272 2560 0 4 4 3 0 0 0 48 0 244940000 3
display_rotate=1

Snorkelmac
Posts: 1
Joined: Wed Apr 17, 2019 5:08 am

Re: 2k Portrait Mode HDMI Display 1440p (1440x2560) how to rotate into Landscape?

Thu Apr 18, 2019 6:01 am

I've stumbled into the same situation as you it seems. With intelmarino's hdmi_timings I've gotten to where it can work great in portrait mode. Image Rotation is an issue still.

What I've got right now for portrait:

Code: Select all

hdmi_group=2
hdmi_mode=87
hdmi_pixel_freq_limit=400000000
hvs_priority=0x32ff
max_framebuffer_width=1440
max_framebuffer_height=2560
framebuffer_width=1440
framebuffer_height=2560
hdmi_timings=1440 0 112 160 272 2560 0 4 4 3 0 0 0 48 0 244940000 3

Things that don't work:
display_rotate=1 or 3
display_hdmi_rotate=1 or 3

Things that do:
display_rotate=0, 2, 0x10000, and 0x20000
display_hdmi_rotate=0, 2, 0x10000, and 0x20000

I read in the documentation (https://www.raspberrypi.org/documentati ... t/video.md) that display_rotate is depreciated so I thought I'd give display_hdmi_rotate a go just in case but no luck. Obviously flipping or turning the screen 180° is not useful when trying to get it in landscape. Trying to use display_rotate to turn it 90° or 270° either makes it hang on boot or sit at the rainbow screen and not boot at all.

I tried the xrandr -o right trick and was able to get it to work with that, though since I'm a total noob when it comes to this sort of thing I haven't found a good way to get it to do that automatically. xrandr -o left also worked. The mouse has the same behavior as shown by SteakSndwich.Image
That's with the same changes to the framebuffer and dtoverlay:

Code: Select all

max_framebuffer_width=1152
max_framebuffer_height=2048
framebuffer_width=1152
framebuffer_height=2048
hdmi_timings=1440 0 112 160 272 2560 0 4 4 3 0 0 0 48 0 244940000 3
dtoverlay=vc4-fkms-v3d
and entering

Code: Select all

xrandr -o right
or
xrandr -o left
into the terminal.

tyon2006
Posts: 12
Joined: Sat Jun 22, 2019 9:27 pm

Re: 2k Portrait Mode HDMI Display 1440p (1440x2560) how to rotate into Landscape?

Sun Jun 23, 2019 4:00 am

Well, at least I'm not alone. I have attempted each of your 'working' configurations and I cannot get my screen to boot into landscape at all. Could you post the full config file where this is working on landscape?

I have purchased this same display, if I'm not mistaken, its the LS060R1SX01 Sharp screen. I am having the exact same problem you guys are, but I have a possible edge that I wanted to share.

The supplier of the product actually emailed me a config.txt file with their recommended timings for the display for portrait mode. I see that their numbers are different from what you've posted. I have tried, many, many translations of these base configs and I cannot get landscape to work, either. Nonetheless, I thought I'd share, as they do work very well for portrait mode.

Code: Select all

# For more options and information see
# http://www.raspberrypi.org/documentation/configuration/config-txt.md
# Some settings may impact device functionality. See link above for details
# ***********************************************
# Includes Display settings for Sharp 2K Display
# ***********************************************

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
#disable_overscan=1

# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16

hdmi_pixel_freq_limit=300000000
hdmi_timings=1440 0 60 10 35 2560 0 4 4 2 0 0 0 60 0 198378000 0
hdmi_drive=1
disable_overscan=1
max_framebuffer_width=2560
max_framebuffer_height=2560

display_rotate=0
framebuffer_width=1440
framebuffer_height=2560

# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720

# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1

# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2

# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4

# uncomment for composite PAL
#sdtv_mode=2

#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800

# Uncomment some or all of these to enable the optional hardware interfaces
dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on

# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi

# Additional overlays and parameters are documented /boot/overlays/README

# Enable audio (loads snd_bcm2835)
dtparam=audio=on
gpu_mem=256

aBUGSworstnightmare
Posts: 3890
Joined: Tue Jun 30, 2015 1:35 pm

Re: 2k Portrait Mode HDMI Display 1440p (1440x2560) how to rotate into Landscape?

Sun Jun 23, 2019 6:44 pm

What happens if you change

Code: Select all

display_rotate=0
framebuffer_width=1440
framebuffer_height=2560
to

Code: Select all

display_hdmi_rotate=1
framebuffer_width=2560
framebuffer_height=1440
?

tyon2006
Posts: 12
Joined: Sat Jun 22, 2019 9:27 pm

Re: 2k Portrait Mode HDMI Display 1440p (1440x2560) how to rotate into Landscape?

Mon Jun 24, 2019 3:29 am

aBUGSworstnightmare wrote:
Sun Jun 23, 2019 6:44 pm
What happens if you change

Code: Select all

display_rotate=0
framebuffer_width=1440
framebuffer_height=2560
to

Code: Select all

display_hdmi_rotate=1
framebuffer_width=2560
framebuffer_height=1440
?
Something silly and unexpected, of course lol. The OS wont even boot. The backlight comes on but the screen does not produce any image and I cannot ping the IP on my local network or PUTTY to it, so I assume the OS cannot start like this.

Power cycling the display makes no difference. Reverting the settings (by ejecting the sd card and editing on my PC) brings it right back to perfect full screen portrait mode :roll: .

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 12149
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: 2k Portrait Mode HDMI Display 1440p (1440x2560) how to rotate into Landscape?

Mon Jun 24, 2019 2:43 pm

The transposer hardware block is limited to widths (pre-transpose) of 1920 pixels (height of 4095 pixels).
Your landscape frame is 2560 pixels wide, therefore exceeds this limitation and will fail.
(This limitation is also present on the Pi4 transposer, so we are considering whether composing with transpose in tiles is worth the effort. No decisions made as yet).

If using FKMS or KMS, then xrandr uses the 3D hardware to do the transpose as part of the scene composition. This should work, although I thought Pi 0-3's V3D was limited to 2048 pixels wide. It does work on Pi4.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

tyon2006
Posts: 12
Joined: Sat Jun 22, 2019 9:27 pm

Re: 2k Portrait Mode HDMI Display 1440p (1440x2560) how to rotate into Landscape?

Mon Jun 24, 2019 3:37 pm

6by9 wrote:
Mon Jun 24, 2019 2:43 pm
The transposer hardware block is limited to widths (pre-transpose) of 1920 pixels (height of 4095 pixels).
Your landscape frame is 2560 pixels wide, therefore exceeds this limitation and will fail.
(This limitation is also present on the Pi4 transposer, so we are considering whether composing with transpose in tiles is worth the effort. No decisions made as yet).

If using FKMS or KMS, then xrandr uses the 3D hardware to do the transpose as part of the scene composition. This should work, although I thought Pi 0-3's V3D was limited to 2048 pixels wide. It does work on Pi4.
Ah, that's starting to make some sense. :idea: Thank you for the detailed response!

I'm a novice, so I'll ask a novice question. Should I give up on using this display, or could I reduce the screen's display resolution to keep the aspect ratio and orientation without exceeding the 1920 limit? I assume that would be a 1920x1080 resolution, but I'm not sure how to manipulate the settings to attempt to force the display into that size.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 12149
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: 2k Portrait Mode HDMI Display 1440p (1440x2560) how to rotate into Landscape?

Mon Jun 24, 2019 5:34 pm

tyon2006 wrote:
Mon Jun 24, 2019 3:37 pm
I'm a novice, so I'll ask a novice question. Should I give up on using this display, or could I reduce the screen's display resolution to keep the aspect ratio and orientation without exceeding the 1920 limit? I assume that would be a 1920x1080 resolution, but I'm not sure how to manipulate the settings to attempt to force the display into that size.

Code: Select all

framebuffer_width=1920
framebuffer_height=1080
I'd hope that the screen then became a compose with transpose to 1080x1920, and the final render is the upscale to 1440x2560, but I can't guarantee that.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

tyon2006
Posts: 12
Joined: Sat Jun 22, 2019 9:27 pm

Re: 2k Portrait Mode HDMI Display 1440p (1440x2560) how to rotate into Landscape?

Mon Jun 24, 2019 5:48 pm

Adding those values makes the screen go black and OS fail to boot. I'll try a couple different translations.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 12149
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: 2k Portrait Mode HDMI Display 1440p (1440x2560) how to rotate into Landscape?

Mon Jun 24, 2019 6:53 pm

tyon2006 wrote:
Mon Jun 24, 2019 5:48 pm
Adding those values makes the screen go black and OS fail to boot. I'll try a couple different translations.
I suspect that it's trying to compose and transpose to 1440x2560 then, and do no scaling on the render. I'll try and confirm that tomorrow.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

tyon2006
Posts: 12
Joined: Sat Jun 22, 2019 9:27 pm

Re: 2k Portrait Mode HDMI Display 1440p (1440x2560) how to rotate into Landscape?

Mon Jun 24, 2019 10:34 pm

For fun, I set a few different combos with much lower resolution settings. Check out my code and results below.

Portrait and full screen:

Code: Select all

display_hdmi_rotate=0
framebuffer_width=720
framebuffer_height=1280
Portrait with black on top and bottom:

Code: Select all

display_hdmi_rotate=0
framebuffer_width=1280
framebuffer_height=720
Landscape with black on left and right:

Code: Select all

display_hdmi_rotate=1
framebuffer_width=720
framebuffer_height=1280
Failed to boot OS:

Code: Select all

display_hdmi_rotate=1
framebuffer_width=1280
framebuffer_height=720
Rest of the config file for reference:

Code: Select all

# For more options and information see
# http://www.raspberrypi.org/documentation/configuration/config-txt.md
# Some settings may impact device functionality. See link above for details

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
#disable_overscan=1

# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16

#hdmi_cvt=1920 1080 50

hdmi_pixel_freq_limit=300000000
hdmi_timings=1440 0 60 10 35 2560 0 4 4 2 0 0 0 50 0 198378000 0
hdmi_drive=2
#disable_overscan=1
max_framebuffer_width=1920
max_framebuffer_height=1920
#dtoverlay=vc4-fkms-v3d

display_hdmi_rotate=0
framebuffer_width=720
framebuffer_height=1280


# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720

# uncomment if hdmi display is not detected and composite is being output
hdmi_force_hotplug=1

# uncomment to force a specific HDMI mode (this will force VGA)
hdmi_group=2
hdmi_mode=87

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2

# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4

# uncomment for composite PAL
#sdtv_mode=2

#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800

# Uncomment some or all of these to enable the optional hardware interfaces
dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on

# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi

# Additional overlays and parameters are documented /boot/overlays/README

# Enable audio (loads snd_bcm2835)
dtparam=audio=on
gpu_mem=256

tyon2006
Posts: 12
Joined: Sat Jun 22, 2019 9:27 pm

Re: 2k Portrait Mode HDMI Display 1440p (1440x2560) how to rotate into Landscape?

Fri Jun 28, 2019 12:54 am

6by9 wrote:
Mon Jun 24, 2019 6:53 pm
tyon2006 wrote:
Mon Jun 24, 2019 5:48 pm
Adding those values makes the screen go black and OS fail to boot. I'll try a couple different translations.
I suspect that it's trying to compose and transpose to 1440x2560 then, and do no scaling on the render. I'll try and confirm that tomorrow.
Any luck on this? I've tried various things since, but I'm still just spinning my wheels.

Also, I see the Pi 4 just dropped! Does it offer any hardware advantages that could overcome this? I would prefer the form factor of the A+, but I can deal with the size of the Pi4 if it gets the job done.

tyon2006
Posts: 12
Joined: Sat Jun 22, 2019 9:27 pm

Re: 2k Portrait Mode HDMI Display 1440p (1440x2560) how to rotate into Landscape?

Sun Jun 30, 2019 6:11 am

I have an interesting update. If I crank the aspect ratio down to 4:3, it rotates just fine! I tried the next "standard" AR I could find, at 7:5, and it stopped booting. A 1:1 ratio will also provide a perfectly square image that works fine.

My 3:4 attempt was good at 720x960 (at 7:5 1008 pixels it stopped booting).

Here's where things get weird. When I doubled each value and changed nothing else at 3:4, it flips the aspect ratio to 4:3! What in the world? When i flipped those resolutions in the config file (thinking I had made a mistake), it then swapped to a 16:9-looking vertical aspect ratio. This is madness, lol.

It continues to work as expected at:
1024x768
1440x1080
1600x1200

raspiUSE3
Posts: 9
Joined: Mon Jul 16, 2018 3:44 pm

Re: 2k Portrait Mode HDMI Display 1440p (1440x2560) how to rotate into Landscape?

Fri Jul 05, 2019 7:17 pm

@SteakSndwich thank you for the initial post! It was very very helpful!
I have the same screen and needed a side-by-side output and your detailed description saved me hours or even days of experimenting and testing!
The only issue I have is, that the overscan feature is not working (and therefore the small black bar in the middle of the screen is not shown; i copied and pasted your code into my config.txt). But I can live with that.

aBUGSworstnightmare
Posts: 3890
Joined: Tue Jun 30, 2015 1:35 pm

Re: 2k Portrait Mode HDMI Display 1440p (1440x2560) how to rotate into Landscape?

Fri Jul 05, 2019 7:53 pm

This works perfectly fine with a RPI4 which has 4k output enabled.
Can' neither post pictures here nor details on the OLED display, but works nice!

AthensE
Posts: 6
Joined: Thu Mar 05, 2020 4:20 pm

Re: 2k Portrait Mode HDMI Display 1440p (1440x2560) how to rotate into Landscape?

Thu Mar 05, 2020 4:27 pm

I have the same problem.I have the raspberry pi 3 B+ and the lcd screen 1440 x 2560 and I've tried to rotate it into full screen but I can't get more than 4:3 aspect ratio...Has anybody found a solution?

Docop
Posts: 7
Joined: Thu Feb 27, 2020 3:24 am

Re: 2k Portrait Mode HDMI Display 1440p (1440x2560) how to rotate into Landscape?

Mon Mar 09, 2020 11:26 pm

Was the same issues. But I was only able to show up a full display with the option : dtoverlay at On. without it , only half way. but as the pi never had a proper setup for this resolution that might and quite is the issues. If they add a mode number for this rez, this can be quite great.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 12149
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: 2k Portrait Mode HDMI Display 1440p (1440x2560) how to rotate into Landscape?

Tue Mar 10, 2020 8:45 am

Docop wrote:
Mon Mar 09, 2020 11:26 pm
Was the same issues. But I was only able to show up a full display with the option : dtoverlay at On. without it , only half way. but as the pi never had a proper setup for this resolution that might and quite is the issues. If they add a mode number for this rez, this can be quite great.
The mode numbers used are the standard CEA and DMT mode numbers. They're not ones that we make up, so don't expect it ever to be added.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

AthensE
Posts: 6
Joined: Thu Mar 05, 2020 4:20 pm

Re: 2k Portrait Mode HDMI Display 1440p (1440x2560) how to rotate into Landscape?

Thu Mar 12, 2020 8:49 am

Docop it didn't work for me.Let me explain to you my problem.I have a lcd screen 1440x2560 and a raspberry pi 3 B+ and I want to rotate horizontally the screen but in full screen.I can't get more than 4:3 aspect ratio...is it even possible to get a full screen with that resolution or I'm just trying in vain?

aBUGSworstnightmare
Posts: 3890
Joined: Tue Jun 30, 2015 1:35 pm

Re: 2k Portrait Mode HDMI Display 1440p (1440x2560) how to rotate into Landscape?

Thu Mar 12, 2020 9:43 am

pi 3 B+
that resolution is not possible with the RPi3+ @60Hz. Get your hands on an RPi4

Docop
Posts: 7
Joined: Thu Feb 27, 2020 3:24 am

Re: 2k Portrait Mode HDMI Display 1440p (1440x2560) how to rotate into Landscape?

Fri Mar 13, 2020 2:29 pm

I haven't check much on the pi3b+ , but on pi4 this don't work much and quite crappy. only putting dtoverlay it show a full screen. nothing else.
If you want to used this as a test or other, much better platform do exist vs this stuff and the amount of time you waste to make something working and being slow. 4k make it even slower.

Return to “Troubleshooting”