Android, Debug, Troubleshooting

OrangePI PC Android display on DVI monitor

So just got one of those OrangePI PC from ALI Express, it’s one of `rPi` compatible board that have Android 4.4 OS on it. (the other alternatives that I know are BananaPi and ODroid).  It’s based on Allwinner H3 processor and most of the OS are based on sunxi kernel

The first thing I do was scourging trough the forum and download Android 4.4 image base for it.

To install the Android image, AllWinner provide tool called `PhoenixCard` that is only available for Windows OS. (Android image is not `dd` able images – so you cannot use `dd` or `piBaker`)

Let me warn you that PhoenixCard is a weird beast (there’s a bug that cause it to intermittently fail) – and it need some compatible of card-reader hardware. So if you experience a lot of failures on burning images to microSD – try other card-reader hardwares (I try 3 types of card reader – a Sony card reader, mac card reader (using VM) and internal generic ASUS laptop card reader – the ASUS one works fine)

Plug the OPIPC to HDMI monitor – it works fine.

The thing is you cannot plug it to DVI monitor using HDMI-to-DVI converter because the HDCP protection is enabled by default – so to plug it to DVI monitor you will need to disable HDCP protection on it. There’s a lot of guide to fix it on the official forum – but most of the time it’s only for Linux based OS.

For Android you will need to go the extra miles.

  1. Download the `linux sdk source code` for your hardware here  (see section Orange PI PC and find the one with linux sdk source code title). It’s a huge file – so prepare some Coffee.
  2. Extract it into case-sensitive file system (I use VM with ubuntu 14.04 on my Mac, ext4 is case sensitive, mac osx default one is not)
  3. You will need to download and compile sunxi-tools. We will need fex2bin to convert sys_config.fex to it’s compiled binary version
  4. Go to the extracted folder. You will find brandy, buildroot, linux-3.4, out and tools folder
  5. Run `cd tools/pack/chips/sun8iw7p1/configs/dolphin-p1` and edit `sys_config.fex` in it. You will need to find section named `[hdmi_para]` and add these lines
    [hdmi_para]
    hdmi_used = 1
    hdmi_power = "vcc-hdmi-18"
    
    ; Adding DVI monitor compability by disabling HDCP and enabling CTS-compat
    hdcp_enable = 0
    hdmi_cts_compatibility = 1
  6. Go to `tools/pack` folder and run
    cp -fv chips/sun8iw7p1/configs/dolphin-p1/sys_config.fex out/sys_config.fex > /dev/null 2>&1
    cp -fv chips/sun8iw7p1/bin/boot0_sdcard_sun8iw7p1.bin out/boot0_sdcard.fex > /dev/null 2>&1
    unix2dos out/sys_config.fex > /dev/null 2>&1
    pctools/linux/mod_update/script out/sys_config.fex > /dev/null 2>&1
    fex2bin out/sys_config.fex out/sys_config.bin > /dev/null 2>&1
  7. Patch boot0 using generated sys_config.bin
    pctools/linux/mod_update/update_boot0 out/boot0_sdcard.fex out/sys_config.bin SDMMC_CARD > /dev/null 2>&1
  8. Copy Compiled Uboot and patch using generated sys_config.bin
    cp -fv chips/sun8iw7p1/bin/u-boot-sun8iw7p1.bin out/u-boot.fex > /dev/null 2>&1
    pctools/linux/mod_update/update_uboot out/u-boot.fex out/sys_config.bin > /dev/null 2>&1
  9. Write to SDCARD (Change /dev/sdX to use your own sdcard path, it’s /dev/sdf on mine)
    cd out
    sudo dd if=boot0_sdcard.fex of=/dev/sdf bs=1k seek=8 > /dev/null 2>&1
    sudo dd if=u-boot.fex of=/dev/sdf bs=1k seek=16400 > /dev/null 2>&1

After all of that your OrangePi PC Android should be working on DVI monitor.

5 thoughts on “OrangePI PC Android display on DVI monitor

    1. Not really sure since I never tried to use custom resolution on my devices (only use DVI with standard HDMI res), technically sounds possible

    1. Hi Mark,

      As for rooting – since I build mine from source – it’s embedded with su and busybox – so it’s rooted from the start. There’s a lot of OPIPC based image that is pre-rooted on the official forum

  1. Hello Eru,

    I need some help my email is salamito140@yahoo.com. So I have a Sony Bravia 32 inch tv. Model kdl-32xbr6. Everytime I plug in my Orange Pi One with Android installed in it, it gives me a message saying “Unsupported Signal. Please check the device output”. The H3Droid Image from: https://h3droid.com/

    I tried changing the resolution via the h3resc: https://h3droid.com/h3resc. I thought I was getting warm because I was able to change the resolution and got it to work on my fiancee’s tv which originally wasn’t working and would say “no signal” once I switched the display to 720p it worked on her tv. I was super excited. My Sony TV I know supports 1080p so I went and change the resolution to 1080P and it didn’t work. Bummer. I literally tried every resolution and I am still getting the same “unsupported signal. Please check the device output.” I have already tried the basics like different hdmi cable, different hdmi port on the tv, etc.

    Here is the manual for my tv: https://docs.sony.com/release/specs/KDL32XBR6_mksp.pdf

    According the to manual Video Signal: 480/60i, 480/60p, 720p, 1080/60i, 1080/24p
    (HDMI™ only), 1080/60p (HDMI™ / Component)

    I want to know how can I possibly get it to work on my Sony TV? I am definitely frustrated not sure what else to do but I did see you wrote this article and it seems it might lead me to a solution.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.