VIM3 Android Custom Resolution

Hey guys, is there any way to get Android on the VIM3 to use 1280x390 as the resolution
?

Try this

Is there a way to change the hdmi timings with this so that the images are not skewed?

No, only resolution.
But you can programmatically indent from the screen borders:
adb shell wm overscan 20,20,20,20
To cancel:
adb shell wm overscan reset


Problem is this is what I get when changing the resolution and I can’t seem to find out how to do a negative overscan that works.

The only area that’s usable is below the black bar, and the line right under the bottom icons is the bottom edge of the useable area.

If you need a work area in the middle of the screen and the icons fit into it, you also need to change DPI -

adb shell wm density 200

That will just change the side of items inside that area and doesn’t scale it out to the edge of the screen.

On a raspberry pi 4 I’ve got the correct screen resolution working by changing the config.txt file in linux, but i would rather use the vim3 with android over linux due to bluetooth differences, sleep capabilities of the vim3 and stability of the android os on vim3.

  1. Reset old overscan settings
adb shell wm overscan reset
  1. Set the resolution so that the area of the screen that you want is used.
adb shell wm size WxH

1200x800, 800x480, etc.
Important! Only standard sizes that are definitely in the driver.

  1. Set the DPI so that the size of the icons fits the working area of the screen.
adb shell wm density 390

240, 180, …
3. Move the image to the desired work area using overscan

adb shell wm overscan a,b,c,d

a → left edge margin
b → top edge margin
c → right edge margin
d → bottom edge margin

Read more here - Control android screen display with WM – Android Helpdesk

There is a similar problem, if you read the discussion -

1200x800, 800x480, etc.
Important! Only standard sizes that are definitely in the driver.

This I think is the issue, 1280x390 isn’t a standard size.

The idea is to set the nearest suitable resolution and move the image to the working area of the screen.

Hello. I have a problem with setting the hdmi resolution to VIM3. If I send a command:

echo 1024x768p60hz > sys/class/display/mode

[ 3196.610828@0] vout: vmode set to 1024x768p60hz
[ 3196.611481@0] fb: current vmode=1024x768p60hz, cmd: 0x10000
[ 3196.623444@0] vlock: event MODE_CHANGE_PRE 0
[ 3196.623508@0] hdmitx: hdmitx_set_current_vmode[4728]
[ 3196.628092@0] hdmitx: system: recalc before 1024x768p60hz 2997 50
[ 3196.633369@0] hdmitx: system: recalc after 1024x768p60hz 2997 50
[ 3196.639451@0] hdmitx: system: get current mode: 1024x768p60hz
[ 3196.644867@0] hdmitx: system: update physcial size: 520 320
[ 3196.650534@0] hdmitx: video: already init VIC = 0  Now VIC = 776
[ 3196.656574@0] hdmitx: hdmitx: VESA only support RGB format
[ 3196.661919@0] hdmitx: hw: div40: 0
[ 3196.694489@0] hdmitx: system: irq 80000001 0
[ 3196.696274@0] hdmitx: E: ddc w1b 0x54 0x20 0x00
[ 3196.697628@0] hdmitx: frac_rate = 1
[ 3196.701141@0] hdmitx: config HPLL = 650000 frac_rate = 1
[ 3196.706579@0] hdmitx: HPLL: 0xdb0004d8
[ 3196.710170@0] hdmitx: config HPLL done
[ 3196.713928@0] hdmitx: hdmitx_set_clk[643] div = 6
[ 3196.718666@0] hdmitx: j = 18  vid_clk_div = 2
[ 3196.722895@0] hdmitx: set enc for VIC: 776
[ 3196.726952@0] hdmitx: system: irq 80000001 0
[ 3196.770281@0] hdmitx: hw:  config hdmitx IP vic = 776 cd:4 cs: 0
[ 3196.780751@0] hdmitx: video: Sink is HDMI device
[ 3196.780897@0] hdmitx: hw: set audio
[ 3196.783382@0] hdmitx: hw: hdmitx tx_aud_src = 0
[ 3196.787819@0] hdmitx: fs = 0, cd = 4, tmds_clk = 65000
[ 3196.792942@0] hdmitx: hw: aud_n_para = 6144
[ 3196.797129@3] hdmitx: hw: set channel status
[ 3196.801423@3] hdmitx: hw: [0x10e3] = 0x1f
[ 3196.802284@0] hdmitx: [0x10000104]: 0x00000001
[ 3196.802290@0] hdmitx: [0x10000180]: 0x000000ff
[ 3196.802292@0] hdmitx: [0x10000181]: 0x000000ff
[ 3196.802294@0] hdmitx: [0x10000182]: 0x00000003
[ 3196.802297@0] hdmitx: [0x10000183]: 0x00000007
[ 3196.802299@0] hdmitx: [0x10000184]: 0x0000003f
[ 3196.802301@0] hdmitx: [0x10000185]: 0x00000002
[ 3196.802304@0] hdmitx: [0x10000187]: 0x000000ff
[ 3196.802306@0] hdmitx: [0x10000188]: 0x00000003
[ 3196.845150@3] hdmitx: system: update rx hdr info 0
[ 3196.849903@3] vout: new mode 1024x768p60hz set ok
[ 3196.854557@3] fb: current vmode=1024x768p60hz, cmd: 0x20000
[ 3196.860108@3] DOLBY: vout_notify_callback: VOUT_EVENT_MODE_CHANGE
[ 3196.866167@3] vlock: event MODE_CHANGE
[ 3196.870657@2] vout: vout_io_open
[ 3196.873251@2] vout: vout_ioctl: cmd_dir = 0x2, cmd_nr = 0x0
[ 3196.878750@2] vout: vout_io_releaseste

the screen starts.

and if:
echo 1280x480p60hz > sys/class/display/mode

[ 3256.062849@0] vout: vmode set to 1280x480p60hz
[ 3256.063466@0] fb: current vmode=1280x480p60hz, cmd: 0x10000
[ 3256.067754@0] vlock: event MODE_CHANGE_PRE 0
[ 3256.072026@0] hdmitx: hdmitx_set_current_vmode[4728]
[ 3256.076774@0] hdmitx: system: recalc before 1280x480p60hz 2997 50
[ 3256.083089@0] hdmitx: system: recalc after 1280x480p60hz 2997 50
[ 3256.088807@0] hdmitx: system: get current mode: 1280x480p60hz
[ 3256.094574@0] hdmitx: system: update physcial size: 520 320
[ 3256.099916@0] hdmitx: video: already init VIC = 0  Now VIC = 771
[ 3256.106012@0] hdmitx: hw: set audio
[ 3256.109638@0] hdmitx: hw: hdmitx tx_aud_src = 0
[ 3256.113863@0] hdmitx: fs = 0, cd = 6, tmds_clk = 43200
[ 3256.118911@0] hdmitx: hw: aud_n_para = 6144
[ 3256.123152@0] hdmitx: hw: set channel status
[ 3256.127390@0] hdmitx: hw: [0x10e3] = 0x1f
[ 3256.131259@0] hdmitx: system: update rx hdr info 0
[ 3256.136093@2] vout: new mode 1280x480p60hz set ok
[ 3256.140818@2] fb: current vmode=1280x480p60hz, cmd: 0x20000
[ 3256.146453@2] DOLBY: vout_notify_callback: VOUT_EVENT_MODE_CHANGE
[ 3256.153362@2] vlock: event MODE_CHANGE
[ 3256.157161@2] vout: vout_io_open
[ 3256.159342@2] vout: vout_ioctl: cmd_dir = 0x2, cmd_nr = 0x0
[ 3256.167617@2] vout: vout_io_release

there is no image.
Where to look in the code, please tell me!
Thank you in advance!