MHL Support. Touch over HDMI

I am working on a project which requires USB-C to be plugged in to the Hikey960 and the USB ports are disabled.
So, the touch over USB won’t work and same goes with the HID(Mouse & Keyboard).
Only option I have is to get touch working over HDMI. ( Various Touch monitors)
Hikey960 supports MHL 2.0, but I need guidance/help implementing touch drivers. (If it is possible).

Don’t really understand, you say you cannot user USB-C has host because your’re going to use the USB-C for an other application, but in other hand you want to use MHL which requires USB…

@Loic: I suspect that he doesn’t quite know what MHL actually is.

@Panzer: There is no such thing as touchscreen-over-HDMI. While you might find an MHL device with a touchscreen that connects to only a single (USB-C) port on the host, that would only be because MHL plugs into the USB port (not the HDMI port!).

MHL is NOT AN OPTION for you, because you are using the USB-C port for something else, thus physically blocking access. I also question your assertion that HiKey960 supports MHL. That doesn’t sound right. I may be mistaken, but I believe that MHL would require a special IC that sits between the HDMI transmitter (adv7535) and the USB-C port, which is definitely not present.

If you are using the USB-C port for something, your only option for connecting a touchscreen would be to use the I2C lines on the LS expansion port or rigging something up over bluetooth. You could possibly use something like Adafruit Feather M0 Bluefruit LE : ID 2995 : $29.95 : Adafruit Industries, Unique & fun DIY electronics and kits to connect a USB touchscreen via bluetooth, but there would be some work (programming) required in order to set it up as an HID relay.

Could you tell me what you are using the USB-C port for? In case there is an alternative that you haven’t considered.

Thanks @Loic & @doitright for correcting me.
My bad, little confusion. I thought all 96 boards have same schematics and the Dragonboard 410c hardware documentation states that Audio can be channeled through BL and HDMI/MHL.

You are right. It requires additional hardware. My goal is to get Hikey960 working with a Touch Monitor.

I am using it for USB-tethering from Hikey960(Android) to Ubuntu. Can not use Bluetooth tethering and having issues with turning on USB-tethering. Currently using SCRCPY as an alternative for HID.

1 Like

Let me guess… Bluetooth tethering makes the Bluetooth crash? Howout activating a wifi ap on your Linux desktop?

1 Like

Finally have the USB tethering working and it is stable. Still struggling on Touch interface over DSI/Bluetooth.

Yeah, its definitely a big job to relay a USB HID over bluetooth.

I have another idea that may work for you;
You may be able to wire up another USB host port.

MAX3421E is a USB host controller with an SPI interface. There are schematics and production “break out” boards available for these. The chip itself is compatible with 1.8v logic, HOWEVER, I have not seen any breakouts that are wired for anything besides 3.3 or 5.0 volts, so you would need either a level shifter, or to modify the board to attach its VL pin to 1.8 instead of whatever else.

There is a linux driver for it;

Note that this chip is a FULL SPEED (12 Mb/s) USB host, not high speed (480 Mb/s). Should be fine for as many HID devices as you can throw at it, but it won’t be any good for things like networking or video cameras.

And there is YET ANOTHER option that you may consider; once again, are you sure that you must use USB tethering? Would it not be an option to use a USB-Ethernet adapter?

No. Connecting ethernet over usb would not enable USB tethering option. (Host mode)

Thanks for this. I will explore the option.

That doesn’t make any sense. If the device that you are connecting to it has an ethernet adapter (even another usb ethernet adapter), then you can establish a network between them and eliminate any need for using usb device mode.

So from my experience, the option of USB tethering is only enabled when connected via USB-C on Hikey960.
I just tried connecting 960(Ethernet Adapter) with Ubuntu using Ethernet, it didn’t work.

You can’t just plug it in, you need to configure your network.

I need Hikey960 to provide internet to Ubuntu.
Tried two setups:

  1. Ethernet to USB
  2. Ethernet to USB-C
    None of them enable USB tethering option.
    For network configuration, I tried this [link] and had no luck.(

If I am missing something/not doing it right, please help.

USB tethering DOES NOT APPLY, since you will be using a PROPER ETHERNET ADAPTER.

Ethernet to usb-c is going to have the same downside as trying to use usb tethering. IT WILL DISABLE THE HUB AND USB-A PORTS.

You need to use ANY USB-ETHERNET adapter that plugs into a USB-A port, like this;

You plug an ethernet wire from that into your other computer. Like this;

You set up a static IP address on the ethernet adapter. Use the “ifconfig” command.

You set up NAT/masquerading on the firewall, use the “iptables” command.

You set up the “other computer” using a static ip in the same network as the android device, set the DNS to, and set the default route to the ip address you set to the android device.

Hurray, you are now sharing your network connection from the Android device to your other computer.

Don’t want manual configuration on the other computer? start the dhcp server on the Android device. It will be dnsmasq.

Don’t want to manually set up the Android device every time? Write some init scripts.

Now to get this through the rest of the way, you will have to take some initiative and open up google. Don’t just plug wires in and expect everything to magically do whatever you imagine – that isn’t going to happen, it can’t read your mind.

And one other thing is still confusing… You are trying to share a network connection from the hikey to another computer. Where is the hikey getting a network connection from? Wifi? Why not just attach the other computer to the same wifi network? Why must it route through the hikey?

Thanks a lot for this.
I will give it a shot.


Because it is a raspberry pi zero without WiFi/Bluetooth. Don’t have that option really.

Once again thank you!

Ok, so if you’re going to take up the pi0’s one and only USB port with a network device of some sort, be it for USB tethering, or for a USB ethernet adapter, you could also plug in a USB wifi adapter to it, or run the ethernet wire from a usb ethernet adapter directly to your network hub from the pi0. Raspbian is able to use the majority of USB ethernet or wifi devices right out of the box.

Or alternatively, whatever you’re doing with the pi0, do it on the hikey and chuck the pi0 in the box of spare junk.

And as a final, really simple and self contained solution… just buy a pi0W to replace the pi0. $10 and you have the same thing with a built-in wifi/bt, slide the sdcard out of the 0 and into the 0W and you won’t even notice the difference, except that you suddenly have the ability to connect to a wifi network with it.