7 7
tkaiser

tutorial h3disp: change display settings on H3 devices

Recommended Posts

in another thread TKaiser gave me the tip to use H3disp for setting my screen.

I was wondering, can I set my screen resolution before I boot for the first time?

(Thus, on the computer where I flash the image on the SD card)

This because I use a HDMI to DVI adaptor, so on the initial boot the screen stays black.

 

Hans

Share this post


Link to post
Share on other sites

I was wondering, can I set my screen resolution before I boot for the first time?

 

Not with h3disp, then you would have to use bin2fex/fex2bin manually. The 'normal' Armbian way is to let the device boot while connected to Ethernet, then login through SSH from another machine on the network (if your router provides both DHCP and DNS, then in most cases a simple 'ssh root@orangepipc' should work for initial login and on H3 devices you should also be pointed to h3disp functionality then)

Share this post


Link to post
Share on other sites

with "sudo h3disp -m 33 -d" (also withou t -d) I get "illegal video mode -m 33. Try one of teh following:" ..

 

I upgraded clean 5.14 vith these commands:

apt-get updateapt-get upgradeapt-get install -fapt-get upgradeapt-get autoremove -y

Armbian release in /etc/ states 5.20.

 

Any idea Igor?

Share this post


Link to post
Share on other sites

Any idea Igor?

 

Currently h3disp and h3consumption won't be updated automagically: https://github.com/igorpecovnik/lib/blob/master/common.sh#L366-L369

 

Currently you would have to update it manually:

sudo su -
wget -O - https://raw.githubusercontent.com/igorpecovnik/lib/master/scripts/h3disp >/usr/local/bin/h3disp

A long term solution would be to add both utilities to the board support packages.

Share this post


Link to post
Share on other sites

I have an adapter hdmi->dvi and monitor 1920x1080. Orange pi pc plus.

h3disp -m 720p60 -d work, but not work wifi!!! wtf?

h3disp -m 1080p60 -d no image (out of range)

h3disp -m 1080p60 pink image 44bd395eaeec03380c768193ba86e3f1.jpeg

Share this post


Link to post
Share on other sites

I fear I don't understand the question?

I suppose he wants 4k resolution with OPi.

 

And to answer the question: Current OPis are not capable to deliver 4k output.

 

(I am also waiting for OPis with 4k ...)

Share this post


Link to post
Share on other sites

wtf?

 

 

Good luck

 

And to answer the question: Current OPis are not capable to deliver 4k output.

 

Huh? Every H3 device which exposes HDMI should be able to output 4K@30Hz: h3disp -m 4kp30

Share this post


Link to post
Share on other sites

I am happy to report success when using native 1280x1024 resolution on an older Samsung 191T display using

h3disp -m33 -d on an Opi Pc updated to 5.20.

On the other hand the 8192cu driver delivered with 5.20 does not work, wireless only started to work after local

recompiling and installation of the module as described in the documentation.

Power to the device also had to be cut and reapplied.

 

Thanks for the nice work!

gnasch

Share this post


Link to post
Share on other sites

There is no support for this screen size withing the kernel so you need to make a calculation: 

http://k.kramerav.com/support/bwcalculator.asp

 

and add it with a patch, similar way we did for those, and recompile:

https://github.com/igorpecovnik/lib/blob/master/patch/kernel/sun8i-default/z-0003-add-additional-video-modes.patch

 

When you do, we can add it to the build together with h3disp utility entry for easy switching that you don't need to have a custom kernel / image.

Share this post


Link to post
Share on other sites

I too had an issue using h3disp to set my plus 2e to 1080p60 with -d for DVI adapter. I was getting no video output. I even tested with my HDMI TV (NOT using a DVI adapter) and still no output.

After messing with the fex file manually (using tools bin2fex, and fex2bin), I found some settings that worked. I think I found the culprit:

 

The [clock] section began with pll_video = 297

 

[clock]
pll_video = 297

 

After using 'h3disp -m 1080p60 -d', an additional pll_video line appeared above the original one:

 

[clock]
pll_video = 594
pll_video = 297

 

The only way I could get 1080 to work on my display was to remove the 594 line, and update the script.bin ('fex2bin script.fex /boot/script.bin')

 

That said, I'm not familiar with the effects of these different vales. I'm assuming it's a clock frequency for some portion of the video hardware (PLL = Oscillator). But maybe this tweak will work for others

Edited by jft

Share this post


Link to post
Share on other sites

Hi. I signed up because I saw this thread.

 

Not sure of the exact model but I've got an Acer monitor with 1920x1080 native resolution. It works with h3disp at lower resolutions but not with 1080p at any refresh rate. This is via a standard passive HDMI to DVI video adaptor. Various Raspberry Pi models can drive the monitor at 1920x1080 without issue.

I tried 1080i. My monitor doesn't seem to understand interlaced and became a digital headache generator.

 

What I have noticed on both my 1600x1200 LCD and 1920x1080 LCD is that the horizontal frequency is 45kHz at the lower resolutions. The 1600x1200 monitor seemed to make a point of telling me the HSync, which does seem a bit high. I have to wonder what the rate is for 1080p

 

Good catch on the pll_video. I'll have to see if dropping the value makes it work next chance I get.

 

e: I just removed a pile of pll_video entries and left 297. 1080p60 works fine now and has an HSync of 68kHz.

 

What seems to be happening is h3disp is failing to remove old pll_video entries when the mode is changed. This is causing the wrong settings to be used.

Now I can play around with the Orange Pi PC in the native resolution for one of the monitors at least.

 

I have to ask. It appears the kernel has a heap of mode settings pre-defined in some enums. Why isn't a method available for entering all the values manually via U-Boot or during runtime in Linux? Or is there and I haven't found it.

Share this post


Link to post
Share on other sites

Hello !

I bought a little AT070TN90 7 inches display to use with my Orange Pi PC, but when I set the resolution to 800x480 (using "h3disp -m 800x480" or "h3disp -m 31") and reboot, the screen does not display anything (same with any other screen I connect to).

I thought it might be an hdmi cable problem but I tried with a different ones and I got the same issue...

So I ssh to the board and revert back to a resolution that works (720p or 1080p) but the screen is just too small for these resolutions... 

 

Please, can you help me ?

Thanks !

Share this post


Link to post
Share on other sites

Hello !

I bought a little AT070TN90 7 inches display to use with my Orange Pi PC, but when I set the resolution to 800x480 (using "h3disp -m 800x480" or "h3disp -m 31") and reboot, the screen does not display anything (same with any other screen I connect to).

I thought it might be an hdmi cable problem but I tried with a different ones and I got the same issue...

So I ssh to the board and revert back to a resolution that works (720p or 1080p) but the screen is just too small for these resolutions... 

 

Please, can you help me ?

Thanks !

hi, did you find any solution?

Share this post


Link to post
Share on other sites

Any chance h3 boards like PC can output 32bit color ? Funny enough, i just realized it's set to 16 bit color and h3disp doesn't seem to have the option to set anything related to color output.

Share this post


Link to post
Share on other sites

 

On 9/22/2016 at 1:20 AM, Hannes Worst said:

Unfortunately it doesn't work for me. My monitor gets unresponsive on reboot. It's probably due to my hdmi to vga-converter. Still, great work from the Armbian-developers!

Maybe similar enough to mine. I've got 2 x Beelink X2s, both flashed to Armbian, one Debian and one Xenial. The monitor is an older HP VGA (1280x1024) with soundbar and my HDMI to VGA converter is this one

UPDATE, SOLVED:

Armbian installed to a perfect display, plugged into the monitor when first installing. Whoah, prodigal son here.   

Edited by JoeyBeelinkX2
solution

Share this post


Link to post
Share on other sites

How can we check for current display settings on a TV, before trying to change them?

 

Also, what is the current default setting(s) for Orange Pi Zero?

 

I changed via SSH the h3disp setting under Xenial 5.25 legacy and now I get "No Signal." Tried various combos -m 0,1,2,3,4,5, 31 and 32 for my 720p TV but no luck.

Reflashed SD card with Jessie 5.25 legacy and it still shows "No Signal" on TV.

Share this post


Link to post
Share on other sites
On 17.5.2017 at 8:01 AM, shippy said:

I changed via SSH the h3disp setting under Xenial 5.25 legacy and now I get "No Signal."

 

H3disp is for manipulating HDMI output settings and will therefore render TV out useless (which is not a display output but a bad joke given that resolution can't be changed and overscan issues happen). Since h3disp creates a backup for such cases (/boot/script.bin.bak) move this back, waste another few hours with crappy TV Out and accept finally that Orange Pi Zero is a headless device which has no display output capabilities (worth the name).

 

That's why on download page is clearly written:

 

  • TV Out doesn’t work as expected (only PAL/NTSC resolution, overscanning, no h3disp support, notes for OPi Zero)

Share this post


Link to post
Share on other sites
19 hours ago, tkaiser said:

 

H3disp is for manipulating HDMI output settings and will therefore render TV out useless (which is not a display output but a bad joke given that resolution can't be changed and overscan issues happen). Since h3disp creates a backup for such cases (/boot/script.bin.bak) move this back, waste another few hours with crappy TV Out and accept finally that Orange Pi Zero is a headless device which has no display output capabilities (worth the name).

 

That's why on download page is clearly written:

 

  • TV Out doesn’t work as expected (only PAL/NTSC resolution, overscanning, no h3disp support, notes for OPi Zero)

 

i actually did read above cautionary note and others before embarking my Zero GUI display effort, getting a text display straight away on TVout:

 

 

Unluckily this thread on h3disp doesn't say it is for HDMI only, nor that it can mess up TVout !

 

I tried h3disp after getting repeatedly the same " X11.... screen not found " error message, while fiddling with Xorg, lightdm/lxdm and Xfce4 (which the download pages imply is installed by default?)

 

Anyway:

 

1. So on the Zero, a text display via TVout still could mean HW issues?

Or do we have a GUI problem with TVout itself?

 

2. Will xfce4 GUI work out of box on PC Plus and Lite HDMI ports? If not, how to? 

 

 

 

Share this post


Link to post
Share on other sites
2 hours ago, shippy said:

Will xfce4 GUI work out of box on PC Plus and Lite HDMI ports? If not, how to? 


With desktop image, yes. If you start with server, you need to install some desktop.

 

h3disp has nothing to do with X or TV out - it is setting screen resolution on HDMI out.

Share this post


Link to post
Share on other sites
16 hours ago, Igor said:


With desktop image, yes. If you start with server, you need to install some desktop.

 

h3disp has nothing to do with X or TV out - it is setting screen resolution on HDMI out.

Ah, the missing piece. I kept looking at the Zero server images, and forgot that they were not the desktop ones. The XFCE desktop pic on the Zero page is misleading.; would help to add sentence: "No desktop image available for Zero. See TVout problems [link]..."

 

So, given I spent so much time on Zero:

 

1. Can Zero use the desktop image from another model?

Is only HDMI supported on these desktops, or TVout as well?

 

2. Does text display via TVout mean that the GUI problem is not a HW problem?

Share this post


Link to post
Share on other sites

I have some problem,  I want to rotate the resolution. 

I got a 1080P screen with a MIPI2HDMI bridging board. Its display is vertical, because this display is for mobile phone. When I using H3DISP to change the resolution to 1920x1080p, it doesn't work at all.  

I guess I have to patch the kernel to add 1080x1920 resolution.  I don't know how to calculate parameters in para_tab and pll value.

I think maybe the para_tab and pll_value of 1920x1080p50  can be used to get my desired pll_value and para_tab

Share this post


Link to post
Share on other sites
7 7