Tinkerboard and Elecrow 5 Inch Display

in technology •  7 years ago  (edited)

Tinker

I got an Asus Tinkerboard and an Elecrow 5 inch HDMI screen and here's how I got them to work together.

Unlike the raspberry pi, there doesn't seem to be a boot/config.txt so when I was looking through the documentation for the Elecrow display1 I couldn't figure out how to make the damn thing work. Google turned up a utility that's like raspi-config2 but it didn't really help.

I'm not going to cover the debian installation steps in detail, as it's much like any other SD card based single board computer. I downloaded the debian stretch OS from Asus, unzipped it, and used dd to copy the .img file over a micro SD card. Okay, that's not the order I did it, first I tried the android image, but it refused to boot to anything other than recovery mode and my input devices would only sometimes work. It wasn't much fun navigating the menu since the keyboard would only work on some reboots, and choosing any menu options just dumped me back at the recovery menu. So I quickly moved on to the Debian image.

In case you're hunting for it, the default user and password are linaro and linaro.

Console

Upon trying to log in I had text running off the right and bottom of the screen. I assumed it was because it thought the screen was bigger than it really was. Luckily, fbset made this liveable.

Typing the fbset -xres 800 -yres 480 made it so I could type stuff and see what I was doing.

Typing startx resulted in a big fat failure. Some of the useful text from /var/log/Xorg.0.log:

[724681.952] (EE) modeset(0): Output HDMI-1 enabled but has no modes
[724681.953] (EE) modeset(0): No modes.

Network

I thought it would be nice to be able to ssh in and work on it in case I messed up a display setting and could no longer see the display content. Luckily, ssh is pre-installed, it just had to be turned on:

sudo /etc/init.d/openssh start

I didn't use the wirelss because I was sitting right next to a switch. I didn't have to do any network configuration, it brought the ethernet device up with DHCP and I was ready to move on. A quick check with ip a told me my IP address. So from my desktop I was able to ssh in.

Fixing X

Remember that Xorg.0.log file I mentioned? There was a little bit more content in there that was handy, namely the following:

[724681.948] (II) modeset(0): Supported detailed timing:
[724681.948] (II) modeset(0): clock: 32.0 MHz   Image Size:  108 x 68 mm
[724681.948] (II) modeset(0): h_active: 800  h_sync: 840  h_sync_end 888 h_blank_end 928 h_border: 0
[724681.949] (II) modeset(0): v_active: 480  v_sync: 493  v_sync_end 496 v_blanking: 525 v_border: 0
[724681.949] (II) modeset(0): EDID (in hex):
[724681.949] (II) modeset(0):   00ffffffffffff000481040001000000
[724681.949] (II) modeset(0):   01110103800f0a000a00000000000000
[724681.950] (II) modeset(0):   00000000000001010101010101010101
[724681.950] (II) modeset(0):   010101010101800c208030e02d102830
[724681.950] (II) modeset(0):   d3006c44000000180000001000000000
[724681.950] (II) modeset(0):   00000000000000000000000000100000
[724681.951] (II) modeset(0):   00000000000000000000000000000010
[724681.951] (II) modeset(0):   00000000000000000000000000000017
[724681.952] (II) modeset(0): No remaining probed modes for output HDMI-1
[724681.952] (II) modeset(0): Output HDMI-1 connected
[724681.952] (WW) modeset(0): Unable to find initial modes
[724681.952] (EE) modeset(0): Output HDMI-1 enabled but has no modes
[724681.953] (EE) modeset(0): No modes.

I needed modes and a supported resolution. Well, it looks like it should do 800x480, but I needed a modeline. I put the following into /etc/X11/xorg.conf.d/50-resolution.conf:

Section "Monitor"
    Identifier "HDMI-1"
    Option "PreferredMode" "800x480"
    ModeLine "800x480" 32 800 840 888 928 480 493 496 525 +hsync +vsync
EndSection

And now I have a working X11. Isn't it pretty?

X11

Remaining Issues

The display goes to sleep and doesn't come back quite right. Edit: The display goes to sleep and wakes up just fine, but video playback seems to result in a bit of a focus issue. If the system is playing a video in full screen long enough for the timeout to fire, the mouse has to be used to command stuff in the UI. I don't know why. I'm still working on a fix.

The touch screen isn't working yet, or at least, I haven't added the xinput stuff for it, yet.

Once I fix these issues, I might write up a proper howto.

~~ Thanks for Reading ~~

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Thanks for this post. I am a big fan of the raspberry pi, but am always curious about other options that are out there.

I like SBCs. They're so damn cheap now a days, I just with they had more RAM.

I still entertain the fantasy that I'll build a laptop using an SBC, some kind of e-ink display, and a nice clicky keyboard....