Khadas VIM1 lite


I did it. Full list of resolutions regardless of the monitor. Thank you.
But 800x480 does not has. I don’t know why…

My be, do you know?


Maybe you lost the resolution ‘800x480’, You need to verify the source code.
That resolution should be active.

diff --git a/Settings/src/com/android/tv/settings/device/display/outputmode/OutputUiManager.
index 47f68c8..74f3095 100644
--- a/Settings/src/com/android/tv/settings/device/display/outputmode/
+++ b/Settings/src/com/android/tv/settings/device/display/outputmode/
@@ -60,6 +60,19 @@ public class OutputUiManager {
+        "640x480p60hz",
+        "800x480p60hz",
+        "800x600p60hz",
+        "1024x600p60hz",
+        "1024x768p60hz",
+        "1280x800p60hz",
+        "1280x1024p60hz",
+        "1360x768p60hz",
+        "1366x768p60hz",
+        "1440x900p60hz",
+        "1600x900p60hz",
+        "1600x1200p60hz",
+        "1920x1200p60hz",


I applied your patch. OutputUiManager has 800x480p60hz. I build FW for VIM1 and VIM2. VIM2 has not 800x480p60hz too.
May be, is it here? The sequence of the other in one place on 0003_vendor_amlogic_frameworks_hdmi_vesa.patch

else if (!strncmp(mDefaultUI, "800x600", 7))
    displaySize = "800 600";
else if (!strncmp(mDefaultUI, "800x480", 7))
    displaySize = "800 480";

Or may be

if (strEdid.contains(listValue.get(i)) || (i > 16)) {

Why 16?


It doesn’t matter about that.

Because the length of original HDMI resolution.

    private static final String[] HDMI_LIST = {
 0       "1080p60hz",
 1      "1080p50hz",
 2       "720p60hz",
 3      "720p50hz",
 4       "2160p24hz",
 5      "2160p25hz",
 6       "2160p30hz",
 7     "2160p50hz",
 8       "2160p60hz",
 9      "smpte24hz",
 10       "1080p24hz",
 11      "576p50hz",
 12       "480p60hz",
 13      "1080i50hz",
 14       "1080i60hz",
 15       "576i50hz",
 16      "480i60hz",

I think it is only related to TvSettings


Is this change displays the full list of standard resolutions or VESA?
May be, we does not to display the full list of VESA resolutions…


I checked the java file. It has 800x480. But ROM VIM1 and ROM VIM2 has not this resolution.


I’m sorry for that. You nedd to modify the file '’ again.

--- a/Settings/src/com/android/tv/settings/device/display/outputmode/
+++ b/Settings/src/com/android/tv/settings/device/display/outputmode/
@@ -356,7 +356,7 @@ public class OutputUiManager {
             List<String> listHdmiMode = new ArrayList<String>();
             List<String> listHdmiTitle = new ArrayList<String>();
             for (int i = 0; i < listValue.size(); i++) {
---               if (strEdid.contains(listValue.get(i))) {
+++               if (strEdid.contains(listValue.get(i)) || (i > 14)) {

For this reason

<string name="display_filter_outputmode">480i60hz,576i50hz</string>

The length of standard resolutions is 14 (16-2)


Yes, 800*480 was added.
The image blinks and trimmed to size from 800x480 1920x1080. This problem is observed on standart resolutions (except 1920x1080). Maybe it’s the wrong resolution UI for larger dpi.
Like this photo

How to fix it or how to disable UI resolution (I can increase the interface with dpi on build.prop file)?

And 800x480 does not full screen before first reboot (other resolution on full screen)

HDMI Resolutions testing

New question.
uart_AO_B not see the data.

Kvim2.dts has:

uart_AO_B: serial@c81004e0 {
compatible = “amlogic, meson-uart”;
reg = <0x0 0xc81004e0 0x0 0x18>;
interrupts = <0 197 1>;
status = “okay”;
clocks = <&clock CLK_XTAL>;
clock-names = “clk_uart”;
fifosize = < 64 >;
pinctrl-names = “default”;
pinctrl-0 = <&ao_b_uart_pins>;

ttyS4 has on /dev/ folder, but data is out…

How to fix it?


Yes , you can modify the layout of TvSettings application but it need more times.
I think it is better to change the density.

# It can be another value
adb shell wm density 160 


I don’t know the mean of you. what do you want to do?


This is very small, usually I used 360 dpi on 1280x800 resolution, because I need a large scale interface.


I need a working UART port. I connect GPS to ttyS4 on Mmalow (on VIM1) and it works fine.
But on Nougat (on VIM2) the “cat /dev/ttyS4” command shows nothing - empty. Why?


It only change the layout of TvSettings. :smiley:

Firstly, you need to check the exsit of ‘/dev/ttyS4’. Also you can try to change the attribute of ‘/dev/ttyS4’

chmod 0666 /dev/ttyS4

If it still doesn’t work , please provide the printing log for me.


I don’t understand, How to deactivate UI resolution?

I added on ueventd.amlogic.rc file:

/dev/ttyS4 0666 system system

but it is not necessary when just opening the port to review, but it’s empty.

I check the port using the command:

cat /dev/ttyS4

and then have to go data, but it is not, although the port is open.


kvim.dts (Mmalow) has

&uart_AO_B {
status = “okay”;

but kvim.dts and kvim2.dts (Nougat) has not.

Is it right?

diff --git a/services/systemcontrol/DisplayMode.cpp b/services/systemcontrol/DisplayMode.cpp
index eee18be..0342aa0 100644
--- a/services/systemcontrol/DisplayMode.cpp
+++ b/services/systemcontrol/DisplayMode.cpp
@@ -1176,9 +1176,6 @@ void DisplayMode::setAutoSwitchFrameRate(int state) {
 void DisplayMode::updateDefaultUI() {
---       char outputmode[MODE_LEN] = {0};
---       getBootEnv(UBOOTENV_OUTPUTMODE, outputmode);
---       strcpy(mDefaultUI, outputmode);
     if (!strncmp(mDefaultUI, "720", 3)) {
         mDisplayWidth= FULL_WIDTH_720;

It is right and not matter with that.


I think the UART port is work , You need to check other problem of GPS.


This gps work on VIM1 with mmalow ROM.
Ok, I test it agant in the evening.

Thank you!


I checked:

  1. I built ROM from Nougaut 7.1.2 source code for VIM1 and VIM2.
  2. I connected gps reciver on ttyS4.
  3. I launched the terminal and entered the command:

cat /dev/ttyS4

VIM1 - UART has NMEA data
VIM2 - UART has empty

How to fix VIM2 uart problem?
Or may be, Is scheme GPIO header wrong?